Kirjautuminen

Haku

Tehtävät

Kilpailu

Algoritmikisa
Putka Open 2020 -kisan
4. kierros: 6.–8.11.

Keskustelu: Ohjelmointiongelmat: Python pysähtyy

Sivu 1 / 1

Sivun loppuun

Villertson [31.08.2020 11:48:44]

#

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.

AtskaFin [31.08.2020 11:58:32]

#

Laittaisitko koodisi näytille

Villertson [31.08.2020 12:56:15]

#

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!

Villertson [31.08.2020 12:56:59]

#

Sisennykset ei näy nyt koodissa jostain syystä.

AtskaFin [31.08.2020 13:08:54]

#

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):

Villertson [31.08.2020 13:13:04]

#

Kiitos! Lähden korjailemaan.

The Alchemist [01.09.2020 08:14:48]

#

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")

Villertson [01.09.2020 09:54:25]

#

Juu niin tekee. Aloittelijalle hankalaa.

AtskaFin [01.09.2020 10:42:30]

#

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)

Villertson [01.09.2020 13:14:46]

#

Kiitos neuvoista. Sain homman toimimaan. Yllättävän vaikea tottumattomana löytää pieniä virheitä.

jalski [01.09.2020 17:51:25]

#

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 ):

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta