Informatika2-2014/Gyakorlat01
A MathWikiből
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: