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

Ü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.


You are not logged in. Log in here and track your progress.