Python - jak na možnost volby

Python - jak na možnost volby
« kdy: 05. 09. 2019, 12:34:19 »
Zdravím, před pár dny jsem se začal učit svépomocí programátorský jazyk python. Postupuji dle tohoto kurzu:
https://naucse.python.cz/course/pyladies/  , nyní si vylepšuji svůj program pro výpočet obvodu/obsahu čtverce a kruhu.

Má představa je taková aby uživatel, který program měl zadat:
1) o jaký tvar se bude jednat - 1. čtverec , či 2. kruh
2) vybral zda bude chtít počítat - 1. obvod , či 2. obsah
3) zadal rozměr strany, či poloměru
4) program napsal výsledek.

-

Můj problém ale nastává v tom, že nevím jak udělat to aby měl uživatel programu možnost volby. Z kurzu jsem pochytil, že k tomuto se používají funkce input a if, ale bohužel nevím jak tyto funkce používat, pokud chci udělat více rozhodnutí v daném programu.

zde je můj nynější program, který počítá kruh i čtverec zároveň:
Kód: [Vybrat]
#TENTO PROGRAM POČÍTÁ OBVOD A OBSAH ČTVERCE

strana = float(input("zadej stranu čtverce: "))  # V CENTIMETRECH
print('Obvod čtverce se stranou', strana, 'je', 4 * strana, 'cm')
print('Obsah čtverce se stranou', strana, 'je', strana * strana, 'cm2')


print("*" * 90)


# TENTO PROGRAM POČÍTÁ OBVOD A OBVSAH KRUHU

poloměr = (float(input("zadej poloměr kruhu: ")))  # V CENTIMETRECH
print("obvod kruhu s poloměrem", poloměr, "cm, je", 2 * 3.14 * poloměr, "cm")
print("obsah kruhu je s poloměrem", poloměr, "cm, je", poloměr * 3.14, "cm2")

více screenshot.

Může mi někdo prosím vysvětlit jak funkce input, if atd. správně používat? Děkuji


Re:Python - jak na možnost volby
« Odpověď #1 kdy: 05. 09. 2019, 13:05:19 »
Edit.:
zkusil jsem tento prográmek co nejvíce zjednodušit takto:
Kód: [Vybrat]
volba = float(input("chceš počítat 1, nebo 2 - ?"))
if volba == "1" :
    strana = 123  # V CENTIMETRECH
    print('Obvod čtverce se stranou', strana, 'je', 4 * strana, 'cm')
    print('Obsah čtverce se stranou', strana, 'je', strana * strana, 'cm2')

if volba == "2" :
    poloměr = 123  # V CENTIMETRECH
    print("obvod kruhu s poloměrem", poloměr, "cm, je", 2 * 3.14 * poloměr, "cm")
    print("obsah kruhu je s poloměrem", poloměr, "cm, je", poloměr * 3.14, "cm2")

, bohužel python sice dá na výběr zda chci volbu 1, či 2 - ale po zadání "1", či "2" se nic nestane a program se ukončí.

Re:Python - jak na možnost volby
« Odpověď #2 kdy: 05. 09. 2019, 13:23:57 »

Kód: [Vybrat]
volba = input("neco")
teď bude v volba ten text, který uživatel zadal.


Kód: [Vybrat]
volba = float(input("neco"))
teď bude ve volba to, co uživatel zadal převedený na desetinné číslo. Pokud to převést nejde, tak
to hodí chybu. Takže uděláte jen:

Kód: [Vybrat]
volba = input("neco")
if "1" == volba:
    print("Huuuu buuuuu")

ostatně prskněte si tam ještě výpis:
Kód: [Vybrat]
volba = input("neco")
print(volba, volba == "1", volba == 1, volba == 1.0, type(volba))
if "1" == volba:
    print("Huuuu buuuuu")



Re:Python - jak na možnost volby
« Odpověď #3 kdy: 05. 09. 2019, 14:39:38 »
Mockrát děkuji volba už funguje.
Kód: [Vybrat]
#TENTO PROGRAM POČÍTÁ OBVOD A OBSAH ČTVERCE
volba = input ("chceš počítat čtverec zadej [1], nebo kruh zadej [2] ?")
if "1" == volba :
    strana = float(input("zadej stranu čtverce: "))  # V CENTIMETRECH
    print('Obvod čtverce se stranou', strana, 'je', 4 * strana, 'cm')
    print('Obsah čtverce se stranou', strana, 'je', strana * strana, 'cm2')
#TENTO PROGRAM POČÍTÁ OBVOD A OBSAH KRUHU
if "2" == volba :
    poloměr = float(input("zadej poloměr kruhu: "))  # V CENTIMETRECH
    print("obvod kruhu s poloměrem", poloměr, "cm, je", 2 * 3.14 * poloměr, "cm")
    print("obsah kruhu je s poloměrem", poloměr, "cm, je", poloměr * 3.14, "cm2")

Prosím existuje nějaká literatura, či internetový kurz vhodný pro začátečníky (takhle jednoduše vysvětleno), kde se dá toto vše nastudovat?

robac

  • ***
  • 197
    • Zobrazit profil
    • E-mail
Re:Python - jak na možnost volby
« Odpověď #4 kdy: 05. 09. 2019, 16:04:36 »
Prosím existuje nějaká literatura, či internetový kurz vhodný pro začátečníky (takhle jednoduše vysvětleno), kde se dá toto vše nastudovat?
Zkuste, jestli Vám bude vyhovovat https://knihy.nic.cz , "PONOŘME SE DO PYTHON(U) 3", MARK PILGRIM.


tecka

  • ***
  • 138
    • Zobrazit profil
    • E-mail
Re:Python - jak na možnost volby
« Odpověď #5 kdy: 05. 09. 2019, 23:08:03 »
Citace
kde se dá toto vše nastudovat
I v tom tvém kurzu se píše, že text není číslo a podmínky jsou hned v další kapitole, kde je ten rozdíl vidět.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Python - jak na možnost volby
« Odpověď #6 kdy: 06. 09. 2019, 03:50:43 »
zkusil jsem tento prográmek co nejvíce zjednodušit takto:

Prosím existuje nějaká literatura, či internetový kurz vhodný pro začátečníky (takhle jednoduše vysvětleno), kde se dá toto vše nastudovat?

Jdeš na to dobře. Tyhle věci se musíš naučit, prostě prošlapat. Uvažuješ správným způsobem. To dáš. Chce to hodně zkoušet, hodně si hrát. A když se zasekneš tak se ptát na libovolném python fóru. A on i ten zásek tě naučí :-)

Pokračuj v tom kurzu. Držím palce.

Re:Python - jak na možnost volby
« Odpověď #7 kdy: 06. 09. 2019, 15:33:05 »
Děkuji moc za podporu. Snažím se postupovat vždy podle kurzu a když se něco nového naučím tak se to snažím vyzkoušet ihned na nějakém svým programu a postupovat dle svých poznámek. Programování mě baví hlavně v tom že mám pocit, že konečně na počítači i něco vytvářím než jen konzumuji obsah  :D

Občas se ale zaseknu a nevím kde je chyba. Například v tomto případě. Python nehlásil žádný problém, ale program nefungoval. Po čase jsem si všiml, že jsem měl špatně nastavenou volbu a proto prográmek padal.

Re:Python - jak na možnost volby
« Odpověď #8 kdy: 06. 09. 2019, 19:20:59 »
Ono celkem obecně platí, že když má uživatel něco zadat, tady konkrétně:
volba = input("chceš počítat 1, nebo 2 - ?")
buď 1 nebo 2 a on zadá něco jiného, tak je vhodné na to reagovat - jak pro uživatele, aby věděl, co zvojtil, tak i pro programátora, vypsat něco jako:
print ('hele, měl jsi zadat 1 nebo 2 a místo to jsi zadal ',volba)
Uživatelé jsou velmi kreativní, pokud jde o to, co zdají, bez ohledu na pokyny. A sebevětší blbost program nesmí rozhodit  (tedy, programátor se nesmí nechat překvapit).

Re:Python - jak na možnost volby
« Odpověď #9 kdy: 06. 09. 2019, 22:27:36 »
Přidám mých pár poznatků, jakožto začínajícího pythonaře:

Vždycky se snažte ify psát jako if, elif a nakonec else, když se do ničeho nevejdete. Člověku mnohdy pomůže, když vidí že vyjímky/smyčky sice proběhly, ale člověk se do nich nevlezl jak má. Pak víte kam koukat.

Minimálně při konstrukci programu si dělejte print každého kroku. Např:

Kód: [Vybrat]
var = 5
print("Zacinam smycku")
if var == 1:
  print("hodnota je rovna 1)
elif var == 2:
  print("hodnota je rovna 2)
else:
  print("Ani jedno neplati")

print ("pokracuji dal")

Vidíte kde jste skončil a do jaké části kódu koukat.

Po každém inputu si vždycky vypište jednak co uživatel zadal, tak i datový typ. Kolkrát já už násobil stringy :)


Hodně štěstí při dalším bádání.