Noormees kirjutab kodus sülearvutiga
Pildi krediit: g-stockstudio/iStock/Getty Images
Erinevalt C++-st ja Java-st ei sisalda Pythoni muutujad selgesõnalist tüübiteavet. Kui kasutate funktsiooni, mis nõuab stringi, saate sellele edastada muud tüüpi muutujaid ilma erandit, kuigi teie kood võib muutujat töödelda proovides teha erandi. Ainsad andmetüübid, mida peate stringideks teisendama, on liitandmestruktuurid, nagu komplektid ja loendid. Python sisaldab mugavaid funktsioone ja operaatoreid andmestruktuuri üksuste itereerimiseks ja märkide lisamiseks stringimuutujale.
Tugevad, dünaamiliselt trükitud keeled
C++ ja Java nõuavad reservsõna, mis eelneks kõikidele muutujate eraldamisele, kuna kompilaator või käituskeskkond peab teadma, kuidas andmeid töödelda. Need staatiliselt trükitud keeled kasutavad võimaluse korral tüüpide teisendamiseks tüübi ülekandmist. Kuna Python on dünaamiliselt trükitav keel, järeldab tõlk tüübi käitusajal, nii et saate muutujatele lihtsalt vajaduse korral väärtused määrata. Varem erineva tüübina kasutatud muutujale saate määrata mis tahes andmetüübi ja Pythoni prügikoguja eemaldab vana muutuja mälust.
Päeva video
Andmestruktuuride teisendamine stringideks
Kui teie programm kogub tekstiteavet liitstruktuuris, näiteks loendis, korteežis või komplektis, saate stringimuutujale elementide lisamiseks andmestruktuuri üle silmutada. Enne andmestruktuuri itereerimist ei pea te stringimuutujat deklareerima, kuid see võib teie koodi lihtsamaks muuta. Näiteks järgmine kood näitab kõige elementaarsemat meetodit loendi stringiks teisendamiseks:
ultimateQuestion = "" # deklareerige tühi string "ultimateQuestion"
tokens = ["Mis on ", 6, " korda ", 9, "?"] # segatüüpide loend tühikutega
t jaoks märgides: ultimateQuestion += str (t)
print (ultimateQuestion)
For-tsüklis kasutatav str-meetod heidab täisarvud stringidesse ega mõjuta olemasolevaid stringe. Kui käivitate selle koodi Pythoni tõlgis, prindib see välja "Mis on 6 korda 9?"
Sisseehitatud stringimeetodid
Nagu enamik kõrgetasemelisi keeli, sisaldab Python palju meetodeid, mis kuuluvad sisseehitatud stringitüüpi. Pythonis saab neid meetodeid kutsuda stringliteraalist, nii et näiteks loendielementide ühendamiseks saate edastada loendimuutuja stringliteraali liitumismeetodile nagu järgmises näites:
tokens = ['Tere', 'Maailm'] #string märgid ilma tühikuteta
pyString = ' '.join (märgid)
print (pyString)
See skript kutsub liitumist stringi literaalist, mis on vaid tühikumärgist koosnev ühekohaline string. See ühendab "Tere" ja "Maailm" sõnaga "Tere maailm", lisades kutsuva objekti - tühiku - iga loendielemendi vahele.
Pythoni muutuja ulatuse eraldusvõime
Nagu teistegi kõrgetasemeliste keelte puhul, tuleb stringimuutujate deklareerimisel ja määramisel pöörata tähelepanu muutuja ulatusele. Kui deklareerite funktsiooni või tsükli sees stringimuutuja, ei saa te seda kuskil mujal programmis kasutada. Näiteks Pythoni tõlk hävitab muutuja "verticalList" pärast tsüklist naasmist:
g jaoks toidukaupades: verticalList += g + '\n' # string on tsükli sees deklareeritud
print (vertikaalne nimekiri)
See skript teeb erandi, kuna "verticalList" ei ole määratletud väljaspool for-tsükli ulatust.