Läsa tangentbordsinmatning

Slutförd

Många program är interaktiva. Stöd för interaktivitet innebär att du har ett program som körs olika beroende på indata. Den person som matar in data till ett program är vanligtvis en användare, men det kan vara ett annat program. Det finns många sätt att skicka indata till ett program. två vanliga sätt är via ett grafiskt gränssnitt eller en konsol.

Användarindata

Python tillhandahåller funktionen input() för att läsa indata från tangentbordet. input() läser vad användaren skriver på tangentbordet och returnerar det som en sträng. Här är ett exempel som kombinerar och print() avbildar input() en persons namn och visar det på skärmen:

name = input('Enter your name:')
print(name)

Strängen som skickas som ett argument till input funktionen är den fråga som användaren ser. I det här exemplet ber du användaren att skriva sitt namn ("Ange ditt namn"). När användaren skriver ett namn och trycker på Retur returnerar funktionen input. Funktionens returvärde är den text som användaren skrev och den texten tilldelas till variabeln med namnet name. Variabeln name används sedan som indata eller argument till print funktionen, som matar ut namnet som användaren angav.

Du kan även anropa funktionen input utan en parameter:

print('What is your name?')
name = input()
print(name)

Det här programmet beter sig nästan samma som det första. Skillnaden är att print (som standard) lägger till en ny rad i utdata.

Läsa tal som indata

Funktionen input returnerar alltid det skrivna värdet som en sträng (text). Det här valet är meningsfullt eftersom användaren kan ange vilket värde de vill. Även om indata är ett giltigt tal returneras de ändå som en strängtyp från funktionen input. Till exempel:

x = input('Enter a number: ')
print(type(x))

Om du kör den här koden och anger värdet "5" visas <class 'str'>, även om själva värdet är numeriskt. Om du vill omvandla värdet till en äkta heltalsvariabel kan du använda funktionen int():

x = int(input('Enter a number: '))
print(type(x))

Den här koden matar ut <class 'int'> för värdet ”5”. Du kan använda funktionen float på samma sätt om du förväntar dig en bråkdelskomponent.

Viktigt!

Vad händer om indata inte är numeriska och du skickar dem till funktionen int()? Som du kan förvänta dig skulle detta vara ett fel och orsaka ett körningsfel. Programmet avslutas med den här instruktionen. du kan prova det själv i den interaktiva Python-konsolen. Vi går igenom olika lösningar för hantering av dessa typer av fel i framtida moduler.

Konvertera tal till strängar

Du kan även gå åt andra hållet. Metoden str() tar ett heltals- eller flyttalsvärde och omvandlar det till en sträng. str() Du behöver anropa metoden om du vill att kodexemplet nedan ska fungera. Konverteringen säkerställer att heltalet, i dess strängform, sammanfogas till strängen till vänster.

x = 5
print('The number is ' + str(x))