Den här artikeln visar hur du skapar ett enkelt nedräkningsprogram med programmeringsspråket Python. Detta är en bra övning för en nybörjare som vill lära sig om loopar och moduler. Du bör dock redan ha en viss bekantskap med grundläggande Python-begrepp som variabler för att förstå det.
ptex stag
Du måste också ha Python 3 installerat. Om du inte har gjort det innan du fortsätter följer du instruktionerna frånHur man installerar Python.
Steg
- ett Öppna din textredigerare eller IDE. På Windows är det enklaste alternativet att använda IDLE, som installeras tillsammans med Python.
- 2 Öppna en ny fil. I många textredigerare kan du göra detta genom att gå till filmenyn och klicka på Nytt fönster eller genom att bara trycka på Ctrl + N .
- 3 Importera
time
modul.time
innehåller många Python-funktioner relaterade till tid, till exempel att få aktuell tid eller vänta en viss tid (den senare är vad du behöver för detta program). För att importera modulen, skriv:countdown
- 4 Definiera en nedräkningsfunktion. Du kan ge funktionen vilket namn du vill, men vanligtvis bör du använda något beskrivande. I det här fallet kan du namnge det nedräkning (). Lägg till följande kod:
sleep
- 5 Skriv en while-loop. En while-loop upprepar koden inuti den så länge dess skick är sant. I det här fallet vill du att nedräkningen ska fortsätta tills siffran når 0. Så du måste skriva:
time
- Lägg märke till mellanslag i början av raden. Dessa säger till Python att denna kodrad är en del av definitionen av
input()
funktion, och inte bara någon kod under den. Du kan använda valfritt antal mellanslag, men du måste använda samma belopp före en rad som du vill dra in en gång. - Du måste dra in nästa kodrader två gånger, eftersom de båda är en del av funktionsdefinitionen och en del av while-loop. Detta görs genom att använda dubbelt så många mellanslag.
- Lägg märke till mellanslag i början av raden. Dessa säger till Python att denna kodrad är en del av definitionen av
- 6 Skriv ut det aktuella numret. Detta betyder inte att man använder en skrivare för att få den på papper, 'utskrift' är ett ord som betyder 'visas på skärmen'. Detta låter dig se hur långt nedräkningen har kommit.
countdown()
- 7 Räkna ner numret. Gör det 1 mindre. Detta görs med följande kod:
countdown()
Alternativt, om du inte vill skriva så mycket, kan du istället skriva:import time
- 8 Låt programmet vänta en sekund. Annars skulle det räkna ner siffrorna alldeles för snabbt och nedräkningen skulle vara klar innan du ens kunde läsa den. För att vänta en sekund, använd
def countdown ( t ):
funktion förwhile t > 0 :
modul som du tidigare hade importerat:print ( t )
- 9 Gör något när nedräkningen når noll. Att skriva ut 'BLAST OFF!' när nedräkningen når noll, lägg till den här raden:
t = t - 1
- Observera att denna rad bara är indragen en gång . Detta beror på att det inte längre är en del av while-loop. Den här koden körs bara efter att while-loop är klar.
- 10 Fråga användaren från vilket nummer som ska starta nedräkningen. Detta ger ditt program viss flexibilitet istället för att alltid räkna från samma nummer.
- Skriv ut frågan till användaren. De behöver veta vad de ska komma in på.
t -= 1
- Få svaret. Lagra svaret i en variabel så att du kan göra något med det senare.
time . sleep ( 1 )
- Medan användarens svar inte är ett heltal, fråga användaren om ett annat heltal. Du kan göra detta med en stund-loop. Om det första svaret redan är ett heltal kommer programmet inte in i slingan och fortsätter bara med nästa kod.
print ( 'BLAST OFF!' )
- Nu kan du vara säker på att användaren angav ett heltal. Det lagras dock fortfarande i en sträng (
print ( 'How many seconds to count down? Enter an integer:' )
returnerar alltid en sträng, eftersom den inte kan veta om användaren kommer att ange text eller siffror). Du måste konvertera det till ett heltal:seconds = input ()
Om du skulle ha försökt konvertera en sträng vars innehåll inte är ett heltal till ett heltal, skulle du få ett fel. Detta är orsaken medan programmet kontrollerade om svaret egentligen var ett heltal först.
- Skriv ut frågan till användaren. De behöver veta vad de ska komma in på.
- elva Ring
while not seconds . isdigit (): print ( 'That wasn't an integer! Enter an integer:' ) seconds = input ()
fungera. Du hade tidigare definierat det, men att definiera en funktion gör inte det som står inuti det. För att faktiskt köra nedräkningskoden, ringseconds = int ( seconds )
funktion med antalet sekunder som användaren matade in:countdown ( seconds )
- 12 Kontrollera din färdiga kod. Det ska se ut så här:
import time def countdown ( t ): while t > 0 : print ( t ) t -= 1 time . sleep ( 1 ) print ( 'BLAST OFF!' ) print ( 'How many seconds to count down? Enter an integer:' ) seconds = input () while not seconds . isdigit (): print ( 'That wasn't an integer! Enter an integer:' ) seconds = input () seconds = int ( seconds ) countdown ( seconds )
- De tomma raderna finns bara för att göra koden lättare att läsa. De krävs inte, och Python ignorerar dem faktiskt.
- Du kan skriva t = t - 1 istället för t - = 1 om du föredrar det.
Gemensamma frågor och svar
Sök Lägg till ny fråga- Fråga Hur får jag det att skriva ut i varje sekund istället för att skriva ut allt på en gång? Använd time.sleep (x) -funktionen. Det gör att programmet kan pausa i x sekunder. Sätt in time.sleep (1) efter varje utskriftsuttalande.
- Fråga Hur gör jag teckensnittet större i Python på en Mac? Klicka på Alternativ, Konfigurera, Tomgång i Python-skalet. Därifrån kan du ändra teckenstorlek.
- Fråga Varför har 'tids' -modulen om den aldrig används? Om du skriver ett program för, till exempel, en robot och har servokontrollerna i millisekunder, kommer den att använda tidsmodulen för att skicka den elektriska signalen under rätt tid.
- Fråga Jag får följande fel: 'förväntade mig ett indraget block.' Vad har jag gjort fel? Du måste trycka på 'Tab' -tangenten för att dra in, så om du gjorde en 'if' -slinga. du skulle göra: om a = b: skriva ut ('Indragning är utrymmet före utskrift')
- Fråga Jag vill skriva ut tiden på videoskärmen. Vad ska jag göra? Jag antar att du menar fönstret Python Turtle Graphics. Om jag stämmer ska du använda funktionen 'skriv ()' istället för 'skriv ut ()'. Då måste du lägga till 'clear ()' eftersom 'skriv ()' inte ändrar raderna automatiskt. Annars kan du flytta din Turtle. För att använda funktionen 'skriv ()' måste du också lägga till 'från sköldpaddsimport *'.
- Fråga Jag använder LiClipse och när jag läser in koden laddas den, men ingenting händer. Indragning är bra och det enda jag har ändrat är att ändra variabeln n till a. Leta efter syntaxfel, oftast en semikolon i slutet av alla nödvändiga faser, och se till att ditt operativsystem, drivrutiner och Python alla är uppdaterade. Det kan också vara till hjälp att kontrollera brandväggen och se om den blockerar gränssnittet.
- Fråga Hur kan jag stoppa eller avbryta nedräkningen? Genom att använda nyckelordet 'break'. Om du till exempel vill starta en nedräkning men vill stoppa den halvvägs, kan du prova något så här: i = 10 medan jag<10: print(i) i -= 1 if i == 5 break print('done')
- Fråga Hur skapar jag en timer som ger ett slumptal efter en viss tid i Python? Första importen slumpmässig. Du kan sedan lägga till denna rad efter koden: random.choice (1,2,3,4,5,6,7,8,9).
- Fråga Hur kör jag en bakgrundstimer i ett frågesport? Osynlig Detta är svårt att göra i Python. Du bör använda threading för att åstadkomma detta: def skratt: medan True: print ('Haha') thread1 = threading (skratt) thread1.start ()
- Vad händer om jag vill att det ska räknas ner från dagar i en viss tidszon? E. I. Varje fredag från 17:00 utc + 1 till måndag 17:00 utc + 1? Svar
- Hur bäst kan jag lära mig python på 30 dagar? Svar
- Vad händer om jag vill att det ska vara ett GUI? Svar
Annons