Apendico C - Respondoj al la Praktiko Demandoj
Subtenu la Aŭtoro: Aĉeti la libron sur Amazono aŭ
la libro / ebook pakaĵo rekte Neniu amelo Gazetaro .
Legi la aŭtora aliaj liberaj Python libroj:
Apendico C. Respondoj al la Praktiko Demandoj
Tiu apendico enhavas la respondojn al la praktiko problemoj ĉe la fino de ĉiu ĉapitro. Mi forte rekomendas ke vi prenas la tempon por labori tra tiuj problemoj. Programado estas pli ol enmemorigo sintakso kaj listo de funkcio nomoj. Kiel kiam lerni fremdan lingvon, des pli praktiko vi metis en ĝin, des pli vi ricevos el ĝi. Estas multaj retejoj kun praktiko programado problemoj ankaŭ. Vi povas trovi liston de tiuj ĉe http://nostarch.com/automatestuff/ .
ĉapitro 1
- La operatoroj estas
+,-,*kaj/. La valoroj estas'hello',-88.8kaj5. - La ŝnuro estas
'spam'; la variablo estasspam. Kordoj ĉiam komenci kaj fini kun citaĵoj. - La tri datumtipoj enkondukitaj en ĉi tiu ĉapitro estas entjeroj, flosanta-punktaj nombroj, kaj kordoj.
- Esprimo estas kombinaĵo de valoroj kaj operatoroj. Ĉiuj esprimoj taksi (te, redukti) al sola valoro.
- Esprimo taksas al sola valoro. Deklaro ne.
- La
baconvariablo estas agordita20. Labacon + 1esprimo ne reassign la valoro enbacon(kiu bezonus asigno komunikaĵo:bacon = bacon + 1). - Ambaŭ esprimoj taksi al la kordo
'spamspamspam'. - Variablo nomoj ne povas komenci per numeralo.
- La
int(),float(), kajstr() funkcioj taksos al la entjero, komo flotante nombro kaj ŝnuro versioj de la valoro pasis al ili. - La esprimo kaŭzas eraro ĉar
99estas entjero, kaj nur kordoj povas kroĉitaj al aliaj kordoj kun la+operatoro. La ĝusta maniero estasI have eaten ' + str(99) + ' burritos.'.
ĉapitro 2
TruekajFalse, uzante ĉefurbo T kaj F, kun la resto de la vorto en minuskulajand,or, kajnotTrue and TrueestasTrue.True and FalseestasFalse.False and TrueestasFalse.False and FalseestasFalse.True or TrueestasTrue.True or FalseestasTrue.False or TrueestasTrue.False or FalseestasFalse.not TrueestasFalse.not FalseestasTrue.falsa falsa veraj falsa falsa veraj
==,!=,<,>,<=, Kaj>=.==Estas la egala al operatoro kiu komparas du valoroj kaj taksas al Bulea, dum=estas la asigno operatoro kiu stokas valoron en variablo.- Kondiĉo estas esprimo uzita en fluo kontrolo deklaro kiu taksas al Bulea valoro.
- La tri blokoj estas ĉio ene la
ifkomunikaĵo kaj la liniojprint('bacon')kajprint('ham').presi ( 'ovojn') se spamado> 5: print ( 'lardo') alie: print ( 'ham') print ( 'spamado')
- La kodo
se spamado == 1: print ( 'Saluton') elif spamado == 2: print ( 'Howdy') alie: presi ( 'Saluton!')
- Gazetara CTRL -C halti programon ŝtopita en senfina ciklo.
- La
breakdeklaro movos la ekzekuto ekstere kaj nur post buklo. Lacontinuedeklaro movos la ekzekuton al la komenco de la ciklo. - Ili ĉiuj faras la samon. La
range(10)alvoko intervalas de0ĝis (sed ne inkludita)10,range(0, 10)eksplicite diras la buklo komenci ĉe0, kajrange(0, 10, 1)eksplicite diras la buklo pliigi la variablo de1sur ĉiu ripeto. - La kodo
por i en gamo (1, 11): print (i)
kaj:mi = 1 dum i <= 10: print (i) mi = mi + 1
- Tiu funkcio povas esti vokita kun
spam.bacon().
ĉapitro 3
- Funkcioj reduktas la bezonon duplikatajn kodon. Tio igas programojn pli mallonga, pli facile legi kaj facile ĝisdatigi.
- La kodo en funkcio ekzekutas kiam la funkcio estas nomita, ne kiam la funkcio estas difinita.
- La
defdeklaro difinas (te kreas) funkcio. - Funkcio konsistas la
defdeklaro kaj la kodo en liadefklaŭzo.Funkcio alvoko estas kion movas la programo ekzekuto en la funkcio kaj la funkcio alvoko taksas al la funkcio reveno valoro. - Ekzistas unu tutmonda amplekso, kaj loka amplekso estas kreita kiam funkcio estas nomita.
- Kiam funkcio revenas, la loka amplekso estas detruita, kaj ĉiuj variabloj en ĝi estas forgesita.
- Reveno valoro estas la valoro kiun funkcio alvoko taksas al. Kiel ajn valoro, reveno valoro povas esti uzita kiel parto de esprimo.
- Se ne ekzistas reveno deklaro por funkcio, lia reveno valoro estas
None. - Al
globaldeklaro devigos ŝanĝiĝema en funkcio por rilati al la tutmonda variablo. - La datumtipo de
NoneestasNoneType. - Ke
importdeklaron importas modulon nomitaareallyourpetsnamederic. (Tio ne estas reale Piton modulo, parenteze.) - Tiu funkcio povas esti vokita kun
spam.bacon(). - Meti la linion de kodo kiu povus kaŭzi eraron en
tryklaŭzo. - La kodo kiu povus potenciale kaŭzi eraron iras en la
tryklaŭzo.La kodo kiu ekzekutas se eraro okazas iras en laexceptklaŭzo.
ĉapitro 4
- La malplena listo valoro, kiu estas listo valoro kiu enhavas neniujn erojn. Tio estas simila al kiel
''estas la malplena linio valoro. spam[2] = 'hello'(Rimarku ke la trian valoron en listo estas je indekso2, ĉar la unua indico estas0.)'d'(Notu ke'3' * 2estas la ĉeno'33', kiu estas pasita alint()antaŭ esti dividita per11. Ĉi fine taksas al3. Esprimoj povas esti uzita kie ajn valoroj estas uzataj.)'d'(Negativa indeksoj rakonti de la fino.)['a', 'b']1[3.14, 'cat', 11, 'cat', True, 99][3.14, 11, 'cat', True]- La operatoro por lerta kunmeto estas
+, dum la operatoro por replicación estas*. (Tio estas la sama kiel por kordoj.) - Dum
append()aldonos valorojn nur al la fino de listo,insert()povas aldoni ilin ie en la listo. - La
delkomunikaĵo kaj laremove()listo metodo estas du manieroj por forigi valorojn el listo. - Ambaŭ listoj kaj kordoj povas esti pasita al
len(), havas indeksoj kaj tranĉaĵoj, uzi enforcikloj, esti kroĉitaj aŭ reproduktita kaj uzi kun lainkajnot inoperatoroj. - Listoj estas mutables; Ili povas esti valoroj aldonitaj, forigitaj, aŭ ŝanĝita. Opoj estas neŝanĝeblaj; Ili ne povas esti ŝanĝita tute. Ankaŭ, opoj estas skribitaj uzante krampoj,
(kaj), dum listoj uzas la rektaj krampoj,[kaj]. (42,)(La fina komo estas deviga.)- La
tuple()kajlist()funkcioj, respektive - Ili enhavas referencojn al listo valoroj.
- La
copy.copy()funkcio faros neprofunda kopion de listo, dum lacopy.deepcopy()funkcio faros profundan kopion de listo. Tio estas, nurcopy.deepcopy()duobligos ajna listoj ene la listo.
ĉapitro 5
- Du krispa krampoj:
{} {'foo': 42}- La aĵoj stokitaj en vortaro estas neordigitaj, dum la erojn en listo estas ordigita.
- Vi ricevas
KeyErroreraro. - Ne estas diferenco. La
inoperatoro ĉekojn ĉu valoro ekzistas kiel ŝlosilo en la vortaro. 'cat' in spamĉekojn ĉu estas'cat'ŝlosilon en la vortaro, dum'cat' in spam.values()kontrolas ĉu estas valoro'cat'por unu el la ŝlosiloj enspam.spam.setdefault('color', 'black')pprint.pprint()
ĉapitro 6
- Eskapi karakteroj reprezentas karakterojn en ŝnuro valoroj kiuj devus alie esti malfacila aŭ neebla por tajpi en kodo.
\nestas lino;\testas langeto.- La
\\eskapo karaktero reprezentos backslash karaktero. - La sola citaĵo en
Howl'sestas fajna ĉar vi uzis citiloj por marki la komencon kaj finon de la ŝnuro. - Multiline kordoj permesos vin uzi linifinojn en kordoj sen la
\neskapo karaktero. - La esprimoj taksi al la sekvaj:
'e''Hello''Hello''lo world!
- La esprimoj taksi al la sekvaj:
'HELLO'True'hello'
- La esprimoj taksi al la sekvaj:
['Remember,', 'remember,', 'the', 'fifth', 'of', 'November.']'There-can-be-only-one.'
- La
rjust(),ljust()kajcenter()kordoj metodoj, respektive - La
lstrip()kajrstrip()metodoj forigi spaceto de la maldekstra kaj dekstra flankoj de kordo, respektive.
ĉapitro 7
- La
re.compile()redonasRegexobjektoj. - Raw strings estas uzataj por ke deklivaj streketoj ne devas esti eskapinta.
- La
search()metodo revenasMatchobjektoj. - La
group()metodo revenas kordoj de la kongruis tekston. - Grupo
0estas la tuta matĉo, grupo1kovras la unua aro de parentezoj, kaj grupo2kovras la dua aro de parentezoj. - Periodoj kaj krampoj povas eskapi kun backslash:
\.,\(Kaj\). - Se la regex havas grupojn, listo de kordoj estas redonita. Se la regex havas grupoj, liston de opoj de kordoj estas redonita.
- La
|karaktero signifas egalante "ĉu, aŭ" inter du grupoj. - La
?Karaktero povas ĉu meznombro "match nul aŭ unu el la antaŭaj grupo" aŭ uzi por signifi nongreedy trafa. - La
+egalas aŭ pli. La*egalas nulo aŭ pli. - La
{3}egalas ekzakte tri ekzemploj de la antaŭa grupo. La{3,5}matĉojn inter tri kaj kvin kazojn. - La
\d,\w, kaj\sstenografio karaktero klasoj kongruas ununura cifero, vorto, aŭ spaceto, respektive. - La
\D,\Wkaj\Sstenografio karaktero klasoj kongruas sola karaktero kiu ne estas cifero, vorto, aŭ spaceto, respektive. - Pasante
re.Iaŭre.IGNORECASEkiel la dua argumento alre.compile()faros la trafa kazo sensenta. - La
.Karakteron normale egalas ajnan karakteron krom la linion karaktero. Sere.DOTALLtrapasintan la dua argumento alre.compile(), tiam la punkto ankaŭ kongrui linion karakteroj. - La
.*Elfaras avara matĉo, kaj la.*?Elfaras nongreedy matĉo. - Ĉu
[0-9a-z]aŭ[a-z0-9] 'X drummers, X pipers, five rings, X hens'- La
re.VERBOSEargumento permesas vin aldoni spaceto kaj komentoj al la ĉeno pasis alre.compile(). re.compile(r'^\d{1,3}(,\d{3})*$')kreos ĉi regex, sed aliaj regex kordoj povas produkti similan regula esprimo.re.compile(r'[AZ][az]*\sNakamoto')re.compile(r'(Alice|Bob|Carol)\s(eats|pets|throws)\s(apples|cats|baseballs)\.', re.IGNORECASE)
ĉapitro 8
- Relativa vojetoj estas relativa al la nuna labordosierujon.
- Absolutaj vojoj komenci kun la bazdosierujo, kiaj / aŭ C: \.
- La
os.getcwd()redonas la nunan laborante dosierujo. Laos.chdir()funkcio ŝanĝas la aktualan labordosierujon. - La
.Leterujo estas la aktuala dosierujo, kaj..Estas la patra dosierujo. - C: \ lardo \ ovojn estas la dir nomo, dum spam.txt estas la bazo nomo.
- La kordo
'r'por legado mode,'w'por registran reĝimo, kaj'a'por append reĝimo - Ekzistantan dosieron malfermiĝis en registran moduso estas viŝitaj kaj tute anstataŭigataj.
- La
read()metodo revenas la dosiero tuta enhavo kiel ununura ĉeno valoro. Lareadlines()metodo revenas listo de kordoj, kie ĉiu linio estas linio el la dosiero enhavo. - Al breto valoro similas vortaro valoro; ĝi havas ŝlosilojn kaj valoroj, kune kun
keys()kajvalues()metodoj kiuj funkcias simile al la vortaro metodoj de la sama nomo.
ĉapitro 9
- La
shutil.copy()funkcio estos kopii unuope, dumshutil.copytree()kopios tuta dosierujo, kune kun ĉiuj liaj enhavoj. - La
shutil.move()funkcio estas uzata por alinomi dosierojn, tiel kiel kopii ilin. - La
send2trashfunkcioj movos dosiero aŭ dosierujo al la recicla bin, dumshutilfunkcioj konstante forigi dosierojn kaj dosierujojn. - La
zipfile.ZipFile()funkcio estas ekvivalenta al laopen()funkcio; la unua argumento estas la dosiernomo, kaj la dua argumento estas la maniero por malfermi la ZIP-dosiero en (legi, skribi, aŭ append).
ĉapitro 10
assert(spam >= 10, 'The spam variable is less than 10.')assert(eggs.lower() != bacon.lower(), 'The eggs and bacon variables are the same!')aŭassert(eggs.upper() != bacon.upper(), 'The eggs and bacon variables are the same!')assert(False, 'This assertion always triggers.')- Povi nomi
logging.debug(), vi devas havi tiujn du liniojn ĉe la komenco de via programo:importado tala logging.basicConfig (nivelo = logging.DEBUG, formato = '% (asctime) s - % (Levelname) s -% (mesaĝo) s ')
- Por povi sendi tala mesaĝojn al dosiero nomata programLog.txt kun
logging.debug(), vi devas havi tiujn du liniojn ĉe la komenco de via programo:importado tala >>> Logging.basicConfig (dosiernomo = 'programLog.txt', nivelo = logging.DEBUG, formato = '% (asctime) s -% (levelname) s -% (mesaĝo) s')
- DEBUG, INFO, AVERTO, ERROR kaj MALTRANKVILIGAN
logging.disable(logging.CRITICAL)- Vi povas malaktivigi tala mesaĝojn sen foriganta la tala funkcio alvokoj. Vi povas selekteme malŝalti suba-nivelo tala mesaĝojn. Kreu tala mesaĝojn. Ensalutanta mesaĝojn provizas tempstampo.
- La Paŝo butonon movi la erarserĉilo en funkcio nomita. La Super butono rapide ekzekuti la funkcion alvoko sen tretante en ĝin. La Eksteren butono rapide ekzekuti la resto de la kodo ĝis ĝi paŝas el la funkcio nuntempe estas en.
- Post vi klakas Iru, la erarserĉilo ĉesos kiam ĝi atingis la finon de la programo aŭ linio kun Haltpunkto.
- A Haltpunkto estas enmuzikigo en linio de kodo kiu kaŭzas la erarserĉilo paŭzi kiam la programo ekzekuto atingas la linion.
- Agordi Haltpunkto en sencela, dekstra-klaki la linio kaj elektu Ara Haltpunkto el la kunteksta menuo.
ĉapitro 11
- La
webbrowsermodulo havasopen()metodo kiu ĵetos retumilo al specifa URL, kaj tio estas ĝi. Larequestsmodulo povas elŝuti dosierojn kaj paĝoj de la TTT. LaBeautifulSoupmodulo parses HTML. Fine, laseleniummodulo povas lanĉi kaj kontroli retumilo. - La
requests.get()funkcio redonasResponseobjekto, kiu havastextatributo kiu enhavas la elŝutita enhavon kiel linio. - La
raise_for_status()metodo levas escepton se la elŝuta havis problemojn kaj faras nenion se la malŝarĝo sukcesis. - La
status_codeatributo de laResponseobjekto enhavas la HTTP- statuso kodo. - Post malfermo de la nova dosiero sur via komputilo en
'wb'"skribi duuma" modo, uzuforbuklo ke ripetas super laResponseobjektoiter_content()metodon por skribi el pecoj de la dosiero. Jen ekzemplo:savefile = malfermita ( 'filename.html', 'WB) por bloko en res.iter_content (100000): saveFile.write (bloko)
- F12 alportas supren la desarrollador iloj en Chrome. Premante CTRL - klavoj MAJUSKLIGA -C (sur Windows kaj Linux) aŭ ⌘- EBLO -C (sur OS X) alportas supren la desarrollador iloj en Firefox.
- Dekstra-klaki la elemento en la paĝo, kaj elektu Inspekti Elemento de la menuo.
'#main''.highlight''div div''button[value="favorite"]'spam.getText()linkElem.attrs- La
seleniummodulo importitaj kunfrom selenium import webdriver. - La
find_element_*metodoj reveni la unua trafa elemento kielWebElementobjekto. Lafind_elements_*metodoj resendas liston de ĉiuj trafaj elementoj kielWebElementobjektoj. - La
click()kajsend_keys()metodoj simuli musklakoj kaj klavaro klavoj, respektive. - Nomante la
submit()metodon sur ajna elemento ene formo submetas formo. - La
forward(),back(), kajrefresh() WebDriverobjekto metodoj simuli tiujn retumilo butonoj.
ĉapitro 12
- La
openpyxl.load_workbook()funkcio redonasWorkbookobjekto. - La
get_sheet_names()metodo revenasWorksheetobjekto. - Voku
wb.get_sheet_by_name('Sheet1'). - Voku
wb.get_active_sheet(). sheet['C5'].valueaŭsheet.cell(row=5, column=3).valuesheet['C5'] = 'Hello'aŭsheet.cell(row=5, column=3).value = 'Hello'cell.rowkajcell.column- Ili revenas la plej alta kolono kaj vico kun valoroj en la folio, respektive, kiel entjero valoroj.
openpyxl.cell.column_index_from_string('M')openpyxl.cell.get_column_letter(14)sheet['A1':'F1']wb.save('example.xlsx')- Formulo enkadriĝas same kiel ajna valoro. Starigis la ĉelo
valueatributon al ĉeno de la formulo tekston. Memoru ke formuloj komenci kun la = signo. sheet.row_dimensions[5].height = 100sheet.column_dimensions['C'].hidden = True- OpenPyXL 2.0.5 ne ŝarĝi frostitan vitroj, presi titoloj, bildoj, aŭ lertaj.
- Freeze vitroj estas vicoj kaj kolumnoj kiuj ĉiam aperas sur la ekrano. Ili estas utilaj por titolaj.
openpyxl.charts.Reference(),openpyxl.charts.Series(),openpyxl.charts. BarChart()openpyxl.charts. BarChart(),chartObj.append(seriesObj)kajadd_chart()
ĉapitro 13
- A
Fileobjekto revenis deopen() - Legado duuma (
'rb') porPdfFileReader()kaj skribado duuma ('wb') porPdfFileWriter() - Nomante
getPage(4)revenosPageobjekto por Pri tiu libro , ekde paĝon 0 estas la unua paĝo. - La
numPagesvariablo tendencas entjero de la nombro de paĝoj en laPdfFileReaderobjekto. - Voku
decrypt('swordfish'). - La
rotateClockwise()kajrotateCounterClockwise()metodoj. La gradoj turni trapasintan kiel entjero argumento. docx.Document('demo.docx')- Dokumento enhavas multoblajn alineoj. Paragrafo komenciĝas sur nova linio kaj entenas multnombrajn kurojn. Runs estas apudaj grupoj de karakteroj ene de alineo.
- Uzu
doc.paragraphs. - A
Runobjekto havas tiujn variablojn (ne Paragrafo). Trueĉiam faras laRunobjekto grasa kajFalsefaras ĉiam ne grasa, negrave kion la stilo estas aŭdaca opcio estas.NonefarosRunobjekto ĝuste uzi la stilon de aŭdaca fikso.- Voku la
docx.Document()funkcio. doc.add_paragraph('Hello there!')- La entjeroj
0,1,2,3, kaj4
ĉapitro 14
- En Excel, kalkultabelojn povas havi valorojn de datumtipoj escepte kordoj; ĉeloj povas havi malsamajn tiparojn, grandecoj, aŭ koloro agordojn; ĉeloj povas havi diversajn larĝoj kaj altoj; apudaj ĉeloj povas esti kunfandita; kaj vi povas enigi bildoj kaj grafikaĵoj.
- Vi pasas
Fileobjekto, akirita de alvoko alopen(). Fileobjektoj devas esti malfermita en legado duuma ('rb') porReaderceloj kaj skribado duuma ('wb') porWriterobjektoj.- La
writerow()metodo - La
delimiterargumento ŝanĝas la ŝnuro uzita apartigi ĉeloj en vico. Lalineterminatorargumento ŝanĝas la ŝnuro uzita apartigi vicoj. json.loads()json.dumps()
ĉapitro 15
- Referenco momento ke multaj Dato kaj tempo programoj uzi. La momento estas januaro 1st, 1970, UTC.
time.time()time.sleep(5)- Ĝi redonas la plej proksima entjero al la argumento pasis. Ekzemple,
round(2.4)revenas2. - A
datetimeobjekto reprezentas specifan momenton en tempo. Atimedeltaobjekto reprezentas daŭro de tempo. threadObj = threading.Thread(target=spam)threadObj.start()- Certiĝu ke kodo kurante en unu fadeno ne legi aŭ skribi la saman variabloj kiel kodo kurante en alia fadeno.
subprocess.Popen('c:\\Windows\\System32\\calc.exe')
ĉapitro 16
- SMTP kaj IMAP, respektive
smtplib.SMTP(),smtpObj.ehlo(),smptObj.starttls(), kajsmtpObj.login()imapclient.IMAPClient()kajimapObj.login()- Listo de kordoj de IMAP ŝlosilvortoj, kiel ekzemple
'BEFORE <date>','FROM <string>', aŭ'SEEN' - Atribui la variablo
imaplib._MAXLINEgranda entjero valoro, kiel ekzemple10000000. - La
pyzmailmodulo legas elŝutita retpoŝtojn. - Vi bezonos la Twilio konton SID nombro, la autenticación signo, ke viaj Twilio telefonnumero.
ĉapitro 17
- An RGBA valoro estas opo de 4 entjeroj, ĉiu iras de 0 al 255. La kvar entjeroj respondas al la kvanto de ruĝa, verda, blua kaj alfa (travidebleco) en la koloro.
- Funkcio alvoko al
ImageColor.getcolor('CornflowerBlue', 'RGBA')revenos(100, 149, 237, 255), la RGBA valoro por koloro. - Skatolo opo estas opo valoro de kvar entjeroj: la maldekstra rando x-koordinato, la supera rando y-koordinato, la larĝo kaj la alto, respektive.
Image.open('zophie.png')imageObj.sizeestas opo de du entjeroj, la larĝa kaj la alteco.imageObj.crop((0, 50, 50, 50)). Rimarku ke vi iras skatolo opo alcrop(), ne kvar apartaj entjeraj argumentoj.- Voku la
imageObj.save('new_filename.png')metodo de laImageobjekto. - La
ImageDrawmodulo enhavas kodon por desegni sur bildoj. ImageDrawobjektoj havas formon-desegnado metodoj kielpoint(),line(), aŭrectangle(). Ili revenis por pasi laImageobjekto al laImageDraw.Draw()funkcio.
ĉapitro 18
- Movi la muson al la supro-maldekstra angulo de la ekrano, tio estas, la (0, 0) koordinatoj.
pyautogui.size()redonas opo kun du entjeroj por la larĝeco kaj alteco de la ekrano.pyautogui.position()redonas opo kun du entjeroj por la x- kaj y-koordinatoj de la muso kursoro.- La
moveTo()funkcio movas la muson al absolutaj koordinatoj sur la ekrano, dum lamoveRel()funkcio movas la muson relativa al la musa nuna pozicio. pyautogui.dragTo()kajpyautogui.dragRel()pyautogui.typewrite('Hello world!')- Ĉu pasi listo de klavaro klavo kordoj al
pyautogui.typewrite()(kiel'left') aŭ pasi sola klavaro klavo ŝnuro alpyautogui.press(). pyautogui.screenshot('screenshot.png')pyautogui.PAUSE = 2
Nenhum comentário:
Postar um comentário