Python pysähtyy, eikä reagoi mihinkään ennen sulkemista else: komennon lisäämisen jälkeen. En löydä ohjetta tilanteeseen mistään. Ja kyllä. Olen aloittelija.
Laittaisitko koodisi näytille
print('Kerro mitä kello on - tasatunnit vain, kiitos') aika = input('Mika tunti menossa?') vasyttaa = input('Vasyttaako sinua (y or n)?') if('aika >= 22 or aika <= 24) or (aika >= 1 or aika <= 6'): if vasyttaa == 'y': print('nukun… krooh, krooh') if vasyttaa == 'n': print('anna yopalaa') else: if('aika >= 7 or aika <= 10'): if vasyttaa == 'y': print('aamupalaa, kiitos') if vasyttaa == 'n': print('aamupalaa ja kaffea') print('o o') print(' # ') print(' ( ) ') print(' \-/ ')
Mod. korjasi kooditagit!
Sisennykset ei näy nyt koodissa jostain syystä.
Tässä ainakin yksi vika koodista:
if('aika >= 22 or aika <= 24) or (aika >= 1 or aika <= 6'): if('aika >= 7 or aika <= 10'): # Olet laittanut ehtojen ympärille ' -merkit, jolloin se on merkkijono, # eikä ehto. Merkkijono on tosi, jos se ei ole tyhjä, joten ensimmäinen # if lohko menee aina läpi. # Oikea syntaksi olisi varmaan tämä: if (aika >= 22 or aika <= 24) or (aika >= 1 or aika <= 6): if (aika >= 7 or aika <= 10):
Kiitos! Lähden korjailemaan.
AtskaFin kirjoitti:
Tässä ainakin yksi vika koodista:
# Oikea syntaksi olisi varmaan tämä: if (aika >= 22 or aika <= 24) or (aika >= 1 or aika <= 6): if (aika >= 7 or aika <= 10):
Syntaksi on "varmaan" oikein mutta ehtolauseissa ei ole mitään järkeä. Jokainen noista suluissa olevista ehtoryppäistä on tosi millä tahansa luvulla. Pythonissa ei myöskään kuulu käyttää sulkeita if-sanan jälkeen.
if aika >= 0 or aika <= 0: print("jee jee")
Juu niin tekee. Aloittelijalle hankalaa.
Villertsonille on tosiaan tullut pieni ajatusvirhe ehtoja tehdessä.
# ------ Virheelliset ehdot ------ if (aika >= 22 or aika <= 24) or (aika >= 1 or aika <= 6): if (aika >= 7 or aika <= 10): # ------ Toimivat ehdot ---------- if (aika >= 22 and aika <= 24) or (aika >= 1 and aika <= 6): if aika >= 7 and aika <= 10:
Kannattaa myös opetella käyttämään else if - rakennetta:
else: if('aika >= 7 or aika <= 10'): if vasyttaa == 'y': print('aamupalaa, kiitos') #----------------------------- elif aika >= 7 and aika <= 10: if vasyttaa == 'y': print('aamupalaa, kiitos')
(En käytä pythonia. Esimerkit toimivat luultavasti)
Kiitos neuvoista. Sain homman toimimaan. Yllättävän vaikea tottumattomana löytää pieniä virheitä.
AtskaFin kirjoitti:
if (aika >= 22 and aika <= 24) or (aika >= 1 and aika <= 6):
Tai sitten hiukan siistimmin voisi muotoilla tähän tapaan:
if ( 22 <= aika <= 24 ) or ( 1 <= aika <= 6 ):
Aihe on jo aika vanha, joten et voi enää vastata siihen.