Dit artikel laat je zien hoe je een eenvoudig aftelprogramma maakt met de programmeertaal Python. Dit is een goede oefening voor een beginner die meer wil weten over while-loops en modules. U moet echter al enige bekend zijn met basisconcepten van Python, zoals variabelen, om het te begrijpen.
elleboogverstelbeugel
U moet ook Python 3 hebben geïnstalleerd. Als u dit nog niet heeft gedaan, volgt u de instructies vanHoe Python te installeren.
Stappen
- een Open je teksteditor of IDE. Op Windows is de gemakkelijkste optie om IDLE te gebruiken, dat samen met Python wordt geïnstalleerd.
- 2 Open een nieuw bestand. In veel teksteditors kunt u dit doen door naar het bestandsmenu te gaan en op Nieuw venster te klikken of door gewoon op te drukken Ctrl + N .
- 3 Importeer het
time
module. Hettime
bevat veel Python-functies met betrekking tot tijd, bijvoorbeeld de huidige tijd ophalen of een bepaalde tijd wachten (dit laatste heb je nodig voor dit programma). Om de module te importeren, typ je:countdown
- 4 Definieer een aftelfunctie. U kunt de functie elke gewenste naam geven, maar meestal moet u iets beschrijvends gebruiken. In dit geval zou je het countdown () kunnen noemen. Voeg de volgende code toe:
sleep
- 5 Schrijf een while-loop. Een while-lus herhaalt de code erin zolang de voorwaarde waar is. In dit geval wilt u dat het aftellen doorgaat totdat het nummer 0 bereikt. U moet dus schrijven:
time
- Let op de spaties aan het begin van de regel. Deze vertellen Python dat deze regel code deel uitmaakt van de definitie van de
input()
functie, en niet alleen een code eronder. U kunt een willekeurig aantal spaties gebruiken, maar u moet hetzelfde aantal gebruiken voor elke regel die u één keer wilt laten inspringen. - U moet de volgende coderegels twee keer laten inspringen, omdat ze zowel deel uitmaken van de functiedefinitie als van de while-lus. Dit wordt gedaan door twee keer zoveel spaties te gebruiken.
- Let op de spaties aan het begin van de regel. Deze vertellen Python dat deze regel code deel uitmaakt van de definitie van de
- 6 Druk het huidige nummer af. Dit betekent niet dat je een printer moet gebruiken om het op papier te krijgen, 'printen' is een woord dat 'weergeven op het scherm' betekent. Hiermee kunt u zien hoever het aftellen is gevorderd.
countdown()
- 7 Tel het aantal af. Maak er 1 minder van. Dit gebeurt met de volgende code:
countdown()
Als alternatief, als u niet zo veel wilt typen, kunt u in plaats daarvan schrijven:import time
- 8 Laat het programma even wachten. Anders zouden de getallen veel te snel worden afgeteld en zou het aftellen zijn afgelopen voordat je het zelfs maar kon lezen. Gebruik de
def countdown ( t ):
om een seconde te wachten functie van dewhile t > 0 :
module die u eerder had geïmporteerd:print ( t )
- 9 Doe iets als het aftellen nul bereikt. Om 'BLAST OFF!' Af te drukken wanneer het aftellen nul bereikt, voegt u deze regel toe:
t = t - 1
- Merk op dat deze regel alleen ingesprongen is een keer . Dit komt doordat het geen deel meer uitmaakt van de while-lus. Deze code wordt pas uitgevoerd nadat de while-lus is voltooid.
- 10 Vraag de gebruiker vanaf welk nummer het aftellen moet beginnen. Dit geeft je programma enige flexibiliteit, in plaats van altijd vanaf hetzelfde nummer te tellen.
- Druk de vraag af voor de gebruiker. Ze moeten weten wat ze moeten binnenkomen.
t -= 1
- Krijg het antwoord. Sla het antwoord op in een variabele, zodat u er later iets mee kunt doen.
time . sleep ( 1 )
- Hoewel het antwoord van de gebruiker geen geheel getal is, vraagt u de gebruiker om een ander geheel getal. U kunt dit doen met een while-lus. Als het eerste antwoord al een geheel getal is, komt het programma niet in de lus en gaat het gewoon verder met de volgende code.
print ( 'BLAST OFF!' )
- Nu kunt u er zeker van zijn dat de gebruiker een geheel getal heeft ingevoerd. Het wordt echter nog steeds opgeslagen in een string (
print ( 'How many seconds to count down? Enter an integer:' )
retourneert altijd een string, omdat het niet kan weten of de gebruiker tekst of cijfers zal invoeren). U moet het converteren naar een geheel getal:seconds = input ()
Als je zou hebben geprobeerd een string waarvan de inhoud geen geheel getal is, om te zetten in een geheel getal, zou je een foutmelding krijgen. Dit is de reden terwijl het programma eerst controleerde of het antwoord eigenlijk een geheel getal was.
- Druk de vraag af voor de gebruiker. Ze moeten weten wat ze moeten binnenkomen.
- elf Bel de
while not seconds . isdigit (): print ( 'That wasn't an integer! Enter an integer:' ) seconds = input ()
functie. U had het eerder gedefinieerd, maar het definiëren van een functie doet niet wat erin is geschreven. Om de aftelcode daadwerkelijk uit te voeren, belt u deseconds = int ( seconds )
functie met het aantal seconden dat de gebruiker heeft ingevoerd:countdown ( seconds )
- 12 Controleer uw voltooide code. Het zou er als volgt uit moeten zien:
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 lege regels zijn er alleen om de code beter leesbaar te maken. Ze zijn niet vereist en Python negeert ze eigenlijk.
- U kunt t = t - 1 schrijven in plaats van t - = 1 als u dat wilt.
Community Q&A
Zoeken Nieuwe vraag toevoegen- Vraag Hoe zorg ik ervoor dat het elke seconde wordt afgedrukt in plaats van dat alles in één keer wordt afgedrukt? Gebruik de functie time.sleep (x). Het staat het programma toe om x seconden te pauzeren. Voeg na elke afdrukopdracht time.sleep (1) in.
- Vraag Hoe maak ik het lettertype groter in Python op een Mac? Klik in de Python-shell op Options, Configure, Idle. Van daaruit kunt u de lettergrootte wijzigen.
- Vraag Waarom de 'tijd'-module gebruiken als deze nooit wordt gebruikt? Als je een programma schrijft voor bijvoorbeeld een robot en de servobesturingen in milliseconden hebt, dan gebruikt deze de tijdmodule om het elektrische signaal voor de juiste hoeveelheid tijd te sturen.
- Vraag Ik krijg steeds de volgende foutmelding: 'verwachtte een ingesprongen blok.' Wat heb ik verkeerd gedaan? U moet op de 'Tab'-toets drukken om te laten inspringen, dus als u een' if'-lus aan het doen was. je zou doen: if a = b: print ('Inspringing is de spatie voor print')
- Vraag Ik wil de tijd op het videoscherm afdrukken. Wat moet ik doen? Ik neem aan dat je het Python Turtle Graphics-venster bedoelt. Als ik het goed heb, zou je de functie 'write ()' moeten gebruiken in plaats van 'print ()'. Dan zou je 'clear ()' moeten toevoegen omdat 'write ()' de regels niet automatisch verandert. Anders zou je de positie van je schildpad kunnen verplaatsen. Om de functie 'write ()' te gebruiken, moet je ook 'from turtle import *' toevoegen.
- Vraag Ik gebruik LiClipse en bij het laden van de code wordt deze geladen, maar er gebeurt niets. Inspringen is prima en het enige dat ik heb gewijzigd, is de variabele n in a veranderen. Controleer op syntaxisfouten, meestal een puntkomma aan het einde van alle vereiste fasen, en zorg ervoor dat uw besturingssysteem, stuurprogramma's en Python allemaal de laatste updates zijn. Het kan ook handig zijn om de firewall te controleren en te kijken of deze de interface blokkeert.
- Vraag Hoe kan ik het aftellen stoppen of afbreken? Door het trefwoord 'pauze' te gebruiken. Als u bijvoorbeeld wilt beginnen met aftellen, maar halverwege wilt stoppen, kunt u zoiets proberen: i = 10 terwijl i<10: print(i) i -= 1 if i == 5 break print('done')
- Vraag Hoe maak ik een timer die een willekeurig getal produceert na een bepaalde tijd in Python? Importeer eerst willekeurig. U kunt dan deze regel achter de code toevoegen: random.choice (1,2,3,4,5,6,7,8,9).
- Vraag Hoe voer ik een achtergrondtimer uit in een quiz? Onzichtbare Dit is moeilijk te doen in Python. Je zou threading moeten gebruiken om dit te bereiken: def lachen: while True: print ('Haha') thread1 = threading (lacht) thread1.start ()
- Wat moet ik doen als ik wil dat het aftelt vanaf dagen in een bepaalde tijdzone? E. I. Elke vrijdag van 17:00 utc + 1 tot maandag 17:00 utc + 1? Antwoord
- Hoe kan ik het beste python leren in 30 dagen? Antwoord
- Wat moet ik doen als ik wil dat het een GUI is? Antwoord
Advertentie