Ebben a mini programban hol a hiba? (python)
Ittvan a kód: [link]
Nemrég kezdtem el pythont tanulni, tudom hogy egy nagyon alap program, viszont nem sikerült megírnom. Valaki légyszives le tudná irni, hogy mi a hiba, és hogy hogyan tudom kijavítani?
Hogyan tudom megadni hogy csak szám lehessen?
Egy int(input) jó lesz?
a te szinteden egyelöre jó lesz így valahogy:
valasztott_ajto = int(input('Valaszd ki, ...'))
Az lesz vele a probléma, hogy ha a játékos nem számot ír be, akkor exceptiont fog dobni az int. Erre az a megoldás, hogy az int hívást körbeveszed egy try-except-el. Ha a játékos nem számot ír be, valószínüleg meg kéne próbálni újra beolvasni töle, ezért a try-except blockot még egy ciklussal is körbe kéne venni. Valahogy így:
szam_bekerve = False
while not jo_szam: # Addig fut a ciklus amig nem sikerült bekérni a számot
__try:
____szam = int(input('adj meg egy szamot'))
____szam_bekerve = True # ezen a ponton már megvan a szám, nincs szükség újra futtatni a ciklust
__except ValueError:
____print('Csak számot adhatsz meg!') # Ide akkor jutunk el, ha nem sikerült a koverzió. Mivel a 'szam_bekerve' még mindíg False, ezért a ciklus újra le fog futni.
Persze ezt a logikát valószínüleg több helyen is használni akarod majd, így érdemes lenne betenni egy függvénybe:
def get_number_from_player():
__while True:
____try:
______return int(input('Adj meg egy számot: '))
____except ValueError:
______print('Csak számot adhatsz meg')
Olvasd el a hibaüzenetet is, ne csak vaktában próbálkozz.
Traceback (most recent call last):
File "d:\Python\teszt\szellem.py", line 22, in <module>
print('A pontod: ' + int(pont))
TypeError: can only concatenate str (not "int") to str
A hiba ott van, hogy a kiírásnál a pontszám egy integer, viszont stringként tudod csak kiírni.
A másik, hogy a valasztott_ajto értékét felülírod 0-val, miután bekéred a számot. Nem tudom, hogy debug céllal van-e benne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!