Ügyességi játékok programozása
Pythonnal és Pygame-mel

Chapter 1: Hagyományos számológép használata

(Szia! Ha még nem telepítetted volna föl a gépedre a Pythont és a Pygamet, akkor ugorj ide, az "előszó" részhez, hogy letöltsd és telepítsd, és készen állj a kezdésre.

1.1 Bevezetés

fig.trajectory

Az egyik legegyszerűbb dolog, amire a Python használható, az a csinos kis számológép funkciója. Várjunk csak, a számológép nem is játék. Mégis miért beszélünk róla? Uncsi...

Nos, ahhoz, hogy kiszámoljuk a tárgyak esését, a lövedék röppályáját, és a legjobb pontszámokat, ahhoz számológép kell. Plussz, bármely igazi kocka úgy tekint a számológépre, mint egy játékra. Inkább, mint egy kínzóeszközre. Szóval, kezdjük el a tanulást a számológéppel. Ne aggódj, a grafikát már az ötödik fejezetnél tárgyaljuk.

Egy egyszerű számológép program már használható arra, hogy a felhasználó infót kapjon unalmas dolgokról, mint amilyen az ingatlanhitel utalása, vagy mondjuk izgalmasabb dolgokról, mint például a röppályája egy sárgolyónak.

Ahogyan azt az első példa mutatja, mozgási energiát fogunk számolni, valami olyasmit, ami majd kell nekünk is a játék fizikai motorjába.

fig.kinetic_energy
Figure 1.1: Python használata mozgási energia kiszámolásához

A legjobb dolog a programozásban, hogy a bonyolultságot el tudjuk rejteni egy egyenletbe. A többi felhasználónak csak a szükséges információt kell megadni, és már meg is kapta a szükséges eredményt egy könnyen érthető formában. Bármilyen egyszerű, hagyományos számológép el tud futni egy okostelefonon, ami lehetőséget ad a felhasználónak, hogy bármikor elővegye, és számoljon.

1.2 Megjelenítés

1.2.1 Szöveg kiírása

Hogyan ír ki a programunk bármit is a képernyőre?

print("Hello World.")
fig.printing_calculator

Ez a program kiírja a képernyőre a "Hello World"("Helló Világ!") szöveget. Rajta, és írjuk be az IDLE készenléti jel(prompt) után! Lássuk, hogyan működik! Próbálj kiírni más szöveget és karaktereket is! A számítógép boldogan kiír bármit, amit szeretnél, akár igaz, akár nem.

Hogyan néz ki a "Hello World" program más számítógépes nyelveken? Nézzük meg a Wikipediában. Elég szép mennyiségű "Hello World" programot gyűjtöttek össze más nyelveken:
http://en.wikipedia.org/wiki/Hello_world_program_examples

Érdekes látni, hogy mennyi különböző nyelv létezik. Képet lehet alkotni arról, hogy milyen összetett egy másik nyelv, a "Hello World" programja alapján.

Videó: A print függvény

Emlékeztetőül: a Pythonban a képernyőre kiíratás könnyű, csak használd ezt a parancsot: print. A print parancs után tegyél zárójelet ( ). A zárójelbe írd bele, mit szeretnél viszontlátni a képernyőn. A zárójel használata az információ átadásra alapvető gyakorlat a matematikában és a számítógépes nyelvekben.

A matek hallgatók úgy tanulják, hogy a zárójelbe egy kifejezés értékadását tüntetjük fel. Például,$sin(\theta)=cos(\frac{\pi}{2}-\theta)$. $sin$ és $cos$ függvények. Az adat a zárójeleken belülről jut el a függvényekhez. Ami a mi esetünkben másabb, az az, hogy mi szöveget íratunk ki.

Jegyezzük meg, hogy idézőjel van a szöveg elején és végén. Ha idézőjelbe tesszük, akkor a számítógép úgy jeleníti meg az adatot, ahogy leírtuk. Például, ez a program azt írja ki, hogy 2+3:

print("2 + 3")

1.2.2 Kifejezések eredményeinek kiíratása

A következő programban nincs idézőjel a $2+3$ kifejezés körül, és így a számítógép össze fogja adni, matematikai kifejezésként. Szóval 5-t fog kiírni és nem 2+3-t.

print(2 + 3)

Az alább látható kód viszont egy hibaüzenetet fog generálni, mivel a számítógép megpróbálja matematikai kifejezésként értelmezni a "Hello World" -t, és így nem igazán működik:

print(Hello World)

A fenti kód hatására egy hibaüzenetet kapunk. SyntaxError: invalid syntax, ami a számítógép nyelvén azt jelenti, hogy nem ismeri a "Hello" és a "World" jelentését.

Mostantól tartsd észben, hogy ez egy aposztrófjel (egyszeres-idézőjel): ', ez pedig egy idézőjel: ". Amikor dupla-idézőjelet kérnek, olyankor gyakori hiba, hogy ezt írják "", ami egy dupla dupla-idézőjel. (az angolban - a ford.)

1.2.3 Több elem kiírása

A print paranccsal több dolgot is kiírathatunk egyszerre, minden egyes elemet vesszővel választunk el. Például, az alábbi kód eredménye ez lesz: Your new score is 1040

print("Your new score is", 1030 + 10)

A következő egysoros kód eredménye ez lesz: Your new score is 1030+10. A számokat nem adja össze, mivel azok az idézőjel közt vannak. Bármi, ami idézőjelek közt van, a számítógép szövegnek értelmez. Bármi, ami azon kívül, az a számítógépnek egy matematikai művelet, vagy számítógépes kód.

print("Your new score is", "1030 + 10")
A vessző az idézőjelen belülre vagy kívülre kerüljön?

A következő példa nem működik rendesen. Ez azért van, mivel a vessző nem különíti el a két kifejezést. Ez pedig azért van, mert a vessző az idézőjelen belülre került. Ha vesszővel akarjuk elválasztani a megjeleníteni kívánt elemeket, akkor azt az idézőjelen kívülre kell írnunk. Ha a programozó a vessző ki akarja íratni, akkor persze az idézőjelen belülre írjuk:

print("Your new score is," 1030 + 10)

Ez a példa már működik, mivel a vessző a kifejezéseket különíti el. Az eredmény:
Your new score is, 1040
Megjegyzem, hogy csak egy vessző lett kiírva. Tehát a vesszők az idézőjelen kívül elkülönítik a kifejezéseket, míg azon belül kiíratásra kerülnek. Az első vessző meg lett jelenítve, a másodikkal elkülönítettük a kifejezéseket.

print("Your new score is,", 1030 + 10)

1.3 Escape kódok(Escape Codes)

Ha az idézőjel arra való, hogy megmondja a számítógépnek, hogy hol kezdődik és végződik egy szöveg, amit meg akarok jeleníteni, akkor hogyan fogja kinyomtatni a program az idézőjelet? Például:

print("I want to print a double quote " for some reason.")

Ez a kód nem működik. A számítógép a szöveg közepén lévő idézőjelet a szöveg befejezésének veszi. Azután nem sok ötlete van arra nézve, hogy mit kezdjen a for some reason paranccsal, és az idézőjellel a végén. Sikerült összezavarni a számítógépet.

Fontos elmondani a számítógépnek, hogy mi a középső idézőjelet szövegként akarjuk megjeleníteni, és nem befejezéseként az előző idézőjelnek. Ez egyszerű, csak tegyél egy fordított perjelet az idézőjel elé, és a számítógép így megérti, hogy ez a szöveg része, és nem egy karakter ami megszakítja a szöveget. Például:

print("I want to print a double quote \" for some reason.")
fig.escape_codes

Ez a kombinációja két kódnak: \", ezt nevezik kikerülő kódnak. Majdnem minden nyelvben léteznek ilyenek. De, mivel a fordított perjel egy escape kód, ezért a perjel nem lesz megjelenítve. Például ez a kód sem működik:

print("The file is stored in C:\new folder")

Miért? Mivel a \n is egy escape kód. Ahhoz, hogy kiírathassuk a perjelet, meg kell kerülnünk, valahogy így:

print("The file is stored in C:\\new folder")

Van még egy pár fontos escape kód, amit érdemes ismerni. Itt van egy táblázat a fontosabb kódokról:

Escape kódLeírás
\'Aposztróf, egyszeres idézőjel
\"idézőjel
\tTabulátor
\rCR: Carriage Return (kocsi visszatérése, balra/sor elejére mozgatás)
\nLF: Linefeed (sornövelés, lefelé mozgatás)

Mi az a “Carriage Return” (kocsivisszatérés) és “Linefeed”(sornövelés)? Próbáld ki ezt a példát:

print("This\nis\nmy\nsample.")

A parancs kimenete:

This
is
my
sample.

A \n egy sornövelés. El fogja mozgatni a "kurzort" egy sorral lejjebb a nyomtatáshoz képest. A számítógép minden szöveget egy hatalmas, hosszú vonalban tárolja. Onnan tudja, hogy hol vannak a sorok, hogy felismeri a \n karaktert.

Hogy bonyolultabb legyen, a különböző operációs rendszereknek különböző standardjai vannak azt meghatározni, hogy a sor hol ér véget.

Escape kódokLeírás
\r\nCR+LF: Microsoft Windows
\nLF: UNIX alapú rendszerek, és újabb Mac.
\rCR: Régebbi Mac alapú rendszerek

Általában a szövegszerkesztő odafigyel erre helyetted. A MS notepad nem igazán mondjuk, és ha UNIX fájlt nyitunk meg notepadban, akkor borzalmasan néz ki, mivel a sorok vége nem látszik, vagy fekete dobozok láthatók ott.

1.4 Megjegyzések, kommentálás

A kommentálás fontos (mégha a számítógép nem is foglalkozik vele)

Néha a kód némi magyarázatra szorul, ha valaki más olvassa. Ezért adunk "kommentelést" a kódhoz. A megjegyzések az embereknek készülnek, nem a gépnek.

Kétféleképpen hozhatunk létre kommentet. Az egyik, hogy a # szimbólumot használjuk. A gép átugrik minden szöveget, ami a kettőskereszt után található. Például:

# This is a comment, it begins with a # sign
# and the computer will ignore it.

print("This is not a comment, the computer will")
print("run this and print it out.")

A kettőskereszt jel idézőjelek közt persze nem minősül kommentnek. Ha egy sor kódot nem akarunk figyelembe venni, akkor egész egyszerűen a sor elejére írjuk a kettőskeresztet. Lehetséges a sor végére tenni a kommentunket.

print("A # sign between quotes is not a comment.")

# print("This is a comment, even if it is computer code.")

print("Hi") # This is an end-of-line comment

Lehetséges továbbá több sornyi kódot is kommentelni, ehhez három aposztrófot kell egymás után beírnunk. delimit.

print("Hi")
'''
This is
a
multi
line
comment. Nothing
Will run in between these quotes.
print("There")
'''
print("Done")

A legtöbb profi Python programozó ezt a többsoros kommentelést fogja előnyben részesíteni, valami olyasmiért, amit úgy neveznek, hogy docstrings(szövegfüzér) A docstring megengedi, hogy a kód mellé írjuk a megjegyzéseinket, dokumentációnkat, és később akár automatikusan kinyomtathatjuk dokumentumba, weboldalra, vagy IDE-be. Az általános kommenteléshez a kettőskereszt a legjobb.

Mégha te is vagy az egyetlen, aki olvashatja a kódot, akkor is írj kommentet, hogy időt takaríthass meg később. Olyan kommenteket írni, mint "földönkívűliek bombájának a kezelése" segít később gyorsan emlékezni arra, hogy az a kódrész mire vonatkozik.

1.5 Értékadás műveletek

Videó: Az értékadás művelet

Hogyan tároljuk a pontszámokat a játékunkban? Vagy hogyan követjük nyomon az ellenség életerejét? Ami ehhez kell, az egy értékadás műveletek. (Ez egy olyanművelet, ami szimbólumokat tárol, mint pl. + vagy - ) Ez aztán eltárol egy értéket egy változóban, amit később használhatunk. Az alábbi kód például az x változóra a 10-t vonatkoztatja, és kiírja az eltárolt értéket.

Lásd a lenti példát. Click on the “Step” button to see how the code operates.

# Create a variable x
# Store the value 10 into it.
x = 10

# This prints the value stored in x.
print(x)

# This prints the letter x, but not the value in x
print("x")

# This prints "x= 10"
print("x=",x)
Variables:
x=
Output:
10
x
x= 10
Változók amik kívül kerülnek az idézőjelen:

Megjegyzés:A listázás fentebb bemutatta a különbséget aközött, amikor x idézőjelen belül van, és amikor x idézőjelen kívül van. Ha az x az idézőjelen belül van, akkor a számítógép azt írja ki, hogy x. Ha az x az idézőjelen kívül van, akkor a számítőgép az x értékét írja ki. Azok közt, akik először tanulnak programozást gyakori, hogy zavaró ez az idézőjelen kívül és idézőjelen belül dolog.

fig.pi

Egy értékadás művelet (olyan kódsor, ami használja az = műveletet.) különbözik az algebrai egyenlőségtől, amit matekból tanultál. Ne mosd össze a kettőt. Az értékadás műveletnél a bal oldalon csak egy változó lehet, semmi más.

A bal oldalán az egyenletnek műveleti jel/értékadás művelet lehet, ami egy kifejezés. Egy kifejezés bármi, ami egy értéket ad vissza értékadás által. Lásd az alábbi kódot.

x = x + 1

A fenti kód nyilván nem lehet algebrai egyenlet. De ez érvényes a számítógép számára, mivel ez egy értékadó állítás. A matematikai egyenletek különböznek az értékadó műveletektől, mégha van is bennük változó, szám, vagy egyenlőség jel.

A fenti kifejezés esetében a kód az x jelenlegi értékét adja meg, egyet hozzáad, és eltárolja az eredményt az x-ben.

A példánkat kiterjesztbe, a kifejezés lent kiírja a hatos számot.

x = 5
x = x + 1
print(x)

Részenként futnak az értékadások. A számítógép nem néz a jövőbe. A lenti kódban, a számítógép kiírja az 5-t a második sorban, és aztán a negyedik sorban kiírja a 6-t. Azért, mert a második sorban a kód, ami egyet adna az x-hez, még nem futott le.

x = 5
print(x) # Prints 5
x = x + 1
print(x) # Prints 6

A következő értékadás érvényes és futni is fog, de értelmetlen. A gép adni fog egyet x-hez, de se ki nem írja, se el nem tárolja.

x + 1

Az alábbi kód 5-t fog kiírni, és nem 6-t, mivel a programozó elfelejtette eltárolni azx + 1 eredményét az x változóban.

x = 5
x + 1
print(x)

Az állítás alább nem érvényes, mivel a bal oldal többet tartalmaz egy darab változónál.

x + 1 = x

A Pythonban van más típusú értékadási művelet is. Ezek lehetővé teszik, hogy a programozó könnyedén változtassa meg a változó értékét. Például:

x += 1

A fenti értékadás egyenlő az alábbival:

x = x + 1

Vannak még értékadó műveletek összeadáshoz, kivonáshoz, szorzáshoz, és osztáshoz.

1.6 Változók

A változók kisbetűvel kezdődnek:

A változóknak kisbetűvel kellene kezdődniük. A változók kezdődhetnek nagybetűvel, vagy aláhúzással, de ezek speciális esetek, és nem történhetnek meg normál esetekben. Az első kisbetű után a változó tartalmazhat nagybetűt, kisbetűt, számot, aláhúzást. A változók nem tartalmazhatnak space karaktert.

A változók betűtípusra érzékenyek. Ez összezavarhatja a programozót, aki nem készül erre fel. A lenti példában az eredmény 6 lesz és nem 5, mivel két különböző változót használunk, a x-t és a X-t.

x = 6
X = 5
print(x)

A hivatalos Python stílus kézikönyv (igen, a programozók tényleg írtak egy könyvet a stílusról) azt mondja, hogy a többszavas változónevek a Pythonban el kellene legyenek választva, aláhúzással. Például használjuk a hair_style és ne a hairStyle alakot. Személy szerint, ha te az én tanítványom vagy, akkor tudnod kell, hogy engem nem érdekel különösebben ez a szabály, mivel a következő nyelv, amit a Python után tanítunk, az a Java, és ott pont fordítva van. Megpróbáltam a Java stílusú szabályokat tanítani ezen a kurzuson, de akkor gyűlölködő leveleket kaptam a Python szerelmeseitől. Ezek az emberek meglátogatták a weboldalamat, és sokkot kaptak, sokkot kaptak, mondom, a szegényes stílusom miatt.

Joan Rivers-nek semmi köze ezekhez az emberekhez, szóval feladtam és megpróbáltam a helyes stílust követni immár.

Itt van néhány példának, hogy mi elfogadható és mi nem változónévként:

Elfogadható változónév Nem elfogadható változónév Elfogadható, de nem helyes
first_name first name FirstName
distance 9ds firstName
ds9 %correct X

Minden nagybetűs változónév, mint amilyen a MAX_SPEED megengedett, de csak akkor, ha a körülmények miatt a változó sosem változtatja meg az értékét. Azt a változót, ami nem változtatja meg az értékét állandónak/konstansnak hívjuk.

1.7 Műveletek

A bonyolultabb matematikai műveletekhez, a mindennapi matematikai műveletek elérhetők. Köztük néhány nem túl gyakorival:

műveleti jel művelet példa egyenlet példa kód
+ összeadás $3 + 2$ a = 3 + 2
- kivonás $3 - 2$ a = 3 - 2
* szorzás $3 \cdot 2$ a = 3 * 2
/ osztás $\frac{10}{2}$ a = 10 / 2
// egész osztás N/A a = 10 // 3
** hatványozás $2^3$ a = 2 ** 3
% modulus/törtrész N/A a = 8 % 3
Videó: Műveletek

Az egész osztás mindig lefelé fogja kerekíteni az eredményt, a legközelebbi egész felé. Például a 11//2 egyenlő lesz 5-tel, és nem 5.5-tel, és 99//100 egyenlő 0.

Szorzás művelet műveleti jel nélkül nem működik a Python alatt. A következő két sornyi kód nem működik:

# This does not work
x = 5y
x = 5(3/2)

A szorzás műveleti jelét muszáj használni ezekben a sorokban, ha azt akarjuk, hogy működjenek:

# This does work
x = 5 * y
x = 5 * (3 / 2)

1.7.1 Műveletek elválasztása

Bármennyi space lehet a műveleti jelünk előtt és után, és a számítógép még akkor is meg fogja érteni. Például az alábbi 3 sor teljesen egyenértékű.

x=5*(3/2)
x = 5 * ( 3 / 2 )
x      =5     *(    3/   2)

A hivatalos Python stílus kézikönyv azt mondja, hogy lennie kell egy space-nek az operátor előtt és után is. (Majd meghaltatok, hogy megtudjátok, igaz? Oké, a hivatalos stílus kézikönyvnek az elérhetősége itt van: PEP-8.) A három fenti kód közül a legstílusosabb a második.

1.8 Műveletek sorrendje

A Python a kifejezéseknek úgy ad értéket, hogy követi a műveleti sorrendet, ahogyan azt egy alap matematikai kifejezésnél is találjuk. Például ez az egyenlet nem korrekt módon számolja ki az átlagot:

average = 90 + 86 + 71 + 100 + 98 / 5


Az első művelet, amit végrehajt az a 98/5. És így számol:

$90+86+71+100+\frac{98}{5}$
ahelyett, hogy a vágyott eredményt adná:

$\dfrac{90+86+71+100+98}{5}$

Zárójel használatával a probléma orvosolható:
average = (90 + 86 + 71 + 100 + 98) / 5

1.9 Trigonometrikus függvények

A trigonometrikus függvényeket arra használják, hogy velük szinuszt és koszinuszt számoljanak. Alapértelmezett állapotban a Python nem tudja a sin/cos függvényeket számolni, de ha a helyes könyvtárat importáljuk neki, akkor már igen. Az egységek radiánban lesznek megadva.

# Import the math library
# This line is done only once, and at the very top
# of the program.
from math import *

# Calculate x using sine and cosine
x = sin(0) + cos(0)

1.10 Szokványos egyenletek kiszámítása

Egy Python program kiszámolhatja fogyasztását egy autónak, ami 294 mérföldet tesz meg, 10.5 gallon gázolajjal.

m = 294 / 10.5
print(m)

Ez a program kicsit fejleszthető változók használatával. Ez lehetővé teszi, hogy az értékeket könnyedén megváltoztathassuk a kódban, anélkül, hogy az egyenlethez nyúlnánk.

m = 294
g = 10.5
m2 = m / g # This uses variables instead
print(m2)
A jó változó nevek fontosak.

Magától ezt a programot megérteni nehézkes.Az m és g változók nem jelentenek túl sokat önmagukban. A program megcsinálható úgy is, hogy könnyen érthető legyen a működése a változók alapján:

milesDriven = 294
gallonsUsed = 10.5
mpg = milesDriven / gallonsUsed
print(mpg)

Most már, ha egy nem-programozó ránéz a kódra, neki is lesz ötlete, hogy mit csinálhat a program. Egy másik példa a jó és a rossz változó elnevezésre:

# Hard to understand
ir = 0.12
b = 12123.34
i = ir * b

# Easy to understand
interestRate = 0.12
accountBalance = 12123.34
interestAmount = interestRate * accountBalance
Videó: Egy szokványos számoló program készítése

Az IDLE szerkesztőben lehetőség van arra, hogy szerkesszük az adott sort, annak újragépelése nélkül. Ezt úgy tehetjük meg, hogy a kurzort felvisszük a választott sorra, és ütünk egy entert. Ezzel másoljuk az adott sort.

A Python kódot bevinni a >>> prompttal lassú, és csak egy sort lehet egyszerre. Valamint nem lehetséges lementeni, hogy más is használhassa. Szerencsére, van egy sokkal egyszerúbb módja is a Python kód bevitelének.

A Python kódot bevihetjük script által is. A script Python kódsorok sorozata ami egyszerre lesz végrehajtva. Ahhoz, hogy egy scriptet készíthessünk, nyissunk egy új ablakot, ahogy az ábra mutatja 1.2.

fig.entering_a_script
Figure 1.2: Szkript bevitele

Vigyük be a gázolaj fogyasztást számoló programunkat, aztán mentsük el a fájlt. Elmenthetjük a fájlt flash drive-ra, network drive-ra, vagy bármilyen más helyre. A Python programok mindig .py kiterjesztésre végződnek. Lásd az ábrát: 1.3.

fig.saving_mpg_calculator
Figure 1.3: Szkript mentése

Futtassuk a programot, egyszerűen klikkeljünk a "Run" menüre és válasszuk a "Run Module" parancsot. Próbáljuk meg frissíteni a programot úgy, hogy új értékeket adunk a mérföldre, és gallonra.

Vigyázat, gyakori hiba!

Ettől a ponttól kezdve, szinte minden kódot vigyél be a script/modul-ba. Ne gépeld be a programodat az IDLE >>> prompton kívülre. Az ide beírt kód nem lesz elmentve. Ha ez történne, újra kell kezdeni. Ez az egyik leggyakoribb hibája a kezdő programozóknak.

Ez a program sokkal hasznosabb lenne, ha képes volna párbeszédre a felhasználókkal és megkérdezné a felhasználót a vezetett mérföldekről és a felhasznált gallonokról. Ez megtehető az input paranccsal. Lásd az alábbi kódot:

# This code almost works
milesDriven = input("Enter miles driven:")
gallonsUsed = input("Enter gallons used:")
mpg = milesDriven / gallonsUsed
print("Miles per gallon:", mpg)

Ennek a programnak a futtatása során a felhasználó meg lesz kérdezve a mérföldekről és a gallonokról, de egy furcsa hibát is generálunk, amit az alábbi ábrán láthatsz 1.4.

fig.mpg_program_error
Figure 1.4: Az MPG program futtatásakor megjelenő hiba

Ezt kijavítandó, kicsit módosítsuk a programunkat:

milesDriven = input("Enter miles driven:")
gallonsUsed = input("Enter gallons used:")
x = milesDriven + gallonsUsed
print("Sum of m+g:", x)

A fenti kódot futtatva ez lesz a kimeneti üzenet 1.5.

fig.mpg_incorrect_addition
Figure 1.5: Hibás összeadás

A program nem adja össze a két számot. Csak egymás után teszi őket. Ez azért történik, mert a program nem tudja, hogy itt két számot kértünk be. A felhasználó azt is beütheti, hogy Bob, vagy Mary. Ezek összege BobMary lenne. Elég érdekes.

Az adatbrvitelt számokká kell alakítanunk.

Ahhoz, hogy elmondjuk a számítógépnek, hogy ezek számok, szükséges az input funkciónkat kiegészíteni egy int( )-rel vagy egy float( )-tal. Az első esetben egész-, a másodikban törtszámokat várunk eredményül.

A végső, működő program:

# Sample Python/Pygame Programs
# Simpson College Computer Science
# http://programarcadegames.com/
# http://simpson.edu/computer-science/

# Explanation video: http://youtu.be/JK5ht5_m6Mk

# Calculate Miles Per Gallon
print("This program calculates mpg.")

# Get miles driven from the user
miles_driven = input("Enter miles driven:")
# Convert text entered to a
# floating point number
miles_driven = float(miles_driven)

# Get gallons used from the user
gallons_used = input("Enter gallons used:")
# Convert text entered to a
# floating point number
gallons_used = float(gallons_used)

# Calculate and print the answer
mpg = miles_driven / gallons_used
print("Miles per gallon:", mpg)

Variables:
milesDriven=
gallonsUsed=
mpg=
Output:
This program calculates mpg.
Enter miles driven:288
Enter gallons used:15
Miles per gallon: 19.2

És egy másik példa arra, hogyan számoljuk ki a mozgási energiáját egy tárgynak:

# Sample Python/Pygame Programs
# Simpson College Computer Science
# http://programarcadegames.com/
# http://simpson.edu/computer-science/

# Calculate Kinetic Energy

print("This program calculates the kinetic energy of a moving object.")
m_string = input("Enter the object's mass in kilograms: ")
m = float(m_string)
v_string = input("Enter the object's speed in meters per second: ")
v = float(v_string)

e = 0.5 * m * v * v
print("The object has " + str(e) + " joules of energy.")

Ha le akarjuk rövidíteni a programot, akkor egymásba ágyazhatjuk az input parancsunkat, és float utasítást. Példa erre:

milesDriven = input("Enter miles driven:")
milesDriven = float(milesDriven)

Ugyanazt fogja adni eredményül ez is:

milesDriven = float(input("Enter miles driven:"))

Ezesetben, a kimenete az input utasításnak közvetlenül van üsszekötve a float utasítással. Mindkettő működik, és a programozón múlik, hogy melyiket választja. Fontos, továbbá, hogy megértsük mindkét formát.

1.11 Áttekintés

1.11.1 Többválaszos tesztkérdések

Click here for a multiple-choice quiz.

1.11.2 Rövid válaszos munkafüzet

Click here for the chapter worksheet.

1.11.3 Laborgyakorlatok

Click here for the chapter lab.