En ung man som hemma skriver på sin bärbara dator
Bildkredit: g-stockstudio/iStock/Getty Images
Till skillnad från i C++ och Java innehåller Python-variabler inte explicit typinformation. Om du använder en funktion som kräver en sträng kan du skicka variabler av andra typer till den utan kastar ett undantag, även om din kod kan skapa ett undantag när den försöker bearbeta variabeln. De enda datatyper du kan behöva för att konvertera till strängar är sammansatta datastrukturer som uppsättningar och listor. Python innehåller praktiska funktioner och operatorer för att iterera över objekten i en datastruktur och lägga till tecken till en strängvariabel.
Starka, dynamiskt typade språk
C++ och Java kräver ett typreservord för att föregå alla variabeltilldelningar eftersom kompilatorn eller runtime-miljön måste veta hur data ska behandlas. Dessa statiskt skrivna språk använder typcasting för att konvertera mellan typer om möjligt. Eftersom Python är ett dynamiskt skrivet språk, härleder tolken typen vid körning, så du tilldelar helt enkelt värden till variabler efter behov. Du kan tilldela vilken datatyp som helst till en variabel som tidigare användes som en annan typ, och Python-sopsamlaren tar bort den gamla variabeln från minnet.
Dagens video
Konvertera datastrukturer till strängar
Om ditt program samlar in textinformation i en sammansatt struktur som en lista, tuppel eller uppsättning, kan du loopa över datastrukturen för att lägga till element till en strängvariabel. Du behöver inte deklarera en strängvariabel innan du itererar över datastrukturen, men det kan göra din kod enklare. Till exempel visar följande kod den mest grundläggande metoden för att konvertera en lista till en sträng:
ultimateQuestion = "" # deklarera tom sträng "ultimateQuestion"
tokens = ["Vad är ", 6, " gånger ", 9, "?"] # lista över blandade typer med blanksteg
för t i tokens: ultimateQuestion += str (t)
print (ultimateQuestion)
Str-metoden som används i for-loopen kastar heltal till strängar och har ingen effekt på befintliga strängar. Om du kör den här koden i Python-tolken skriver den ut "Vad är 6 gånger 9?"
Inbyggda strängmetoder
Liksom de flesta högnivåspråk innehåller Python många metoder som tillhör den inbyggda strängtypen. I Python kan du anropa dessa metoder från en strängliteral, så för att sammanfoga listelement, till exempel, kan du skicka en listvariabel till en strängliterals join-metod som i följande exempel:
tokens = ['Hej', 'Världen'] #string-tokens utan blanksteg
pyString = ' '.join (tokens)
print (pyString)
Det här skriptet anropar join från ' '-strängen literal, som är en en-teckensträng av bara blanksteg. Den sammanfogar "Hello" och "World" till "Hello World" genom att infoga det anropande objektet - ett mellanslag - mellan varje listelement.
Python Variable Scope Resolution
Som på andra högnivåspråk måste du vara uppmärksam på en variabels omfattning när du deklarerar och tilldelar strängvariabler. Om du deklarerar en strängvariabel inuti en funktion eller slinga kan du inte använda den någon annanstans i programmet. Till exempel förstör Python-tolken variabeln "verticalList" efter att ha återvänt från loopen:
för g i matvaror: verticalList += g + '\n' # sträng deklarerad inuti för loop
print (verticalList)
Det här skriptet skapar ett undantag eftersom "verticalList" inte är definierad utanför räckvidden för for-loopen.