Portál AbcLinuxu, 23. říjen 2017 08:26

Dotaz: Python fce input() a /n

TomasABC32 avatar 7.6. 10:37 TomasABC32 | skóre: 25 | blog: LinuxGangster
Python fce input() a /n
Přečteno: 419×
Odpovědět | Admin
Zdravim, jak mam v Pythonu nastavit input() abych si mohl vybrat jednu z možností ? V tuhle chvíli mi to funguje tak, že se mi sice řádky naskládají pod sebe, ale ať zadám jakékoliv číslo, program dál nepokračuje a neprovede se nic. Děkuji.
    g=input('Nasobit [1]:\n Scitat [2]:\n  Delit [3]:\n')
Linux forever ! Asi jinej gang.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.6. 12:41 pet I. | skóre: 5
Rozbalit Rozbalit vše Re: Python fce input() a /n
Odpovědět | | Sbalit | Link | Blokovat | Admin
Po zadání čísla stiskni [Enter] ;-)
TomasABC32 avatar 7.6. 12:44 TomasABC32 | skóre: 25 | blog: LinuxGangster
Rozbalit Rozbalit vše Re: Python fce input() a /n
no to právě nejde... :/. Celé je to takto:

import sys

def scitani(x,y):
        m=x+y
        print('Vysledne cislo je: %d'%m)
        sys.exit()

        
def nasobeni(x,y):
        m=x*y
        print('Vysledne cislo je: %d'%m)
        sys.exit()
        
def deleni(x,y):
        m=x*y
        print('Vysledne cislo je: %d'%m)
        sys.exit()


a=input('zadej A:')
b=input('Zadej B:')

if a and b is not None:
    try:
        a=int(a)
        b=int(b)
        print('Cisla jsou zadana... good')
        print("co chces delat ?\n")
        g=input('Nasobit [1]:\n Scitat [2]:\n  Delit [3]:\n')
        
    except ValueError as err:
        print("Byl zadan retezec!!! Koncim program ...")
        sys.exit()
else:
    sys.exit()
    
if g is 1:
    nasobeni(a, b)
elif g is 2: 
    scitani(a, b)
elif g is 2: 
    deleni (a, b)
Linux forever ! Asi jinej gang.
7.6. 13:02 ttt
Rozbalit Rozbalit vše Re: Python fce input() a /n
Program se provede, ale nic neudělá, protože žádná níž není splněná. Zjisti si, jak se liší == a is.
print(g) # 1
print(g is 1) # False
TomasABC32 avatar 7.6. 13:26 TomasABC32 | skóre: 25 | blog: LinuxGangster
Rozbalit Rozbalit vše Re: Python fce input() a /n
aha, tak to uz jsem opravil, ale stejně to nejde :(
if g == 1:
    nasobeni(a, b)
elif g == 2:
    scitani(a, b)
elif g == 3:
    deleni(a, b)
Linux forever ! Asi jinej gang.
7.6. 13:44 pb
Rozbalit Rozbalit vše Re: Python fce input() a /n
input čeká vstup z klávesnice, a na klávesnici se zadává text, tudíž to, co vrátí input musí být text. Takže porovnání s číslem ne:
    if g == 1:
ale porovnání s řetězcem ano:
    if g == "1":
TomasABC32 avatar 7.6. 14:06 TomasABC32 | skóre: 25 | blog: LinuxGangster
Rozbalit Rozbalit vše Re: Python fce input() a /n
díky pb, to pomohlo. Tahle drobnost mě vůbec nenapadla, ale ano, teď už to běží :D
Linux forever ! Asi jinej gang.
7.6. 14:00 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: Python fce input() a /n
aha, tak to uz jsem opravil, ale stejně to nejde :(

Tak tam asi niekde bude bug ;-)

Nejakú chybovú hlášku to povie?
7.6. 15:19 Zer0
Rozbalit Rozbalit vše Re: Python fce input() a /n
if int(g) == 1:
8.6. 08:18 pb
Rozbalit Rozbalit vše Re: Python fce input() a /n
Tohle samozřejmně jde, ale co když člověk napíše jako vstup:

jedna

TomasABC32 avatar 8.6. 08:30 TomasABC32 | skóre: 25 | blog: LinuxGangster
Rozbalit Rozbalit vše Re: Python fce input() a /n
jak vstup 1 ? Jako integer ?
Linux forever ! Asi jinej gang.
pVit avatar 8.6. 08:35 pVit | skóre: 10
Rozbalit Rozbalit vše Re: Python fce input() a /n
Ve škole ti taky dávají příklad v podobě dvacet + třitisícepětsetosmdesátjednacelýchdva?
Kam čert nemůže, tam nainstaluje linux.
8.6. 14:02 pb
Rozbalit Rozbalit vše Re: Python fce input() a /n
To ani ne, ale očekávají, že když mi takový příklad dají, tak z toho neumřu.
8.6. 09:23 zer0
Rozbalit Rozbalit vše Re: Python fce input() a /n
tabulka = {"jedna":1, "dva":2, "tri":3}

try:
    if int(g) == 1:
        ...
except ValueError:
    if g.lower() in tabulka.keys():
        g = tabulka[g.lower()]
    else:
        print('nerozumiem')
Možno niečo takéto?
TomasABC32 avatar 8.6. 10:20 TomasABC32 | skóre: 25 | blog: LinuxGangster
Rozbalit Rozbalit vše Re: Python fce input() a /n
zkusim, tohle by to mohlo ošetřit.
Linux forever ! Asi jinej gang.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.