Informatika2-2014/Gyakorlat01
A MathWikiből
(Változatok közti eltérés)
(egy szerkesztő 20 közbeeső változata nincs mutatva) | |||
2. sor: | 2. sor: | ||
* A félévről: http://xkcd.com/353/ | * A félévről: http://xkcd.com/353/ | ||
+ | * Windows tutorial http://docs.python.org/2/faq/windows | ||
=== Elmélet === | === Elmélet === | ||
− | |||
− | |||
* Altalános körben használható | * Altalános körben használható | ||
* Magas szintű programozási nyelv | * Magas szintű programozási nyelv | ||
21. sor: | 20. sor: | ||
* Python interpreter futtatása: | * Python interpreter futtatása: | ||
<python> | <python> | ||
− | $ | + | $ python ## Run the Python interpreter |
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) | Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) | ||
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin | [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin | ||
Type "help", "copyright", "credits" or "license" for more information. | Type "help", "copyright", "credits" or "license" for more information. | ||
− | >> | + | >>> a = 6 ## set a variable in this interpreter session |
− | >> | + | >>> a ## entering an expression prints its value |
6 | 6 | ||
− | >> | + | >>> a + 2 |
8 | 8 | ||
− | >> | + | >>> a = 'hi' ## a can hold a string just as well |
− | >> | + | >>> a |
'hi' | 'hi' | ||
− | >> | + | >>> len(a) ## call the len() function on a string |
2 | 2 | ||
− | >> | + | >>> foo(a) ## try something that doesn't work |
Traceback (most recent call last): | Traceback (most recent call last): | ||
− | File " | + | File "", line 1, in ? |
NameError: name 'foo' is not defined | NameError: name 'foo' is not defined | ||
>>> ^D ## type CTRL-d to exit (CTRL-z in Windows/DOS terminal) | >>> ^D ## type CTRL-d to exit (CTRL-z in Windows/DOS terminal) | ||
</python> | </python> | ||
− | + | * Python program: | |
+ | <python> | ||
+ | #!/usr/bin/python | ||
− | === 1. | + | # import modules used here -- sys is a very standard one |
+ | import sys | ||
+ | |||
+ | # Gather our code in a main() function | ||
+ | def main(): | ||
+ | print 'Hello there', sys.argv[1] | ||
+ | # Command line args are in sys.argv[1], sys.argv[2] ... | ||
+ | # sys.argv[0] is the script name itself and can be ignored | ||
+ | |||
+ | # Standard boilerplate to call the main() function to begin | ||
+ | # the program. | ||
+ | if __name__ == '__main__': | ||
+ | main() | ||
+ | </python> | ||
+ | |||
+ | <bash> | ||
+ | $ python hello.py Guido | ||
+ | Hello there Guido | ||
+ | $ ./hello.py Alice # without needing 'python' first (Unix) | ||
+ | Hello there Alice | ||
+ | </bash> | ||
+ | * Függvények: | ||
+ | <python> | ||
+ | # Defines a "repeat" function that takes 2 arguments. | ||
+ | def repeat(s, exclaim): | ||
+ | """Returns the string s repeated 3 times. | ||
+ | If exclaim is true, add exclamation marks. | ||
+ | """ | ||
+ | |||
+ | result = s + s + s # can also use "s * 3" which is faster (Why?) | ||
+ | if exclaim: | ||
+ | result = result + '!!!' | ||
+ | return result | ||
+ | </python> | ||
+ | *Egyszerű adattípusok | ||
+ | **None - a semmi programbeli megvalósulása | ||
+ | **numerikus | ||
+ | **egész | ||
+ | **lebegőpontos | ||
+ | **(complex) | ||
+ | **long | ||
+ | **boolean | ||
+ | === Feladatok === | ||
+ | ==== Python interpreter ==== | ||
+ | * Nyisd meg a Python interpretert parancssorban | ||
+ | * Számold ki az alábbi összefüggések értékét | ||
+ | ** 12 + 96 | ||
+ | ** 72 - 4 | ||
+ | ** (x^2 + 4x + 4), ha x = 0, x = 1, x = 2 ,x = 10 | ||
+ | ** sqrt(6), sqrt(9) | ||
+ | ** 1032243 8354-el való osztási maradéka | ||
+ | ** 1032243 / 8354 | ||
+ | ** Segítség: | ||
+ | <python> | ||
+ | >>> pow(2,10) | ||
+ | 1024 | ||
+ | >>> 8/6 | ||
+ | 1 | ||
+ | >>> 8./6 | ||
+ | 1.3333333333333333 | ||
+ | >>> 8%6 | ||
+ | 2 | ||
+ | </python> | ||
+ | ==== Oszthatóság - "1. Python program" ==== | ||
+ | * Írdd meg első Python programodat az elméleti bevezetőben leírtak alapján. | ||
+ | * A programot szövegszerkesztőben írdd, majd parancssorban futtasd. | ||
+ | * A program vizsgálja meg, hogy két paraméterként kapott szám osztható-e egymással, és írja ki az oszthatóságot a felhasználónak. | ||
+ | * Segítség: | ||
+ | <python> | ||
+ | >>> print "Hello, Python!"; | ||
+ | Hello, Python! | ||
+ | </python> | ||
+ | ==== Üzemanyag ==== | ||
+ | * A program bemenetként kapja meg, hogy a felhasználó hány gallon üzemanyagot használna fel. | ||
+ | * A program írja ki az alábbi információkat: | ||
+ | ** A felhasznált üzemanyag mennyisége literben | ||
+ | ***1 gallon = 3.7854 l | ||
+ | ** Az üzemanyag gyártásához szükséges olaj mennyisége hordóban mérve. | ||
+ | *** Mindenképpen egész hordók vásárlására van szükség. | ||
+ | *** 1 hordó olajból 19.5 gallon üzemanyag készíthető. | ||
+ | ** A megfelelő CO2 terhelés kg-ban | ||
+ | *** 1 gallon üzemanyag esetén ez ~ 9 kg CO2 | ||
+ | ** A hordókban vásárolt alapanyag olaj ára az aktuális árfolyamon 3 különböző pénznemben: EUR, USD, HUF. | ||
+ | ==== Fibonacci ==== | ||
+ | * Írj Python scriptet, mely megadja a Fibonacci számok első n elemét. | ||
+ | ==== Legnagyobb közös osztó ==== | ||
+ | * Határozd meg két szám legnagyobb közös osztóját | ||
+ | ==== Fizika ==== | ||
+ | * A program bemenetként kapja meg, hogy az űrutazáshoz használt űrhajó sebessége hány %-a a fény sebességének (300 000 000 m/s). | ||
+ | ** Például 10% esetén a bemenet 0.1 és ekkor az űrhajó sebessége 30 000 000 m/s | ||
+ | ** Az űrhajó tömegét, feltéve, hogy nyugalmi tömege 70,000 kg. | ||
+ | ** Azon eltelt időket, melyeket az űrhajósok érzékelnének, ha a következő objektumokra utaznának a Földről: | ||
+ | *** Alpha Centauri: 4.3 fényév | ||
+ | *** Androméda Galaxis 2 000 000 fényév | ||
+ | ** Segítség: | ||
+ | *** http://hu.wikipedia.org/wiki/Id%C5%91dilat%C3%A1ci%C3%B3 | ||
+ | *** http://hu.wikipedia.org/wiki/Relativisztikus_t%C3%B6meg |
A lap jelenlegi, 2014. február 11., 12:55-kori változata
Tartalomjegyzék |
Python
- A félévről: http://xkcd.com/353/
- Windows tutorial http://docs.python.org/2/faq/windows
Elmélet
- Altalános körben használható
- Magas szintű programozási nyelv
- Egyik alap elve az olvasható kód írása tiszta szintaxis használatával
- Dinamikus interpreter nyelv
- Sokszor script nyelvként használjuk
- "Pythonban minden objektum"
- PEP8
- http://www.python.org/dev/peps/pep-0008/#introduction
- 4 space hosszú behúzással azonosítjuk a blokkokat
- Függvénynvek, változók és osztályok formátuma
ez_egy_hosszu_fuggvenynev(ez_egy_hosszu_valtozo) OsztalyNev
- Python interpreter futtatása:
$ python ## Run the Python interpreter Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = 6 ## set a variable in this interpreter session >>> a ## entering an expression prints its value 6 >>> a + 2 8 >>> a = 'hi' ## a can hold a string just as well >>> a 'hi' >>> len(a) ## call the len() function on a string 2 >>> foo(a) ## try something that doesn't work Traceback (most recent call last): File "", line 1, in ? NameError: name 'foo' is not defined >>> ^D ## type CTRL-d to exit (CTRL-z in Windows/DOS terminal)
- Python program:
#!/usr/bin/python # import modules used here -- sys is a very standard one import sys # Gather our code in a main() function def main(): print 'Hello there', sys.argv[1] # Command line args are in sys.argv[1], sys.argv[2] ... # sys.argv[0] is the script name itself and can be ignored # Standard boilerplate to call the main() function to begin # the program. if __name__ == '__main__': main()
$ python hello.py Guido Hello there Guido $ ./hello.py Alice # without needing 'python' first (Unix) Hello there Alice
- Függvények:
# Defines a "repeat" function that takes 2 arguments. def repeat(s, exclaim): """Returns the string s repeated 3 times. If exclaim is true, add exclamation marks. """ result = s + s + s # can also use "s * 3" which is faster (Why?) if exclaim: result = result + '!!!' return result
- Egyszerű adattípusok
- None - a semmi programbeli megvalósulása
- numerikus
- egész
- lebegőpontos
- (complex)
- long
- boolean
Feladatok
Python interpreter
- Nyisd meg a Python interpretert parancssorban
- Számold ki az alábbi összefüggések értékét
- 12 + 96
- 72 - 4
- (x^2 + 4x + 4), ha x = 0, x = 1, x = 2 ,x = 10
- sqrt(6), sqrt(9)
- 1032243 8354-el való osztási maradéka
- 1032243 / 8354
- Segítség:
>>> pow(2,10) 1024 >>> 8/6 1 >>> 8./6 1.3333333333333333 >>> 8%6 2
Oszthatóság - "1. Python program"
- Írdd meg első Python programodat az elméleti bevezetőben leírtak alapján.
- A programot szövegszerkesztőben írdd, majd parancssorban futtasd.
- A program vizsgálja meg, hogy két paraméterként kapott szám osztható-e egymással, és írja ki az oszthatóságot a felhasználónak.
- Segítség:
>>> print "Hello, Python!"; Hello, Python!
Üzemanyag
- A program bemenetként kapja meg, hogy a felhasználó hány gallon üzemanyagot használna fel.
- A program írja ki az alábbi információkat:
- A felhasznált üzemanyag mennyisége literben
- 1 gallon = 3.7854 l
- Az üzemanyag gyártásához szükséges olaj mennyisége hordóban mérve.
- Mindenképpen egész hordók vásárlására van szükség.
- 1 hordó olajból 19.5 gallon üzemanyag készíthető.
- A megfelelő CO2 terhelés kg-ban
- 1 gallon üzemanyag esetén ez ~ 9 kg CO2
- A hordókban vásárolt alapanyag olaj ára az aktuális árfolyamon 3 különböző pénznemben: EUR, USD, HUF.
- A felhasznált üzemanyag mennyisége literben
Fibonacci
- Írj Python scriptet, mely megadja a Fibonacci számok első n elemét.
Legnagyobb közös osztó
- Határozd meg két szám legnagyobb közös osztóját
Fizika
- A program bemenetként kapja meg, hogy az űrutazáshoz használt űrhajó sebessége hány %-a a fény sebességének (300 000 000 m/s).
- Például 10% esetén a bemenet 0.1 és ekkor az űrhajó sebessége 30 000 000 m/s
- Az űrhajó tömegét, feltéve, hogy nyugalmi tömege 70,000 kg.
- Azon eltelt időket, melyeket az űrhajósok érzékelnének, ha a következő objektumokra utaznának a Földről:
- Alpha Centauri: 4.3 fényév
- Androméda Galaxis 2 000 000 fényév
- Segítség: