<jupyter_start><jupyter_text>Egyvált: 1. gyakorlat: Bevezetés, az első python programunk TartalomAz órán a terminálba írogattunk, és megismertük a Python 3.6 első pár parancsát, majd megírtuk az első valami értelmeset csináló programunkat. Python legalapjaiA Pythonban - mint bármelyik másik programozási nyelven - a nyelv által rögzített utasításkészlettel adhatunk utasítást a számítógépünknek arra, hogy azt csinálja, amit mi akarunk. Kezdjük a legegyszerűbbel: írjunk ki valamit a képernyőre.<jupyter_code>print('<NAME>!') #a print utasítás zárójelei közötti értéket kiírja a Python a képernyőre.<jupyter_output>Szervusz, világ!<jupyter_text>Most, hogy megvolt a hagyományos "HelloWorld" - egyébként ez sem mindig egyszerű, [mikrovezérlőkön ezt sem piskóta megírni](https://www.youtube.com/watch?v=LnzuMJLZRdU).A számítógépek két dolgot tudnak igazán jól: sok adatot tárolni és gyorsan számolni. Próbáljuk ki a Python "számolókáját"!<jupyter_code>print(22+17) # összeadás: ez biztos megy fejben is - a parancsokat enterrel választom el
print(635-345) # kivonás: ez is, ha kicsit szőrözünk
print(24*147) #szorzás: ez már egész menő, ha megy
print(287/6) #osztás
print(13%5) #maradék művelet, matekosabbaknak "modulo"
print(23//4) #egész osztás/ "bennfoglalás"
print(256**0.25) #hatványozás: működik tört kitevővel is<jupyter_output>39
290
3528
47.833333333333336
3
5
4.0<jupyter_text>Változók: a memória fiókjaiA fenti sorokba egészen nagy számokat is behelyettesíthettek, és láthatjátok, hogy meg se kottyan a gépeteknek - de hogy tároljuk el ezeket az értékeket? Pythonban ez az eltárolás nagyon egyszerű: egyszerűen csak egyenlővé tesszük a változónkat az értékével!<jupyter_code>a = 7 #most eltároltam "a" változóban 7-et.
print(a) #innentől kiírhatom,
a = a + 5 #bármilyen műveletet végezhetek vele
b = 100
b = a + b**0.5 # akár egy másik változót is hozzáadhatok

print(a) # ha egymás után írok ki, egymás alá írja a piton a külön print()-eket
print(b) # észrevettétek, hogy bármit írkűlhatok a # mőgé, nem kibűl a fordító; ezt hívják kommentnek. 
#Egy Python sorban a fordító a #utáni résszel nem foglalkozik.<jupyter_output>7
12
22.0
2.0<jupyter_text>Figyeljétek meg, hogy az előző eredmény miért lett $22$ helyett $22.0$! A Python egy dinamikusan típusos nyelv - ez annyit tesz, hogy nekünk az értékadásnál nem kell azzal törődni, hogy most épp számot vagy szöveget töltünk be a változóba - de attól a változóknak még lesz típusa, és a Python másként kezeli a külön típusba tartozó dolgokat. Három típust láthattatok eddig:- int, vagyis integer: egész szam. Ha egész számokat műveletelek össze (kivéve törthatványokat és az osztást), mindig egész számot kapok kimenetül.- float: vagy lebegőpontos szám; tizedes törteket tárolhat/vagy nagyon nagy számokat. Osztás és törthatvány eredménye mindig float. Egy floatot egy inttel összeműveletelve floatot kapok. Persze lehetne minden számot floattal jelölni, csak pazarlás lenne. Egy azonos nagyságú egész szám leírásához  sokkal kevesebb memória is elég.- string: szöveg, karaktersorozat. ""-vel, vagy ''-vel jelöljük a határait; ilyenne írtuk ki a "HelloWorld"-ünket. Egy változó típusát ki is írkálhatjuk pythonnal, ha szeretnénk:<jupyter_code>a = 77
print(type(a)) # <class 'int'> - egész szám
a = a + 0.420
print(type(a)) # <class 'float'> - tört, lebegőpontosan ábrázolva
a = '24' #attól, hogy csak szám van benne, lehet str!
print(type(a)) # <class 'str'> - karakterlánc<jupyter_output><class 'int'>
<class 'float'>
<class 'str'><jupyter_text>Mostmár egész jó kis programkákat is írhatnánk - akár - ha tudnánk a printelés mellett adatot beolvasni is a felhasználótól. Erre van az input() - a zárójelek közé egy str-t írhatunk (nem muszáj, üres sorba is pötyöghetünk)<jupyter_code>readValue = input('Adj meg egy számot!') #ez szép és jó, csak nem éppen szám: minden beolvasott dolog str. Ellenőrizzük!
print(type(readValue)) #str lett!<jupyter_output>Adj meg egy számot!148869420
<class 'str'><jupyter_text>Szerencsére nincs kőbe vésve a változók típusa: lehet egy változót más típussal is használni, mint amilyen van neki. Ez a "castolás"; figyelem: ha nem tesszük egyenlővé az új, castolt értékkel a változót, ugyanaz marad a típusa!<jupyter_code>b = 2
a = 12.1
print(b*int(a)) #intesítés kerekít - pontosabban egész rész fgt számít.
print(a) 
print(type(a)) #Figyeljük meg, hogy "a" értéke és típusa nem változott.
#ugyanígy lehet a többi típust is: float(), str().<jupyter_output>24
12.1
<class 'float'><jupyter_text>Az első valamire is jó programunkAz első programunk, ami valami értelmeset csinál, egy vízszintes hajítást számító szoftverke lesz. A feladat a következő: Egy $h$ magasságú meredély tetején áll egy ágyú, csöve a meredély felé néz. Arra lennénk kíváncsiak, hogy a $v_0$ kezdősebességgel startoló ágyúgolyó milyen messzire repülhet az ágyútól; ezt írja ki a program a paraméterek beolvasása után. A mértékegységek legyenek végig $SI$-ben, a nehézségi gyorsulás $g=10 m/s^2$-nek vehető.<jupyter_code>g = 10 #g értékének megadása - nem a felhasználó adja meg
v0 = input('Add meg v0t!') #v0 és h beolvasása és eltárolása stringként!
h = input('Add meg ht!')

v0 = float(v0) #átalakítás floatra str-ről
h = float(h)

t = (2*h/g)**0.5 # kis alap fizika: kiszámoljuk négyzetes úttörvényből, hogy mennyit van a levegőben a golyóbis
l = v0*t # ameddig a levegőben van, addig repül is
print(l) #kiírjuk, hogy meddig jutott<jupyter_output>Add meg v0t!1288
Add meg ht!10
1821.5070683365466
{'fraction_non_alphanumeric': 0.08021978021978023, 'fraction_numerical': 0.027472527472527472, 'mean_word_length': 5.547961630695443, 'pattern_counts': {'":': 0, '<': 31, '<?xml version=': 0, '>': 31, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 1, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '203496', 'license': 'MIT', 'n_tokens_mistral': 2527, 'n_tokens_neox': 2550, 'n_words': 699, 'path': 'Gyakorlat_1_Valtozok_IO.ipynb', 'repo_name': 'fbenedek/egyvalt2019', 'size': '5469'}