Diskuze: Neznámá chyba „print“

Python Python Neznámá chyba „print“

Avatar
Ondřej Jiří Beneš:

Dobrý den,

neustále mi to hází chybu u příkazu print("Obvod je",4*vel_str­_ctv_obv), ale nevím proč.

Zdrojový kód:

vol_geo_tva = input("S jakým geometrickým tvarem chceš provádět výpočty?\n(čtverec, obdelník)\n")

while vol_geo_tva.lower():
    if vol_geo_tva.lower() == "čtverec":
        vol_vel_ctv = input("Chceš vypočítat obvod nebo obsah?\n")
        if vol_vel_ctv.lower() == "obvod":
            vel_str_ctv_obv = float(input("Zadej velikost strany: ")

                                    print("Obvod je",4*vel_str_ctv_obv)
                                    input()

        elif vol_vel_ctv.lower() == "obsah"
            vel_str_ctv_obs = float(input("Zadej velikost strany: ")

                                    print("Obsah je",vel_str_ctv_obs*vel_str_ctv_obs)
                                    input()

    if vol_geo_tva.lower() == "obdelník":
input()
 
Odpovědět 26. února 22:09
Avatar
coells
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
coells:

Protože mícháš taby a mezery, jak můžeš snadno vidět z toho kódu, co jsi poslal.
Indentace musí být jednotná, zkus nějaký jiný editor a taby nahraď jenom mezerama.

 
Nahoru Odpovědět 26. února 22:17
Avatar
Odpovídá na coells
Ondřej Jiří Beneš:

Myslíš jako že místo "větvení" dávám mezery?

Nedávám, zmáčknu ENTER a "odmezeruje" se mi to samo.

 
Nahoru Odpovědět 26. února 22:28
Avatar
coells
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
coells:

Myslím to, že tohle není validní kód v Pythonu.

a = input()
    print(a)

Mezery v rámci bloku musí být jednotné.
A je jedno, jestli ti to dělá editor, nebo sis to udělal sám, prostě používej lepší editor.

 
Nahoru Odpovědět 26. února 22:33
Avatar
Odpovídá na coells
Ondřej Jiří Beneš:

Dobře a můžeš mi nějaký doporučit?

 
Nahoru Odpovědět 26. února 22:35
Avatar
coells
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
coells:

PyCharm od JetBrains, bude tě hned upozorňovat na chyby v programu.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 26. února 22:38
Avatar
Ondřej Jiří Beneš:

Tak jsem zpět, myslel jsem nějaký free program.

 
Nahoru Odpovědět 27. února 1:42
Avatar
Ondřej Jiří Beneš:

Díky, já stahoval tu první.

Ještě mě napadla taková otázka, teď jsem zkoušel přímo tu věc, co mi nahoře nešla, v klasickým IDE od Python a na poprvé mi to vyšlo. Když jsem se rozhodl přepsat print, aby mi to něco vynásobilo tak to zase hodilo chybu. Furt je tedy chyba ve větvení?

 
Nahoru Odpovědět 27. února 2:22
Avatar
coells
Redaktor
Avatar
coells:
vol_geo_tva = '-'

while vol_geo_tva.lower():
    vol_geo_tva = input("S jakým geometrickým tvarem chceš provádět výpočty?\n(čtverec, obdelník)\n")

    if vol_geo_tva.lower() == "čtverec":
        vol_vel_ctv = input("Chceš vypočítat obvod nebo obsah?\n")

        if vol_vel_ctv.lower() == "obvod":
            vel_str_ctv_obv = float(input("Zadej velikost strany: "))
            print("Obvod je", 4 * vel_str_ctv_obv)

        elif vol_vel_ctv.lower() == "obsah":
            vel_str_ctv_obs = float(input("Zadej velikost strany: "))
            print("Obsah je", vel_str_ctv_obs * vel_str_ctv_obs)
 
Nahoru Odpovědět 27. února 2:35
Avatar
Ondřej Jiří Beneš:

Ten program je výborný, mockrát ti děkuji.

Jen pro zajímavost sem hodím zdrojový kód, který konečně funguje.

vol_geo_tva = input("S čím chceš provádět výpočty?\n(čtverec, obdelník)\n")

while vol_geo_tva.lower():
    if vol_geo_tva.lower() == "čtverec":
        vol_vel_ctv = input("Chceš vypočítat obvod nebo obsah?\n")
        if vol_vel_ctv.lower() == "obvod":
            zad_vel_str_ctv_obv = float(input("Zadej velikost strany: "))
            print("Obvod je",4*zad_vel_str_ctv_obv)
            input()
        elif vol_vel_ctv.lower() == "obsah":
            zad_vel_str_ctv_obs = float(input("Zadej velikost strany: "))
            print("Obsah je",zad_vel_str_ctv_obs*zad_vel_str_ctv_obs)
            input()
    elif vol_geo_tva.lower() == "obdelník":
        vol_vel_obd = input("Chceš vypočítat obvod nebo obsah?\n")
        if vol_vel_obd.lower() == "obvod":
            zad_prv_vel_str_obd_obv = float(input("Zadej první velikost strany: "))
            zad_dru_vel_str_obd_obv = float(input("Zadej druhou velikost strany: "))
            print("Obvod je",2*zad_prv_vel_str_obd_obv + 2*zad_dru_vel_str_obd_obv)
            input()
        elif vol_vel_obd.lower() == "obsah":
            zad_prv_vel_str_obd_obs = float(input("Zadej první velikost strany: "))
            zad_dru_vel_str_obd_obs = float(input("Zadej druhou velikost strany: "))
            print("Obsah je",zad_prv_vel_str_obd_obs*zad_dru_vel_str_obd_obs)
            input()
 
Nahoru Odpovědět 27. února 3:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.