NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Neznámá chyba „print“

Aktivity
Avatar
Neaktivní uživatel:26.2.2016 22:09

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.2.2016 22:09
Neaktivní uživatelský účet
Avatar
coells
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
coells:26.2.2016 22:17

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.2.2016 22:17
Avatar
Odpovídá na coells
Neaktivní uživatel:26.2.2016 22:28

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.2.2016 22:28
Neaktivní uživatelský účet
Avatar
coells
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
coells:26.2.2016 22:33

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.2.2016 22:33
Avatar
Odpovídá na coells
Neaktivní uživatel:26.2.2016 22:35

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

Nahoru Odpovědět
26.2.2016 22:35
Neaktivní uživatelský účet
Avatar
coells
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
coells:26.2.2016 22:38

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

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
26.2.2016 22:38
Avatar
Nahoru Odpovědět
26.2.2016 22:47
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:27.2.2016 1:42

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

Nahoru Odpovědět
27.2.2016 1:42
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:27.2.2016 2:22

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.2.2016 2:22
Neaktivní uživatelský účet
Avatar
coells
Tvůrce
Avatar
coells:27.2.2016 2:35
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.2.2016 2:35
Avatar
Neaktivní uživatel:27.2.2016 3:02

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.2.2016 3:02
Neaktivní uživatelský účet
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.