Gondoltam egy számra

Ma olyan programot írunk, amiben a felhasználónak ki kell találnia, hogy a gép melyik számra “gondolt”. Jó régen használtunk már folyamatábrát, hát akkor épp itt az ideje. Hogy is kell mennie egy ilyen programnak?

P0005 folyamatábra - első változat

A számkitalálós program első változata

Olvassuk el együtt:

  • értékül adunk (emlékszel a := jelre? mondtam, hogy van, ahol ez a jele az értékadásnak – én így fogom használni a folyamatábrákban) egy számot annak a változónak, amelyikben a számítógép által “gondolt” szám lesz
  • kérünk tippet a felhasználótól, amit aztán
  • egésszé alakítunk
  • megnézzük, hogy a tipp megegyezik-e a “gondolt” számmal
  • HA (igen, ez egy fontos szó, azért írom naggyal) igen, akkor megdicsérjük a felhasználót
  • elbúcsúzunk

Na, akkor írjuk meg ezt a programot!

Alighanem feltűnt, hogy az eredeti folyamatábrához képest bővítettük a programot (ha nem tűnt fel, akkor vagy a videóra nem figyeltél, vagy a folyamatábrára):


gondolt_szám = 4
tipp = input('Szerinted melyik számra gondolok 1 és 5 között? ')
tipp = int(tipp)
if gondolt_szám == tipp: # a gondolt szám egyenlő a tippel?
    print('Eltaláltad!')
    print('Kis ügyes!')
else: #különben
    print('Ez most sajnos nem sikerült...')
    print('De majd legközelebb... talán... ha nagyobb szerencséd lesz...')
print('Pápá!')

A programban beszélünk egy if-ágról és egy else-ágról. Az if-ág az 5-6. az else-ág a 8-9. sor. Vagy az egyik, vagy a másik ág hajtódik végre, és most először van a programunknak olyan része, amelyik nem minden futáskor hajtódik végre.

Feladatok

F0005a: Rajzold meg a bővített program (amikor vígasztalgatjuk a felhasználót) folyamatábráját! Tényleg rajzold, ne csak elképzeld! (Megoldás itt.)

F0005b: írj  olyan programot, amelyik jelszót kér a felhasználótól! Ha a felhasználó tudja a jelszót, akkor “bemehet”, különben “hozzáférés megtagadva”. (Megoldáshoz kattints az expand source-ra)


jelszó = '(*Kk34=('
tipp = input('Mi a jelszó? ')
if tipp == jelszó:
    print('Bemehet.')
else:
    print('Hozzáférés megtagadva.')

F0005c: Írj ki két, változóban tárolt számot. Ha a felhasználó eltalálja az összegüket, dicsérd meg, ha nem, akkor szidd össze keményen. (Megoldás itt. A videót akkor is van értelme megnézni, ha simán ment a feladat, mert megtanuljuk, hogy miként lehet szövegeket “összeadni”, és így változókat átadni az input() függvénynek, továbbá először látjuk munkában az str() függvényt.)

F0005d: Írj olyan programot, amelyik a felhasználótól egy egész számot kér, és kiírja, hogy a szám természetes szám-e! (Természetes számok a pozitív egészek és a 0, megoldás itt.)

A múltkor megismerkedtünk két adattípussal. Legközelebb összetett feltételeket látunk.

Advertisements

Gondoltam egy számra” bejegyzéshez ozzászólás

  1. Az int() nem egész számból nem tud egyből egész számot csinálni? Kipróbáltam, hogy az alap példában 3.2-t adtam meg 1 és 5 közötti számnak, és azt gondoltam volna, hogy a tipp = int(tipp) parancs 3-at csinál belőle, de ehelyett hibát ír ki: ValueError: invalid literal for int() with base 10: ‘3.2’

    Lehet, hogy valamire nem figyeltem oda a korábbi leckékben…

    Köszönöm előre is a választ!

    Kedvelés

      • Értem. Az int() egész szám stringből egész szám számot csinál.vagy lebegőpontos számból egész számot. Köszönöm!
        Az érdekes még, hogy a float(‘3’) megy, viszont az int(‘3.0’) meg nem, tehát a float függvény képes arra, hogy szövegből egész számot, abból pedig lebegőpontos számot csináljon, az int függvény pedig nem ilyen “ügyes”.

        Kedvelés

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s