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.