Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon.
Hvis du er en Python-nybegynner, er denne enkle vekkerklokken en utmerket praktisk introduksjon.
Det er mange øvelser du kan bruke for å styrke Python-ferdighetene dine. En av disse øvelsene er en vekkerklokke, som du kan skrive som en enkelt skriptfil. Du kan også kjøre den ved å bruke en ledetekst.
I vekkerklokkeskriptet må brukeren stille inn tiden de vil at alarmen skal gå av. Python-skriptet vil da vise en "Våkn opp"-melding til brukeren når alarmen går.
Du kan også legge til en nedtelling for å vise brukeren hvor lenge de må vente til alarmen går.
Hvordan stille inn alarmen
Lag et Python-skript og legg til de første utskrevne uttalelsene for å spørre brukeren når de vil sette alarmen. Hvis du ikke er kjent med noe av Python-syntaksen, kan du se på noen grunnleggende python-eksempler for å hjelpe deg å forstå det grunnleggende.
- Opprett en ny fil og ring den alarm.py.
- Åpne Python-skriptet ved å bruke et hvilket som helst tekstredigeringsprogram som Notepad++.
- På toppen av filen importerer du både dato- og klokkeslettmodulene. Programmet vil bruke disse når det beregnes hvor lenge det må vente til alarmen går. Du kan bruke Pythons tidsmodul å forsinke gjennomføringen, blant andre handlinger.
import dato tid
import tid - Legg til en while-løkke. Inne i while-løkken, be brukeren om å angi en gyldig alarmtid, i formatet [time: minutt]. While-løkken vil gjentas hvis brukeren angir et ugyldig nummer.
ugyldig = ekte
samtidig som(ugyldig):
# Få en gyldig brukerinndata for alarmtidspunktet
skrive ut("Sett en gyldig tidtil alarmen (eks. 06:30)")
brukerinngang = input(">>") - Inne i while-løkken konverterer du brukerens input til en matrise som skiller timeverdien fra minuttverdien.
# For eksempel vil dette konvertere 6:30 til en matrise på [6, 30].
alarmTime = [int (n) for n i userInput.split(":")] - Fortsatt inne i while-løkken, valider både time- og minuttverdiene. Timen skal være et tall mellom 0 og 23, og minuttet skal være et tall mellom 0 og 59. Hvis disse betingelsene ikke er oppfylt, vil den ugyldige boolske verdien føre til at while-løkken gjentar seg og ber brukeren om å angi en ny verdi.
# Bekreft at tiden angitt til å være mellom 0 og 24 (timer) eller 0 og 60 (minutter)
if alarmTime[0] >= 24 eller alarmTime[0] < 0:
ugyldig = ekte
elif alarmTime[1] >= 60 eller alarmTime[1] < 0:
ugyldig = ekte
ellers:
ugyldig = Falsk
Hvordan telle hvor lenge du skal vente til alarmen går
Vent til alarmen går ved å telle hvor mange sekunder programmet må vente.
- Under while-løkken konverterer du alarmtiden til sekundet den er i løpet av dagen. For referanse er det 86400 sekunder på en dag. Hvis brukeren skriver inn 00:01 (ett minutt etter midnatt), vil alarmtiden i sekunder være 60. Hvis brukeren angir 23:59, vil alarmtiden i sekunder være 86340.
# Antall sekunder i en time, minutt og sekund
sekunder_hms = [3600, 60, 1]
# Konverter alarmtiden til sekunder
alarmSeconds = sum([a*b for a, b i zip (seconds_hms[:len (alarmTime)], alarmTime)]) - Bruk funksjonen datetime.now() for å bestemme gjeldende klokkeslett. Konverter gjeldende tid på dagen i sekunder.
nå = datetime.datetime.now()
currentTimeInSeconds = sum([a*b for a, b i zip (seconds_hms, [now.hour, now.minute, now.second])]) - Beregn antall sekunder før alarmen går.
secondsUntilAlarm = alarmSeconds - currentTimeInSeconds
- Hvis forskjellen er negativ, betyr det at alarmen må stilles til neste dag.
hvis sekunderUntilAlarm < 0:
sekunderUntilAlarm += 86400# antall sekunder på en dag - Vis en melding til brukeren for å fortelle dem at alarmen har blitt satt inn.
print("Alarm er sett!")
skrive ut("Alarmen vil ringe ved %s" % datetime.timedelta (seconds=secondsUntilAlarm))
Hvordan ringe alarmen
For å ringe alarmen, vent i de gjenværende sekundene før du skriver ut et "Våkn opp!" melding til brukeren.
- Bruk time.sleep for å vente i antall sekunder som kreves til alarmen må gå.
tid.sove(sekunderUntil Alarm)
- Vis "Våkn opp"-meldingen til brukeren når alarmen går.
skrive ut("Ring Ring... på tide å våkne!")
Hvordan legge til en nedtelling før alarmen ringer
For å legge til en nedtelling for hvert sekund, bruk en for-løkke for å skrive ut sekundene som er igjen til brukeren.
- Bytt ut time.sleep-linjen. Legg til en for-løkke for hvert sekund til alarmen går, og vis sekundene som er igjen til brukeren.
for i innen rekkevidde (0, sekunderUntilAlarm):
tid.sove(1)
sekunderUntilAlarm -= 1
skrive ut(datetime.timedelta (seconds=secondsUntilAlarm))
Hvordan kjøre vekkerklokkeprogrammet
Kjør skriptet ved å navigere til filen ved å bruke kommandolinjen. Bruk python-kommandoen for å starte skriptet, og angi et alarmtidspunkt.
- Åpne en ledetekst eller terminal. Naviger til plasseringen av alarm.py-filen. For eksempel, hvis du har lagret Python-filen på skrivebordet, bruk cd Desktop.
cd Skrivebord
- Bruk python-kommandoen til å kjøre Python-skriptet.
pythonalarm.py
- Still inn en gyldig tid for alarmen, i formatet [time: minutt]. For eksempel 4:30.
- Alarmen stilles og starter en nedtelling for hvert sekund til alarmen må gå. Vent til alarmen er ferdig med å telle ned.
- Når programmet har fullført nedtellingen, vil programmet vise en melding for å vise deg at alarmen ringer.
Lag enkle programmer ved hjelp av Python
En vekkerklokke er en god øvelse du kan øve på for å skjerpe Python-ferdighetene dine. Du kan skrive vekkerklokkeappen i en enkelt skriptfil og kjøre den ved å bruke en kommandolinje. Ved kjøretid vil programmet be brukeren angi et gyldig tidspunkt for å stille inn alarmen.
Når alarmen er stilt, regner du ut hvor mange sekunder du må vente til vekkerklokken går. Få programmet til å vente så lenge før du viser en melding til brukeren når alarmen går.
Du kan også gjenopprette denne alarmøvelsen på andre språk. Du kan lære hvordan du lager en digital klokke ved hjelp av HTML, CSS og JavaScript.