Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen.
Als je een Python-beginner bent, is deze eenvoudige wekker een uitstekende praktische introductie.
Er zijn veel oefeningen die je zou kunnen gebruiken om je Python-vaardigheden te versterken. Een van deze oefeningen is een wekker, die je als een enkel scriptbestand kunt schrijven. U kunt het ook uitvoeren met behulp van een opdrachtprompt.
In het wekkerscript moet de gebruiker de tijd instellen waarop hij het alarm wil laten afgaan. Het Python-script geeft dan een "Wake up"-bericht weer aan de gebruiker wanneer het alarm afgaat.
U kunt ook een aftelling toevoegen om de gebruiker te laten zien hoe lang hij moet wachten tot het alarm afgaat.
Hoe het alarm in te stellen
Maak een Python-script en voeg de eerste afgedrukte verklaringen toe om de gebruiker te vragen wanneer ze het alarm willen instellen. Als u niet bekend bent met een deel van de Python-syntaxis, kunt u er enkele bekijken
eenvoudige python-voorbeelden om u te helpen de basisprincipes te begrijpen.- Maak een nieuw bestand aan en noem het alarm.py.
- Open het Python-script met een willekeurige teksteditor zoals Notepad++.
- Importeer bovenaan het bestand zowel de datetime- als de time-module. Het programma zal deze gebruiken om te berekenen hoe lang het moet wachten tot het alarm afgaat. Je kunt gebruiken De tijdmodule van Python om onder meer de uitvoering uit te stellen.
importeren datum Tijd
importeren tijd - Voeg een while-lus toe. Vraag de gebruiker binnen de while-lus om een geldige alarmtijd in te voeren, in het formaat [uur: minuut]. De while-lus wordt herhaald als de gebruiker een ongeldig getal invoert.
ongeldig = WAAR
terwijl(ongeldig):
# Krijg een geldige gebruikersinvoer voor de alarmtijd
afdrukken("Set een geldige tijdvoor het alarm (bijv. 06:30)")
gebruikerInvoer = invoer(">>") - Converteer binnen de while-lus de invoer van de gebruiker naar een array die de uurwaarde scheidt van de minuutwaarde.
# Dit converteert bijvoorbeeld 6:30 naar een array van [6, 30].
alarmTime = [int (n) voor n in userInput.split(":")] - Nog steeds in de while-lus valideert u zowel de uur- als de minuutwaarde. Het uur moet een getal zijn tussen 0 en 23, en de minuut moet een getal zijn tussen 0 en 59. Als niet aan deze voorwaarden wordt voldaan, zorgt de ongeldige boolean ervoor dat de while-lus wordt herhaald en wordt de gebruiker gevraagd een nieuwe waarde in te voeren.
# Valideer dat de ingevoerde tijd tussen 0 en 24 (uren) of 0 en 60 (minuten) ligt
als alarmTime[0] >= 24 of alarmTime[0] < 0:
ongeldig = WAAR
elif alarmTijd[1] >= 60 of alarmTime[1] < 0:
ongeldig = WAAR
anders:
ongeldig = Vals
Hoe te tellen hoe lang u moet wachten tot het alarm afgaat
Wacht tot het alarm afgaat door te tellen hoeveel seconden het programma nog moet wachten.
- Zet onder de while-lus de alarmtijd om naar de seconde dat het gedurende de dag is. Ter referentie, er zijn 86400 seconden in een dag. Als de gebruiker 00:01 invoert (één minuut na middernacht), is de alarmtijd in seconden 60. Als de gebruiker 23:59 invoert, is de alarmtijd in seconden 86340.
# Aantal seconden in een uur, minuut en seconde
seconden_hms = [3600, 60, 1]
# Converteer de alarmtijd naar seconden
alarmSeconds = som([a*b voor a, b in zip (seconds_hms[:len (alarmTime)], alarmTime)]) - Gebruik de functie datetime.now() om de huidige tijd te bepalen. Converteer de huidige tijd van de dag in seconden.
nu = datumtijd.datumtijd.nu()
currentTimeInSeconds = som([a*b voor a, b in zip (seconds_hms, [nu.uur, nu.minuut, nu.seconde])]) - Bereken het aantal seconden voordat het alarm afgaat.
secondsUntilAlarm = alarmSeconds - currentTimeInSeconds
- Als het tijdsverschil negatief is, betekent dit dat het alarm voor de volgende dag moet worden ingesteld.
als secondenTotAlarm < 0:
secondenTotAlarm += 86400# aantal seconden op een dag - Geef een bericht weer aan de gebruiker om hem te laten weten dat het alarm met succes is ingesteld.
afdrukken("Wekker is set!")
afdrukken("Het alarm gaat af op %s" % datetime.timedelta (seconden=secondenUntilAlarm))
Hoe het alarm te luiden
Om het alarm te laten afgaan, wacht u de resterende seconden voordat u een "Wakker worden!" bericht aan de gebruiker.
- Gebruik time.sleep om te wachten op het aantal seconden dat nodig is totdat het alarm moet afgaan.
tijd.slaap(secondenTotAlarm)
- Geef het bericht "Wakker worden" weer aan de gebruiker wanneer het alarm afgaat.
afdrukken("Ring Ring... tijd om wakker te worden!")
Een aftelling toevoegen voordat het alarm afgaat
Om voor elke seconde een aftelling toe te voegen, gebruikt u een for-lus om de resterende seconden voor de gebruiker af te drukken.
- Vervang de time.sleep lijn. Voeg een for-lus toe voor elke seconde totdat het alarm afgaat en geef de resterende seconden weer voor de gebruiker.
voor i in bereik (0, secondsUntilAlarm):
tijd.slaap(1)
secondenTotAlarm -= 1
afdrukken(datetime.timedelta (seconden=secondenTotAlarm))
Het wekkerprogramma uitvoeren
Voer het script uit door naar het bestand te navigeren met behulp van de opdrachtregel. Gebruik de opdracht python om het script te starten en stel een alarmtijd in.
- Open een opdrachtprompt of terminal. Navigeer naar de locatie van uw alarm.py-bestand. Als u bijvoorbeeld uw Python-bestand op het bureaublad hebt opgeslagen, gebruikt u cd Desktop.
CD Bureaublad
- Gebruik de opdracht python om het Python-script uit te voeren.
Pythonalarm.py
- Stel een geldige tijd in voor het alarm, in het formaat [uur: minuut]. Bijvoorbeeld 4:30.
- Het alarm wordt ingesteld en begint af te tellen voor elke seconde totdat het alarm moet afgaan. Wacht tot het alarm klaar is met aftellen.
- Zodra het programma het aftellen heeft voltooid, geeft het programma een bericht weer om u te laten zien dat het alarm afgaat.
Maak eenvoudige programma's met behulp van Python
Een wekker is een goede oefening die je kunt oefenen om je Python-vaardigheden aan te scherpen. U kunt de wekker-app in een enkel scriptbestand schrijven en uitvoeren via een opdrachtregel. Tijdens runtime zal het programma de gebruiker vragen om een geldige tijd in te voeren om het alarm in te stellen.
Zodra het alarm is ingesteld, berekent u hoeveel seconden u moet wachten tot de wekker afgaat. Laat het programma zo lang wachten voordat het een bericht aan de gebruiker weergeeft wanneer het alarm afgaat.
U kunt deze alarmoefening ook opnieuw maken in andere talen. U kunt leren hoe u een digitale klok kunt maken met behulp van HTML, CSS en JavaScript.