PITCHME.md 4.46 KB
Newer Older
Bodor Máté's avatar
v0.03    
Bodor Máté committed
1
# Python 3 alapok
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
2
3
4
5
6

---

### Története

Bodor Máté's avatar
v0.01    
Bodor Máté committed
7
 - Guido van Rossum
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
8

Bodor Máté's avatar
v0.01    
Bodor Máté committed
9
 - 1991-ben jött létre
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
10

Bodor Máté's avatar
v0.01    
Bodor Máté committed
11
 - Magas szintű programozási nyelv
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
12

Bodor Máté's avatar
v0.03    
Bodor Máté committed
13
14
15
16
17
18
Note:
   - BDFL (Benevolent dictator for life)
   - Monty Python, karácsony
   - könnyen olvasható, tanulható, gyors fejlesztés
   - lassú

Bodor Máté's avatar
v0.01    
Bodor Máté committed
19
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
20
21
22

### Interpretált

Bodor Máté's avatar
v0.03    
Bodor Máté committed
23
24
25
 - A kódot egy értelmező dolgozza fel
 - Nem kell fordítani
 - Platformfüggetlen
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
26

Bodor Máté's avatar
v0.03    
Bodor Máté committed
27
Note:
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
28

Bodor Máté's avatar
v0.03    
Bodor Máté committed
29
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
30

Bodor Máté's avatar
v0.03    
Bodor Máté committed
31
### Miért szeretjük a python?
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
32

Bodor Máté's avatar
v0.03    
Bodor Máté committed
33
34
35
Note:
   - Magasszintű:
      -  Könnyen tanulható, gyors fejlesztés
Bodor Máté's avatar
v0.04    
Bodor Máté committed
36
37
   - Interpretált:
      - Bárhol lefut, nem kell lefordítani
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
38

Bodor Máté's avatar
v0.03    
Bodor Máté committed
39
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
40

Bodor Máté's avatar
v0.09    
Bodor Máté committed
41
![Python is awsome!](https://cdn-images-1.medium.com/max/800/0*_e09A-2xg4x7PG_A.)
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
42

Bodor Máté's avatar
v0.04    
Bodor Máté committed
43
---
Bodor Máté's avatar
v0.07    
Bodor Máté committed
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

### Tökéletes?!

+++
### Tökéletes?!

NEM!

+++

### Tökéletes?!
- Lassú, nagyon lassú
- Zabálja a ramot
- Csak futási hiba

Note:

+++
Kép: https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/gpp-python3.html

Note:
 https://en.wikipedia.org/wiki/N-body_simulation
---
Bodor Máté's avatar
v0.04    
Bodor Máté committed
67
68
### Csomagok

Bodor Máté's avatar
v0.06    
Bodor Máté committed
69
70
71
72
- Webfejlesztés:
    - Django
    - Flusk
    - Requests
Bodor Máté's avatar
v0.05    
Bodor Máté committed
73
74
75

+++

Bodor Máté's avatar
v0.06    
Bodor Máté committed
76
77
78
- IT Security:
    - Scapy
    - Nmap
Bodor Máté's avatar
v0.05    
Bodor Máté committed
79
80
81

+++

Bodor Máté's avatar
v0.06    
Bodor Máté committed
82
83
84
- AI:
    - TensorFlow
    - Keras
Bodor Máté's avatar
v0.05    
Bodor Máté committed
85
86
87

+++

Bodor Máté's avatar
v0.06    
Bodor Máté committed
88
89
90
91
- Data Science:
    - Pandas
    - StatsModels
    - NumPy
Bodor Máté's avatar
v0.05    
Bodor Máté committed
92
93
94

+++

Bodor Máté's avatar
v0.06    
Bodor Máté committed
95
96
97
98
- GUI:
    - PyQt
    - Tkinter
    - Flexx
Bodor Máté's avatar
v0.04    
Bodor Máté committed
99
 
Bodor Máté's avatar
v0.05    
Bodor Máté committed
100
+++
Bodor Máté's avatar
v0.06    
Bodor Máté committed
101
102
103
104
- Data visualization
    - matplotlib
    - Plotly
    - geoplotlib
Bodor Máté's avatar
v0.03    
Bodor Máté committed
105
Note:
Bodor Máté's avatar
v0.04    
Bodor Máté committed
106
107
   

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
108
109
110
111
---

### Pip

Bodor Máté's avatar
v0.01    
Bodor Máté committed
112
 - csomagkezelő
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
113

Bodor Máté's avatar
v0.01    
Bodor Máté committed
114
  - egy helyen van minden
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
115

Bodor Máté's avatar
v0.01    
Bodor Máté committed
116
  - könnyen használható
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
117
118
119
120
121
122

Note:

- könnyen használható
  - C++ ban jóval nehezebb

Bodor Máté's avatar
v0.07    
Bodor Máté committed
123
124
+++
```
Bodor Máté's avatar
v0.08    
Bodor Máté committed
125
pip install flake8/black
Bodor Máté's avatar
v0.07    
Bodor Máté committed
126
127
```

Bodor Máté's avatar
v0.01    
Bodor Máté committed
128
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
129
130
131

### Virtualenv

Bodor Máté's avatar
v0.08    
Bodor Máté committed
132
 - saját környezet minden projekthez
Bodor Máté's avatar
v0.10    
Bodor Máté committed
133
134
    - a
    - b
Bodor Máté's avatar
v0.12    
Bodor Máté committed
135
+++
Bodor Máté's avatar
v0.08    
Bodor Máté committed
136
 - Windows:
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
137

Bodor Máté's avatar
v0.09    
Bodor Máté committed
138
```
Bodor Máté's avatar
v0.07    
Bodor Máté committed
139
140
141
python -m venv venv
```

Bodor Máté's avatar
v0.09    
Bodor Máté committed
142
```
Bodor Máté's avatar
v0.07    
Bodor Máté committed
143
144
venv\Scripts\activate.bat
```
Bodor Máté's avatar
v0.12    
Bodor Máté committed
145
+++
Bodor Máté's avatar
v0.12    
Bodor Máté committed
146
147
 - Linux:

Bodor Máté's avatar
v0.09    
Bodor Máté committed
148
```
Bodor Máté's avatar
v0.07    
Bodor Máté committed
149
150
151
python3 -m venv venv
```

Bodor Máté's avatar
v0.09    
Bodor Máté committed
152
```
Bodor Máté's avatar
v0.11    
Bodor Máté committed
153
source venv\bin\activate
Bodor Máté's avatar
v0.07    
Bodor Máté committed
154
155
```

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
156
157
158
159
---

### Hello World!

Bodor Máté's avatar
v0.07    
Bodor Máté committed
160
161
+++ 

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
162
163
164
165
```python
print("Hello World!")
```

Bodor Máté's avatar
v0.07    
Bodor Máté committed
166
+++
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
167

Bodor Máté's avatar
v0.08    
Bodor Máté committed
168
169
170
171
```
pip install colorama
```

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
172
173
174
175
176
177
178
179
180
181
182
183
```python
from colorama import init
from colorama import Fore, Back, Style

init()
print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')
```

184
185
---

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
### Szintaxis

```python
#!/usr/bin/python3
import sys

try:
   # open file stream
   file = open(file_name, "w")

except IOError:
   print ("There was an error writing to", file_name)
   sys.exit()
print ("Enter '", file_finish,)
print "' When finished"

while file_text != file_finish:
   file_text = raw_input("Enter text: ")
Bodor Máté's avatar
v0.07    
Bodor Máté committed
204
  
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
205
206
207
208
209
210
211
212
213
214
215
216
```

Note:

- Nincs sorvég jel
- A kód blokkok indentálva vannak nincs kapcsoszárójel
- komment #

---

### Változók

Bodor Máté's avatar
v0.08    
Bodor Máté committed
217
218
+++

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
219
220
- integer
- float
Bodor Máté's avatar
v0.08    
Bodor Máté committed
221
- complex number
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
222
- string
Bodor Máté's avatar
v0.08    
Bodor Máté committed
223
- bool
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
224

Bodor Máté's avatar
v0.01    
Bodor Máté committed
225
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
226
227
228

### List

Bodor Máté's avatar
v0.08    
Bodor Máté committed
229
230
231

+++

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
232
```python
233
myList = ['physics', 'chemistry', 'physics', 1997, 2000]
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
234
235
236
237
```

bármilyen típus lehet benne

238
módosítható(mutable)
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
239

Bodor Máté's avatar
v0.01    
Bodor Máté committed
240
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
241
242

```python
243
244
print ("myList[0]: ", myList[0])
print ("myList[1:5]: ", myList[1:5])
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
245
246
247
```

```python
248
249
myList.append(5)
del myList[2]
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
250
251
```

Bodor Máté's avatar
v0.01    
Bodor Máté committed
252
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
253
254
255

### Tuple

Bodor Máté's avatar
v0.08    
Bodor Máté committed
256
257
+++

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
Ugyanaz, mint egy lista

Nem módosítható(immutable)

```python
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
```

```python
# tup1[0] = 100;
tup3 = tup1 + tup2
print (tup3)
```

Bodor Máté's avatar
v0.01    
Bodor Máté committed
273
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
274
275
276

### Dictionary

Bodor Máté's avatar
v0.08    
Bodor Máté committed
277
278
+++

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
Kulcs érték pár

A kulcs egyedi, érték bármi lehet

```python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
```

```python
print ("dict['Name']: ", dict['Name'])
dict['Age'] = 8
del dict['Name']
```

---

Bodor Máté's avatar
v0.08    
Bodor Máté committed
295
296
297
### Függvények
---

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
### Alap beépített fgv-ek

int

hex

oct

str

len

list

range

Bodor Máté's avatar
v0.01    
Bodor Máté committed
314
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
315
### Ciklusok
Bodor Máté's avatar
v0.01    
Bodor Máté committed
316
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
317
#### While
Bodor Máté's avatar
v0.08    
Bodor Máté committed
318
+++
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
319
320
321
322
323
324
325
326
327
328
329
330
331
332
```python
count = 0
while (count < 9):
   print ('The count is:', count)
   count = count + 1
```

```python
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
```

Bodor Máté's avatar
v0.01    
Bodor Máté committed
333
---
334

Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
335
336
#### For

Bodor Máté's avatar
v0.08    
Bodor Máté committed
337
+++
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
```python
for var in range(5):
   print (var)
```

```python
for letter in 'Python':     # traversal of a string sequence
   print ('Current Letter :', letter)
print()
fruits = ['banana', 'apple',  'mango']

for fruit in fruits:        # traversal of List sequence
   print ('Current fruit :', fruit)
```

Bodor Máté's avatar
v0.01    
Bodor Máté committed
353
354
---

Bodor Máté's avatar
v0.08    
Bodor Máté committed
355
### Elágazások
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
356

Bodor Máté's avatar
v0.08    
Bodor Máté committed
357
+++
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
```python
if expression1:
   statement(s)
elif expression2:
   statement(s)
elif expression3:
   statement(s)
else:
   statement(s)
```

---

### Osztályok

Bodor Máté's avatar
v0.08    
Bodor Máté committed
373
+++
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
```python
class Employee:
   'Common base class for all employees'
   empCount = 0

   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1
   
   def displayCount(self):
     print ("Total Employee %d" % Employee.empCount)

   def displayEmployee(self):
      print ("Name : ", self.name,  ", Salary: ", self.salary)
```

Bodor Máté's avatar
v0.01    
Bodor Máté committed
391
---
Bodnár Zsombor's avatar
WIP    
Bodnár Zsombor committed
392

Bodor Máté's avatar
v0.08    
Bodor Máté committed
393
394
395
396
### Getter, Setter

+++
a