Mikor születtem?

A mai alkalommal kiötöljük, hogy melyik évben született a kedves(?) felhasználó. Mondjuk elég primitíven fogjuk megcsinálni, de egyelőre jó lesz ez így. Cserébe viszont megismerkedünk az adattípus fogalmával, meg a típusosságéval, meg a típuskonverzióval.

A program:


név = input('Hogy híjják kendet? ')
kor = input('És hány éves kend? ') # itt még stringet kapunk
kor = int(kor) # átalakítjuk egész számmá, azaz int-té
születési_év = 2016 - kor
print(név, ', kend ', születési_év, '-ban született.', sep='')

Típusok

A fenti program legérdekesebb sora a harmadik. A benne lévő int függvény a kapott – azaz a zárójelben lévő – szöveget alakítja át egész számmá. Azért van szükség az átalakításra, mert ami az input-tól érkezik, az mindig szöveg (karakterlánc, magyarul: string) típusú adat. Ezek szerint a Python nyelvben legalább kétféle adat van:

  • szöveg, azaz karakterlánc, azaz string, amit a Python (is) str-nek rövidít
  • egész szám, azaz integer, amit a Python (is) int-nek rövidít

Típusátalakítás, azaz típuskonverzió

A Python nyelvben str-ből int-et az int() függvény készít. Az


szám = int('12')

utasítás a szövegként megadott – figyeld az idézőjeleket, ami abban van, az szöveg – tizenkettőt számmá alakítja.

Típusosság

A különféle programozási nyelvek nem egyformán háklisak a típusátalakításra – vannak erősen és gyengén típusos nyelvek.

Feladatok

A feladatokat most egy jellemző hibával kezdjük, amelyet nem a programírásban, hanem a tesztelésben szokás elkövetni:

Jellemző hiba: nem adtál meg bemeneti értéket

A nyomi Python:) Nem tudja átalakítani egész számmá a semmit… Na, majd megtanítjuk erre is, idővel.

F0004a: Bővítsük a fenti programot úgy, hogy jövőálló legyen: kérdezze meg a felhasználót, hogy melyik év van, és ezt vegye figyelembe, azaz ne mindig 2016-tal számoljon! (Megoldás itt.)

F0004b: A születési_év ismeretében írjuk ki, hogy várhatóan melyik évben érettségizik (érettségizett) a felhasználó. Az egyszerűség végett feltételezzük, hogy mindenki 18 évesen érettségizik. (Khmm..)

A megoldás (kattintással nyílik, de nem ér lesni, amíg meg nem oldottad a feladatot):


név = input('Hogy híjják kendet? ')
kor = input('És hány éves kend? ') # itt még stringet kapunk
kor = int(kor) # átalakítjuk egész számmá, azaz int-té
év = input('Melyik évben járunk? ')
év = int(év)
születési_év = év - kor
print(név, ', kend ', születési_év, '-ban született.', sep='')
érettségi_év = születési_év + 18
print(név, ', kend ', érettségi_év, '-ban érettségizik.', sep='') #hogyhogy Gizik?:)

F0004c: Írjunk egy teljesen új programot, amelyben a felhasználótól bekérünk két számot és kiírjuk a szorzatukat! A szorzásjel a csillag. (Megoldás itt.)

F0004d: Írj olyan programot, amelyik a felhasználótól megkérdi, hogy hány magyar mérföldre van a sárkány barlangja, és megmondja ezt kilométerben és tengeri mérföldben (mert ugye lehet, hogy hajózni is kell)! Az osztás jele a per (/). Feltételezheted, hogy a sárkány egész számú magyar mérföldre lakik. A tizedesvessző helyett tizedespontot kell használnod. (Megoldás itt.)

 

A múltkor megtanultuk, miként lehet adatok kérni a felhasználótól. Legközelebb megismerkedünk az elágazásokkal.

Advertisements

Mikor születtem?” bejegyzéshez ozzászólás

  1. Kedves raerek!

    Először s nagyon köszönöm az egész online kurzusodat! Nagyon jól követhető, tényleg kedvet kap az ember a tanuláshoz.

    Másodszor: szerintem ez javítandó a lecke közepe felé: “A Python nyelvben int-ből str-t az int() függvény készít.”

    És egy kérdés: A sep=” kifejezés később meg lesz valahol magyarázva? Már másodszor jön elő, sejtem is a funkcióját ( a space-eket tünteti el a nyomtatandó szövegből(?)), de hogy egészen pontosan mi ez, azt nem tudom.

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

    ronaldinhogaucho

    Kedvelés

    • Köszönöm, teljesen igazad van, és cseréltem is.
      Hú, a sep-et sehol nem mesélem el? No sebaj, akkor itt: szóval alapból a print a vesszővel elválasztott argumentumait szóközzel elválasztva írja ki:
      print(‘Tétova’, ‘teve’) -> Tétova teve
      Ha nem szóközzel akarjuk elválasztani, akkor azt a sep-ben kell megadni:
      print(‘Tétova’, ‘teve’, sep=’AAA’) -> TétovaAAAteve
      és ha a sep-nek a nagy semmit adjuk meg, akkor egymásra írja a dolgokat:
      print(‘Tétova’, ‘teve’, sep=”) -> Tétovateve

      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