Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Ondřej Jiří Beneš: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
Avatar
coells
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
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
Ondřej Jiří Beneš: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
Avatar
coells
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
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
Ondřej Jiří Beneš:26.2.2016 22:35

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

 
Nahoru Odpovědět 26.2.2016 22:35
Avatar
coells
Redaktor
Avatar
Odpovídá na Ondřej Jiří Beneš
coells:26.2.2016 22:38

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.2.2016 22:38
Avatar
Ondřej Jiří Beneš:27.2.2016 1:42

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

 
Nahoru Odpovědět 27.2.2016 1:42
Avatar
Ondřej Jiří Beneš: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
Avatar
coells
Redaktor
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
Ondřej Jiří Beneš: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
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.