├── Advanced Modules.pdf ├── Built-in Functions.pdf ├── CONTRIBUTING.md ├── Decorators(dekorativlər).pdf ├── Errors_Exceptions(Xətalar və İstisnalar).pdf ├── Functions.pdf ├── Graphical User Interface.pdf ├── Iterators and Generators(Silsilələr və törəmələr).pdf ├── JupyterFile ├── Advanced-Modules │ ├── .ipynb_checkpoints │ │ └── Advanced Modules-checkpoint.ipynb │ └── Advanced Modules.ipynb ├── Built-in-Function │ └── Built-in Functions.ipynb ├── DATA │ ├── Calculate │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-36.pyc │ │ │ └── calculate.cpython-36.pyc │ │ └── calculate.py │ ├── Generate │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-36.pyc │ │ │ └── generate.cpython-36.pyc │ │ └── generate.py │ ├── data.txt │ ├── data1.txt │ └── new.txt ├── Data_types │ ├── .ipynb_checkpoints │ │ └── Giriş-DataTypes-checkpoint.ipynb │ └── Giriş-DataTypes.ipynb ├── Decorators │ └── Decorators(dekorativlər).ipynb ├── Error_Exceptions │ └── Errors_Exceptions(Xətalar və İstisnalar).ipynb ├── Files │ └── Reading and Writing Files in Python.ipynb ├── Function │ └── Functions.ipynb ├── GUI │ ├── .idea │ │ └── .gitignore │ ├── .ipynb_checkpoints │ │ └── Graphical User Interface-checkpoint.ipynb │ ├── Graphical User Interface.ipynb │ ├── image │ │ ├── back.png │ │ ├── exit.png │ │ ├── forward.png │ │ ├── home.png │ │ ├── lock.png │ │ ├── new.jpg │ │ ├── newtab.jpg │ │ ├── open.png │ │ ├── openfile.png │ │ ├── print.png │ │ ├── qbrowser.png │ │ ├── question.png │ │ ├── reload.png │ │ ├── saveas.png │ │ └── stop.png │ └── qbrowser.py ├── Iterators-Generators │ └── Iterators and Generators(Silsilələr və törəmələr).ipynb ├── Modules │ ├── Modules(Modullar).ipynb │ ├── discriminant.py │ ├── function.py │ └── test.py ├── OOP │ └── Python Object Oriented Programming(Obyekt Yönümlü Proqramlaşdırma).ipynb ├── Operators │ └── Operators.ipynb ├── Package │ ├── .idea │ │ ├── .gitignore │ │ ├── Package.iml │ │ ├── inspectionProfiles │ │ │ └── profiles_settings.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ └── vcs.xml │ ├── .ipynb_checkpoints │ │ └── Python package-checkpoint.ipynb │ ├── Python package.ipynb │ ├── __init__.py │ ├── data │ │ ├── Calculate │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-36.pyc │ │ │ │ └── calculate.cpython-36.pyc │ │ │ └── calculate.py │ │ └── Generate │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-36.pyc │ │ │ └── generate.cpython-36.pyc │ │ │ └── generate.py │ └── package.py ├── Python-Sqlite │ ├── .ipynb_checkpoints │ │ └── PythonSqlite-checkpoint.ipynb │ ├── DATA │ │ └── database.db │ ├── PythonSqlite.ipynb │ └── database.db ├── image │ ├── ai.jpg │ ├── ai.png │ ├── anac1.png │ ├── anac2.png │ ├── anac3.png │ ├── anaconda.png │ ├── bstart.png │ ├── datatypes.png │ ├── diskrt.png │ ├── f.png │ ├── ico.png │ ├── ieee.jpg │ ├── inhert.png │ ├── loop.jpg │ ├── map.png │ ├── moduls.png │ ├── moduls1.png │ ├── operator.png │ ├── operators.png │ ├── pack.png │ ├── pack1.png │ ├── package.png │ ├── pyanp.png │ ├── pyimg.jpg │ ├── pyqt1.png │ ├── pyqt2.png │ ├── pyqt3.png │ ├── pyqt4.png │ ├── pyscript.png │ ├── pytest.png │ ├── qrcode.png │ ├── qt.png │ ├── qt1.png │ ├── reduce.png │ ├── rerunpy.png │ ├── runpy.png │ ├── savepy.png │ ├── screen.png │ ├── stack (1).jpg │ ├── start.png │ ├── strindex.png │ ├── t.png │ └── tv.png ├── readme.txt └── Əlavələr │ ├── .ipynb_checkpoints │ └── Əlavələr-checkpoint.ipynb │ ├── data.txt │ └── Əlavələr.ipynb ├── Modules(Modullar).pdf ├── Operators.pdf ├── Python Object Oriented Programming(Obyekt Yönümlü Proqramlaşdırma).pdf ├── PythonSqlite.pdf ├── README.md └── Əlavələr.pdf /Advanced Modules.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Advanced Modules.pdf -------------------------------------------------------------------------------- /Built-in Functions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Built-in Functions.pdf -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Decorators(dekorativlər).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Decorators(dekorativlər).pdf -------------------------------------------------------------------------------- /Errors_Exceptions(Xətalar və İstisnalar).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Errors_Exceptions(Xətalar və İstisnalar).pdf -------------------------------------------------------------------------------- /Functions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Functions.pdf -------------------------------------------------------------------------------- /Graphical User Interface.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Graphical User Interface.pdf -------------------------------------------------------------------------------- /Iterators and Generators(Silsilələr və törəmələr).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Iterators and Generators(Silsilələr və törəmələr).pdf -------------------------------------------------------------------------------- /JupyterFile/DATA/Calculate/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['calculate'] -------------------------------------------------------------------------------- /JupyterFile/DATA/Calculate/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/DATA/Calculate/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/DATA/Calculate/__pycache__/calculate.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/DATA/Calculate/__pycache__/calculate.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/DATA/Calculate/calculate.py: -------------------------------------------------------------------------------- 1 | 2 | def factorial_recursive(n): 3 | """ 4 | Returns factorial of a given number using recursion. 5 | 6 | fact(1) -------> 1 7 | 8 | """ 9 | if n == 1: 10 | return 1 11 | else: 12 | return n * factorial_recursive(n-1) 13 | -------------------------------------------------------------------------------- /JupyterFile/DATA/Generate/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['generate'] -------------------------------------------------------------------------------- /JupyterFile/DATA/Generate/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/DATA/Generate/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/DATA/Generate/__pycache__/generate.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/DATA/Generate/__pycache__/generate.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/DATA/Generate/generate.py: -------------------------------------------------------------------------------- 1 | def Generasiya(n): 2 | generator = (i for i in range(n)) 3 | generator = iter(generator) 4 | while True: 5 | try: 6 | print (next(generator)) 7 | except StopIteration: 8 | break 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /JupyterFile/DATA/data.txt: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | Python proqramlaşdırma dili 3 | Java proqramlaşdırma dili 4 | ======= 5 | Python proqramlaşdırma dili 6 | Java proqramlaşdırma dili 7 | >>>>>>> 4189c785429eb0aacd15d95e708254311add63b7 8 | C++ proqramlaşdırma dili -------------------------------------------------------------------------------- /JupyterFile/DATA/data1.txt: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /JupyterFile/DATA/new.txt: -------------------------------------------------------------------------------- 1 | Maşın Öyrənmə Dərin Öyrənmə -------------------------------------------------------------------------------- /JupyterFile/Decorators/Decorators(dekorativlər).ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Dekoratorlar" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Bundan əvvəlki bəhsdə funksiyalar və modulları öyrəndik.Modullar və funksiyalar haqqında ümumi təsəvvürünüz yarandı.İn isə funksiyalarda istifadə olunan dekoratorları öyrənək." 15 | ] 16 | }, 17 | { 18 | "cell_type": "markdown", 19 | "metadata": {}, 20 | "source": [ 21 | "### Dekoratorlar nədir!" 22 | ] 23 | }, 24 | { 25 | "cell_type": "markdown", 26 | "metadata": {}, 27 | "source": [ 28 | "\n", 29 | "Dekorativ funksiyalar, Pythonda istifadəçiyə quruluşunu dəyişdirmədən mövcud bir obyektə yeni funksionallıq əlavə etməyə imkan verən dizayn nümunəsidir.Dekorativlər adətən təmin edəcəyimiz funksiyadan əvvəl çağırılır.Pythonda funksiyalar birinci sinif vətəndaşlardır(first class citizens).Bu o deməkdir ki, arqument kimi ötürülərək, bir funksiyadan geri qaytarılmış, dəyişdirilmiş və dəyişənə tapşırılan kimi əməliyyatlara dəstək olurlar. Bu Python dekorativlərini yaratmağı öyrənməzdən əvvəl başa düşmək üçün əsas bir anlayışdır.Dekorativlərə Flask framework -də daha çox istifadə olunur.Uzan uzadı kod sətirləri yazmaq yerinə,dekorativ funksiyalardan istifadə edə bilərsiniz." 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 57, 35 | "metadata": {}, 36 | "outputs": [ 37 | { 38 | "data": { 39 | "text/plain": [ 40 | "5" 41 | ] 42 | }, 43 | "execution_count": 57, 44 | "metadata": {}, 45 | "output_type": "execute_result" 46 | } 47 | ], 48 | "source": [ 49 | "def add_num(var):\n", 50 | " return var + 1\n", 51 | "add_one = add_num\n", 52 | "add_one(4)" 53 | ] 54 | }, 55 | { 56 | "cell_type": "markdown", 57 | "metadata": {}, 58 | "source": [ 59 | "Yuxarıdakı funksiyada yeni kod nümunəsi yoxdur.add_num funksiyası hazırladıq və ardından bir (var) arqumenti almasını təmin edib həmin dəyəri return ilə aldıq" 60 | ] 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "metadata": {}, 65 | "source": [ 66 | "Və ya funksiya daxilində funksiya hazırlayaq\n" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": 58, 72 | "metadata": {}, 73 | "outputs": [ 74 | { 75 | "data": { 76 | "text/plain": [ 77 | "5" 78 | ] 79 | }, 80 | "execution_count": 58, 81 | "metadata": {}, 82 | "output_type": "execute_result" 83 | } 84 | ], 85 | "source": [ 86 | "#Defining Functions Inside other Functions\n", 87 | "def add_num(var):\n", 88 | " def add_one(var):\n", 89 | " return var + 1\n", 90 | "\n", 91 | "\n", 92 | " result = add_one(var)\n", 93 | " return result\n", 94 | "add_num(4)" 95 | ] 96 | }, 97 | { 98 | "cell_type": "markdown", 99 | "metadata": {}, 100 | "source": [ 101 | "Yuxarıdakı add_num əsas add_one funksiyası isə aparıcıdır." 102 | ] 103 | }, 104 | { 105 | "cell_type": "markdown", 106 | "metadata": {}, 107 | "source": [ 108 | "Və ya iki ayrı funksiya tərtib edib funksiya parametrlərini digərinə ötürmək\n" 109 | ] 110 | }, 111 | { 112 | "cell_type": "code", 113 | "execution_count": 59, 114 | "metadata": {}, 115 | "outputs": [ 116 | { 117 | "data": { 118 | "text/plain": [ 119 | "5" 120 | ] 121 | }, 122 | "execution_count": 59, 123 | "metadata": {}, 124 | "output_type": "execute_result" 125 | } 126 | ], 127 | "source": [ 128 | "#Passing Functions as Arguments to other Functions\n", 129 | "def add_num(var):\n", 130 | " return var + 1\n", 131 | "\n", 132 | "def func_call(function):\n", 133 | " var = 4 #sabit dəyər\n", 134 | " return function(var)\n", 135 | "func_call(add_num)" 136 | ] 137 | }, 138 | { 139 | "cell_type": "markdown", 140 | "metadata": {}, 141 | "source": [ 142 | "Yuxarıda add_num funksiyası tərtib edib var dəyişəni üzərinə 1ədədini əlavə edirik.func_call funksiyası vasitəsilə ilk funksiya üçün dəyişənə 4 rəqəmini mənimsətdik daha sonra return vasitəsilə ilk funksiyamizdan aldığımız toplama əməlini yerinə yetiririk " 143 | ] 144 | }, 145 | { 146 | "cell_type": "markdown", 147 | "metadata": {}, 148 | "source": [ 149 | "Həmçinin bir funksiya yeni bir törəmə funksiya hazırlaya bilər" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": 60, 155 | "metadata": {}, 156 | "outputs": [ 157 | { 158 | "data": { 159 | "text/plain": [ 160 | "8" 161 | ] 162 | }, 163 | "execution_count": 60, 164 | "metadata": {}, 165 | "output_type": "execute_result" 166 | } 167 | ], 168 | "source": [ 169 | "#Functions Returning other Functions\n", 170 | "i = 4\n", 171 | "def some():\n", 172 | " def var():\n", 173 | " return i*2\n", 174 | " return var\n", 175 | "k = some()\n", 176 | "k()" 177 | ] 178 | }, 179 | { 180 | "cell_type": "code", 181 | "execution_count": 61, 182 | "metadata": {}, 183 | "outputs": [], 184 | "source": [ 185 | "#Creating Decorators\n", 186 | "def _decorator(function):\n", 187 | " def wrapper():\n", 188 | " func = function()\n", 189 | " _make = func.upper()\n", 190 | " return _make\n", 191 | " return wrapper" 192 | ] 193 | }, 194 | { 195 | "cell_type": "code", 196 | "execution_count": 62, 197 | "metadata": {}, 198 | "outputs": [ 199 | { 200 | "data": { 201 | "text/plain": [ 202 | "'AZERBAIJAN'" 203 | ] 204 | }, 205 | "execution_count": 62, 206 | "metadata": {}, 207 | "output_type": "execute_result" 208 | } 209 | ], 210 | "source": [ 211 | "def uppercase():\n", 212 | " return 'azerbaijan'\n", 213 | "decorate =_decorator(uppercase)\n", 214 | "decorate()" 215 | ] 216 | }, 217 | { 218 | "cell_type": "markdown", 219 | "metadata": {}, 220 | "source": [ 221 | "Yuxarıdakı nümunədə dekorativ funksiyanı hazırladıq._decorator funksiyası daxilində wrapper funksiyası hazırlayıb daha sonra _decorator funksiyasından gələn function arqumentini func dəyişəninə əlavə etdik.Aldığımız parametr sətir tipində olduğu üçün sətir tipi metodlarından rahatlıqla istifadə edə bilərik.Və əsas funksiyamız wrapper funksiyasını return ifadəsinə ötürürük. " 222 | ] 223 | }, 224 | { 225 | "cell_type": "markdown", 226 | "metadata": {}, 227 | "source": [ 228 | "Və ya başqa yazılışla @ - işarəsindən istifadə olunur.və dekorativ funksiyanı istifadə etmək üçün tətbiq edəcəyimiz funksiyadan əvvəl yazılmalıdır." 229 | ] 230 | }, 231 | { 232 | "cell_type": "code", 233 | "execution_count": 63, 234 | "metadata": {}, 235 | "outputs": [ 236 | { 237 | "data": { 238 | "text/plain": [ 239 | "'AZERBAIJAN'" 240 | ] 241 | }, 242 | "execution_count": 63, 243 | "metadata": {}, 244 | "output_type": "execute_result" 245 | } 246 | ], 247 | "source": [ 248 | "def _decorator(function):\n", 249 | " def wrapper():\n", 250 | " func = function()\n", 251 | " _make = func.upper()\n", 252 | " return _make\n", 253 | " return wrapper\n", 254 | "\n", 255 | "@_decorator #dekorativ funksiyamızı çağırırıq\n", 256 | "def uppercase():\n", 257 | " return 'azerbaijan'\n", 258 | "uppercase()" 259 | ] 260 | }, 261 | { 262 | "cell_type": "markdown", 263 | "metadata": {}, 264 | "source": [ 265 | "Yuxarıdakı nümunədə @_decorator - dekorativ funksiya olub özündən sonra gələn istənilən funksiyaya tətbiq oluna bilinir" 266 | ] 267 | }, 268 | { 269 | "cell_type": "code", 270 | "execution_count": 64, 271 | "metadata": {}, 272 | "outputs": [ 273 | { 274 | "data": { 275 | "text/plain": [ 276 | "['MACHINE', 'LEARNING']" 277 | ] 278 | }, 279 | "execution_count": 64, 280 | "metadata": {}, 281 | "output_type": "execute_result" 282 | } 283 | ], 284 | "source": [ 285 | "def _decorator(function):\n", 286 | " def wrapper():\n", 287 | " func = function()\n", 288 | " _make = func.upper()\n", 289 | " return _make\n", 290 | " return wrapper\n", 291 | "def _decorator2(function):\n", 292 | " def wrapper():\n", 293 | " func = function()\n", 294 | " split = func.split()\n", 295 | " return split\n", 296 | " return wrapper\n", 297 | "\n", 298 | "@_decorator2\n", 299 | "@_decorator\n", 300 | "\n", 301 | "def test():\n", 302 | " return 'machine learning'\n", 303 | "test()" 304 | ] 305 | }, 306 | { 307 | "cell_type": "code", 308 | "execution_count": null, 309 | "metadata": {}, 310 | "outputs": [], 311 | "source": [] 312 | }, 313 | { 314 | "cell_type": "code", 315 | "execution_count": 1, 316 | "metadata": {}, 317 | "outputs": [], 318 | "source": [ 319 | "def Fahrenheit(temprature):\n", 320 | " \"\"\"\n", 321 | " funksiya selsi cinsindən temperaturu fahrenheyt cinsinə çevirir\n", 322 | " \"\"\"\n", 323 | " \n", 324 | " def wrapper(celsius):\n", 325 | " F = (celsius * 9/5) + 32\n", 326 | " temprature(celsius)\n", 327 | " return ('Converted :{:.2f}F'.format(F))\n", 328 | " return wrapper\n", 329 | "\n", 330 | "def Celsius(temprature):\n", 331 | " \"\"\"\n", 332 | " funksiya fahrenheit cinsindən temperaturu selsi cinsinə çevirir\n", 333 | " \"\"\"\n", 334 | " def wrapper(fahrenheit):\n", 335 | " C = (fahrenheit - 32) * 5/9\n", 336 | " temprature(fahrenheit)\n", 337 | " return ('Converted :{:.2f}C'.format(C))\n", 338 | " return wrapper" 339 | ] 340 | }, 341 | { 342 | "cell_type": "code", 343 | "execution_count": 2, 344 | "metadata": {}, 345 | "outputs": [ 346 | { 347 | "data": { 348 | "text/plain": [ 349 | "'Converted :-11.11C'" 350 | ] 351 | }, 352 | "execution_count": 2, 353 | "metadata": {}, 354 | "output_type": "execute_result" 355 | } 356 | ], 357 | "source": [ 358 | "@Celsius\n", 359 | "def convert(t):\n", 360 | " return t\n", 361 | "convert(12)" 362 | ] 363 | }, 364 | { 365 | "cell_type": "code", 366 | "execution_count": 3, 367 | "metadata": {}, 368 | "outputs": [ 369 | { 370 | "data": { 371 | "text/plain": [ 372 | "'Converted :50.00F'" 373 | ] 374 | }, 375 | "execution_count": 3, 376 | "metadata": {}, 377 | "output_type": "execute_result" 378 | } 379 | ], 380 | "source": [ 381 | "@Fahrenheit\n", 382 | "def convert(t):\n", 383 | " return t \n", 384 | "convert(10)" 385 | ] 386 | }, 387 | { 388 | "cell_type": "code", 389 | "execution_count": null, 390 | "metadata": {}, 391 | "outputs": [], 392 | "source": [] 393 | } 394 | ], 395 | "metadata": { 396 | "kernelspec": { 397 | "display_name": "Python 3", 398 | "language": "python", 399 | "name": "python3" 400 | }, 401 | "language_info": { 402 | "codemirror_mode": { 403 | "name": "ipython", 404 | "version": 3 405 | }, 406 | "file_extension": ".py", 407 | "mimetype": "text/x-python", 408 | "name": "python", 409 | "nbconvert_exporter": "python", 410 | "pygments_lexer": "ipython3", 411 | "version": "3.6.10" 412 | } 413 | }, 414 | "nbformat": 4, 415 | "nbformat_minor": 2 416 | } 417 | -------------------------------------------------------------------------------- /JupyterFile/Error_Exceptions/Errors_Exceptions(Xətalar və İstisnalar).ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Errors and Exceptions(Xətalar və İstisnalar)\n" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Python proqramlaşdırma dilində yazılan kod nümunələrində az-çox hər kəs səhv edərək öyrənir.Python dilində bu səhvlər əsasən iki qismdə 1.sintaksis səhvlər 2.istisnalar olaraq iki yerə ayrılır.Məsələn input funksiyası bilirikki istifadəçidən aldığı parametri sətir tipində saxlayır və biz bunu riyazi əməllərdə istifadə etdiyimiz zaman məcburi həqiqi və ya tam ədəd tipinə çeviririk.Və istifadəçi xüsusi işarələr yaza bilməsi ehtimalı olduğundan biz xəta ilə üzləşəcik və bu da proqramın sonlandırılması deməkdir.Bunun üçün biz proqramı davamlı çalışdırıb çıxış əmri əlavə edərək həmçinin baş verəcək xətaları özəlləşdirərək istifadəçiyə bildiriş göndərib yenidən ədəd tipində dəyər yazmasını tələb edə bilərik.Bu bəhsdə məhz biz bu xətaların tiplərini və özəlləşdirmə üsullarını nəzərdən keçirəcəyik .Misallardan bu daha aydın olacaq" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [ 22 | { 23 | "name": "stdout", 24 | "output_type": "stream", 25 | "text": [ 26 | "Ədəd yazın:12\n", 27 | "**************************************************\n" 28 | ] 29 | }, 30 | { 31 | "ename": "TypeError", 32 | "evalue": "must be str, not int", 33 | "output_type": "error", 34 | "traceback": [ 35 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 36 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", 37 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mvar\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Ədəd yazın:'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'*'\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m50\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Cavab:'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mvar\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m12\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 38 | "\u001b[1;31mTypeError\u001b[0m: must be str, not int" 39 | ] 40 | } 41 | ], 42 | "source": [ 43 | "var = input('Ədəd yazın:')\n", 44 | "print('*'*50)\n", 45 | "print('Cavab:',var+12)" 46 | ] 47 | }, 48 | { 49 | "cell_type": "markdown", 50 | "metadata": {}, 51 | "source": [ 52 | "Nə oldu! xəta aldıq.TypeError: must be str, not int sətri xəta sətri olub xəta tipi TypeError adlanır.sətir tipi ilə tam ədəd tipini toplaya bilmərik." 53 | ] 54 | }, 55 | { 56 | "cell_type": "markdown", 57 | "metadata": {}, 58 | "source": [ 59 | "Bu tip xətalardan başqa python dilində digər xətalar da mövcuddur.Məsələn" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": 3, 65 | "metadata": {}, 66 | "outputs": [ 67 | { 68 | "ename": "ZeroDivisionError", 69 | "evalue": "division by zero", 70 | "output_type": "error", 71 | "traceback": [ 72 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 73 | "\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", 74 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;36m1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 75 | "\u001b[1;31mZeroDivisionError\u001b[0m: division by zero" 76 | ] 77 | } 78 | ], 79 | "source": [ 80 | "1/0" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": 4, 86 | "metadata": {}, 87 | "outputs": [ 88 | { 89 | "ename": "NameError", 90 | "evalue": "name 'num' is not defined", 91 | "output_type": "error", 92 | "traceback": [ 93 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 94 | "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", 95 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;36m4\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mnum\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 96 | "\u001b[1;31mNameError\u001b[0m: name 'num' is not defined" 97 | ] 98 | } 99 | ], 100 | "source": [ 101 | "4 + num*3" 102 | ] 103 | }, 104 | { 105 | "cell_type": "markdown", 106 | "metadata": {}, 107 | "source": [ 108 | "Və digərləri.Bu xətaları əzbərləməyinizə ehtiyyac yoxdur.Bir neçə xətalara dair nümunələr hazırladığımdan dolayı mövzunu mənimsəyəcəksiniz." 109 | ] 110 | }, 111 | { 112 | "cell_type": "code", 113 | "execution_count": 5, 114 | "metadata": {}, 115 | "outputs": [ 116 | { 117 | "name": "stdout", 118 | "output_type": "stream", 119 | "text": [ 120 | "\n", 121 | "\n", 122 | "try:\n", 123 | " kodlar.......\n", 124 | "except:\n", 125 | " print(istifadəçiyə mesaj göndər.....)\n", 126 | "\n", 127 | "\n" 128 | ] 129 | } 130 | ], 131 | "source": [ 132 | "print(\"\"\"\n", 133 | "\n", 134 | "try:\n", 135 | " kodlar.......\n", 136 | "except:\n", 137 | " print(istifadəçiyə mesaj göndər.....)\n", 138 | "\n", 139 | "\"\"\")" 140 | ] 141 | }, 142 | { 143 | "cell_type": "markdown", 144 | "metadata": {}, 145 | "source": [ 146 | "Yuxarıda nümunə üçün xəta və istisnaların yazılış qaydasını göstərdim.Prinsip etibarı ilə iki hissədən try bloku daxilində çalışacaq kodlarımız və müstəsna halda baş verəcək xəta,digəri exception bloku daxilinə baş verəcək xətaları istifadəçiyə bildiriş formasında göndərmək.İrəliləyən dərslərdə digər yazılış sintaksislərini göstərəcəm" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 23, 152 | "metadata": {}, 153 | "outputs": [ 154 | { 155 | "name": "stdout", 156 | "output_type": "stream", 157 | "text": [ 158 | "Celsium:12\n" 159 | ] 160 | }, 161 | { 162 | "ename": "TypeError", 163 | "evalue": "unsupported operand type(s) for /: 'str' and 'int'", 164 | "output_type": "error", 165 | "traceback": [ 166 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 167 | "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", 168 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mF\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mtemprature\u001b[0m \u001b[1;33m*\u001b[0m \u001b[1;36m9\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m32\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m'Converted :{:.2f}F'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mF\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 7\u001b[1;33m \u001b[0mFahrenheit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 8\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", 169 | "\u001b[1;32m\u001b[0m in \u001b[0;36mFahrenheit\u001b[1;34m(temprature)\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mfunksiya\u001b[0m \u001b[0mselsi\u001b[0m \u001b[0mcinsindən\u001b[0m \u001b[0mtemperaturu\u001b[0m \u001b[0mfarnheyt\u001b[0m \u001b[0mcinsinə\u001b[0m \u001b[0mçevirir\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \"\"\"\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mF\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mtemprature\u001b[0m \u001b[1;33m*\u001b[0m \u001b[1;36m9\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m32\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;34m'Converted :{:.2f}F'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mF\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mFahrenheit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 170 | "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for /: 'str' and 'int'" 171 | ] 172 | } 173 | ], 174 | "source": [ 175 | "def Fahrenheit(temprature=input('Celsium:')):\n", 176 | " \"\"\"\n", 177 | " funksiya selsi cinsindən temperaturu farnheyt cinsinə çevirir\n", 178 | " \"\"\"\n", 179 | " F = (temprature * 9/5) + 32\n", 180 | " return ('Converted :{:.2f}F'.format(F))\n", 181 | "Fahrenheit()\n", 182 | " \n" 183 | ] 184 | }, 185 | { 186 | "cell_type": "markdown", 187 | "metadata": {}, 188 | "source": [ 189 | "Yuxarıda funksiya tərtib etdik və xəta aldıq.Bilirikki input funksiyasından geri dönən dəyərlər sətir tipində(string) olduğu üçün hesablama doğru aparılmadı" 190 | ] 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": 24, 195 | "metadata": {}, 196 | "outputs": [ 197 | { 198 | "name": "stdout", 199 | "output_type": "stream", 200 | "text": [ 201 | "Celsium:12\n", 202 | "Xəta\n" 203 | ] 204 | } 205 | ], 206 | "source": [ 207 | "def Fahrenheit(temprature=input('Celsium:')):\n", 208 | " \"\"\"\n", 209 | " funksiya selsi cinsindən temperaturu farnheyt cinsinə çevirir\n", 210 | " \"\"\"\n", 211 | " try:\n", 212 | " F = (temprature * 9/5) + 32\n", 213 | " return ('Converted :{:.2f}F'.format(F))\n", 214 | " except:\n", 215 | " print('Xəta')\n", 216 | "Fahrenheit()" 217 | ] 218 | }, 219 | { 220 | "cell_type": "markdown", 221 | "metadata": {}, 222 | "source": [ 223 | "Nəticədə funksiyamız daxilində try bloku hazırladıq.Və ardından except blokuna əgər xəta baş verərsə print() funksiyası ilə istifadəçiyə bildiriş göndərdik" 224 | ] 225 | }, 226 | { 227 | "cell_type": "markdown", 228 | "metadata": {}, 229 | "source": [ 230 | "və ya" 231 | ] 232 | }, 233 | { 234 | "cell_type": "code", 235 | "execution_count": 30, 236 | "metadata": {}, 237 | "outputs": [ 238 | { 239 | "name": "stdout", 240 | "output_type": "stream", 241 | "text": [ 242 | "Celsium:!!!!--as\n", 243 | "Xəta.....\n" 244 | ] 245 | } 246 | ], 247 | "source": [ 248 | "def Fahrenheit(temprature):\n", 249 | " \"\"\"\n", 250 | " funksiya selsi cinsindən temperaturu farnheyt cinsinə çevirir\n", 251 | " \"\"\"\n", 252 | " try:\n", 253 | " F = (int(temprature) * 9/5) + 32\n", 254 | " return ('Converted :{:.2f}F'.format(F))\n", 255 | " except ValueError:\n", 256 | " print('Xəta.....')\n", 257 | "Fahrenheit(input('Celsium:'))" 258 | ] 259 | }, 260 | { 261 | "cell_type": "code", 262 | "execution_count": 31, 263 | "metadata": {}, 264 | "outputs": [ 265 | { 266 | "ename": "ZeroDivisionError", 267 | "evalue": "division by zero", 268 | "output_type": "error", 269 | "traceback": [ 270 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 271 | "\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", 272 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;36m1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 273 | "\u001b[1;31mZeroDivisionError\u001b[0m: division by zero" 274 | ] 275 | } 276 | ], 277 | "source": [ 278 | "1/0" 279 | ] 280 | }, 281 | { 282 | "cell_type": "markdown", 283 | "metadata": {}, 284 | "source": [ 285 | "Yuxarıdakı xətanın tipi ZeroDivisionError -dur.Misal olaraq hesablayıcı proqram hazırlasanız istifadəçi 0-a bölmə əməlini yazarsa xəta ilə nəticələnib proqram sonlandırılacaq.Biz öncədən bu xətanı qabaqlaya bilərik" 286 | ] 287 | }, 288 | { 289 | "cell_type": "code", 290 | "execution_count": 51, 291 | "metadata": {}, 292 | "outputs": [], 293 | "source": [ 294 | "def toplama(a,b):\n", 295 | " \"\"\"\n", 296 | " funksiya toplama əməlini yerinə yetirir\n", 297 | " \"\"\"\n", 298 | " return ('Cavab:{}'.format(a+b))\n", 299 | "def çıxma(a,b):\n", 300 | " \"\"\"\n", 301 | " funksiya çıxma əməlini yerinə yetirir\n", 302 | " \"\"\"\n", 303 | " return ('Cavab:{}'.format(a-b))\n", 304 | "def vurma(a,b):\n", 305 | " \"\"\"\n", 306 | " funksiya vurma əməlini yerinə yetirir\n", 307 | " \"\"\"\n", 308 | " return ('Cavab:{}'.format(a*b))\n", 309 | "def bölmə(a,b):\n", 310 | " \"\"\"\n", 311 | " funksiya bölmə əməlini yerinə yetirir\n", 312 | " \"\"\"\n", 313 | " return ('Cavab:{}'.format(a/b)) \n" 314 | ] 315 | }, 316 | { 317 | "cell_type": "markdown", 318 | "metadata": {}, 319 | "source": [ 320 | "Yuxarıda 4 sayda riyazi əməliyyatı hesablayacaq funksiya hazırladıq" 321 | ] 322 | }, 323 | { 324 | "cell_type": "code", 325 | "execution_count": 52, 326 | "metadata": {}, 327 | "outputs": [ 328 | { 329 | "name": "stdout", 330 | "output_type": "stream", 331 | "text": [ 332 | "Əməliyyatı seçin:toplama\n", 333 | "Birinci ədəd:12\n", 334 | "İkinci ədəd:3\n", 335 | "Cavab:15.0\n" 336 | ] 337 | } 338 | ], 339 | "source": [ 340 | "emeliyyat = input('Əməliyyatı seçin:')\n", 341 | "a = input('Birinci ədəd:')\n", 342 | "b = input('İkinci ədəd:')\n", 343 | "try:\n", 344 | " if emeliyyat == 'toplama':\n", 345 | " print(toplama(float(a),float(b)))\n", 346 | " elif emeliyyat == 'çıxma':\n", 347 | " print(çıxma(float(a),float(b)))\n", 348 | " elif emeliyyat == 'vurma':\n", 349 | " print(vurma(float(a),float(b)))\n", 350 | " elif emeliyyat == 'bölmə':\n", 351 | " print(bölmə(float(a),float(b)))\n", 352 | "except ZeroDivisionError:\n", 353 | " print('0-a bölmə xətası')\n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " " 360 | ] 361 | }, 362 | { 363 | "cell_type": "code", 364 | "execution_count": 53, 365 | "metadata": {}, 366 | "outputs": [ 367 | { 368 | "name": "stdout", 369 | "output_type": "stream", 370 | "text": [ 371 | "Əməliyyatı seçin:bölmə\n", 372 | "Birinci ədəd:3\n", 373 | "İkinci ədəd:0\n", 374 | "0-a bölmə xətası\n" 375 | ] 376 | } 377 | ], 378 | "source": [ 379 | "emeliyyat = input('Əməliyyatı seçin:')\n", 380 | "a = input('Birinci ədəd:')\n", 381 | "b = input('İkinci ədəd:')\n", 382 | "try:\n", 383 | " if emeliyyat == 'toplama':\n", 384 | " print(toplama(float(a),float(b)))\n", 385 | " elif emeliyyat == 'çıxma':\n", 386 | " print(çıxma(float(a),float(b)))\n", 387 | " elif emeliyyat == 'vurma':\n", 388 | " print(vurma(float(a),float(b)))\n", 389 | " elif emeliyyat == 'bölmə':\n", 390 | " print(bölmə(float(a),float(b)))\n", 391 | "except ZeroDivisionError:\n", 392 | " print('0-a bölmə xətası')" 393 | ] 394 | }, 395 | { 396 | "cell_type": "code", 397 | "execution_count": null, 398 | "metadata": {}, 399 | "outputs": [], 400 | "source": [] 401 | }, 402 | { 403 | "cell_type": "markdown", 404 | "metadata": {}, 405 | "source": [ 406 | "### except as xəta" 407 | ] 408 | }, 409 | { 410 | "cell_type": "markdown", 411 | "metadata": {}, 412 | "source": [ 413 | "Yuxarıdakı nümunələrdə hər bir xətanı əldə edə bilirdik.Bu hissədə isə həm xətaları cəmləşdirməyi həm də xətanı bir simvola mənimsədib çap edə bilərik." 414 | ] 415 | }, 416 | { 417 | "cell_type": "code", 418 | "execution_count": 6, 419 | "metadata": {}, 420 | "outputs": [ 421 | { 422 | "name": "stdout", 423 | "output_type": "stream", 424 | "text": [ 425 | "bir rəqəm yazın:12\n", 426 | "bir rəqəm yazın:4\n", 427 | "Result: 3.0\n" 428 | ] 429 | } 430 | ], 431 | "source": [ 432 | "try:\n", 433 | " num=int(input('bir rəqəm yazın:'))\n", 434 | " num1=int(input('bir rəqəm yazın:'))\n", 435 | " print('Result:',num/num1)\n", 436 | "except ZeroDivisionError as err:\n", 437 | " print('Xəta oldu,xəta tipi: {}'.format(err))" 438 | ] 439 | }, 440 | { 441 | "cell_type": "code", 442 | "execution_count": 7, 443 | "metadata": {}, 444 | "outputs": [ 445 | { 446 | "name": "stdout", 447 | "output_type": "stream", 448 | "text": [ 449 | "bir rəqəm yazın:4\n", 450 | "bir rəqəm yazın:0\n", 451 | "Xəta oldu,xəta tipi: division by zero\n" 452 | ] 453 | } 454 | ], 455 | "source": [ 456 | "try:\n", 457 | " num=int(input('bir rəqəm yazın:'))\n", 458 | " num1=int(input('bir rəqəm yazın:'))\n", 459 | " print('Result:',num/num1)\n", 460 | "except ZeroDivisionError as err:\n", 461 | " print('Xəta oldu,xəta tipi: {}'.format(err))" 462 | ] 463 | }, 464 | { 465 | "cell_type": "markdown", 466 | "metadata": {}, 467 | "source": [ 468 | "Yuxarıdakı nümunədə xətanı err ifadəsinə mənimsətdik" 469 | ] 470 | }, 471 | { 472 | "cell_type": "markdown", 473 | "metadata": {}, 474 | "source": [ 475 | "Bundan başqa xətaları toplu şəkildə əldə etmək üçün" 476 | ] 477 | }, 478 | { 479 | "cell_type": "code", 480 | "execution_count": 8, 481 | "metadata": {}, 482 | "outputs": [ 483 | { 484 | "name": "stdout", 485 | "output_type": "stream", 486 | "text": [ 487 | "bir rəqəm yazın:\n", 488 | "Xəta oldu,xəta tipi: invalid literal for int() with base 10: ''\n" 489 | ] 490 | } 491 | ], 492 | "source": [ 493 | "try:\n", 494 | " num=int(input('bir rəqəm yazın:'))\n", 495 | " num1=int(input('bir rəqəm yazın:'))\n", 496 | " print('Result:',num/num1)\n", 497 | "except (ValueError,ZeroDivisionError) as err:\n", 498 | " print('Xəta oldu,xəta tipi: {}'.format(err))" 499 | ] 500 | }, 501 | { 502 | "cell_type": "markdown", 503 | "metadata": {}, 504 | "source": [ 505 | "Heç bir ifadə yazmadan enter düyməsini sıxdıqda ValueError xətası aldığımız üçün except bloku işə düşərək err ifadəsi ilə xətanı əldə edirik daha sonra print() funksiyası ilə ekrana çap edə bildik" 506 | ] 507 | }, 508 | { 509 | "cell_type": "code", 510 | "execution_count": null, 511 | "metadata": {}, 512 | "outputs": [ 513 | { 514 | "name": "stdout", 515 | "output_type": "stream", 516 | "text": [ 517 | "bir rəqəm yazın:12\n", 518 | "bir rəqəm yazın:5\n", 519 | "2.4\n", 520 | "bir rəqəm yazın:3\n", 521 | "bir rəqəm yazın:0\n", 522 | "0-a bölmək olmaz\n", 523 | "bir rəqəm yazın:11\n", 524 | "bir rəqəm yazın:\n", 525 | "sadəcə rəqəm daxil edin\n", 526 | "bir rəqəm yazın:4\n", 527 | "bir rəqəm yazın:34\n", 528 | "0.11764705882352941\n", 529 | "bir rəqəm yazın:q\n", 530 | "sadəcə rəqəm daxil edin\n" 531 | ] 532 | } 533 | ], 534 | "source": [ 535 | "while True:\n", 536 | " try:\n", 537 | " num=int(input('bir rəqəm yazın:'))\n", 538 | " num1=int(input('bir rəqəm yazın:'))\n", 539 | " except ValueError:\n", 540 | " print('sadəcə rəqəm daxil edin')\n", 541 | " else:\n", 542 | " try:\n", 543 | " print(num/num1)\n", 544 | " except ZeroDivisionError:\n", 545 | " print('0-a bölmək olmaz')" 546 | ] 547 | }, 548 | { 549 | "cell_type": "markdown", 550 | "metadata": {}, 551 | "source": [ 552 | "Yuxarıdakı nümunədə else operatorundan istifadə edərək xəta baş verəcək halda ayrı ayrı blokları çalışdıraraq nəticələri əldə edə bildik." 553 | ] 554 | }, 555 | { 556 | "cell_type": "code", 557 | "execution_count": null, 558 | "metadata": {}, 559 | "outputs": [], 560 | "source": [] 561 | } 562 | ], 563 | "metadata": { 564 | "kernelspec": { 565 | "display_name": "Python 3", 566 | "language": "python", 567 | "name": "python3" 568 | }, 569 | "language_info": { 570 | "codemirror_mode": { 571 | "name": "ipython", 572 | "version": 3 573 | }, 574 | "file_extension": ".py", 575 | "mimetype": "text/x-python", 576 | "name": "python", 577 | "nbconvert_exporter": "python", 578 | "pygments_lexer": "ipython3", 579 | "version": "3.6.10" 580 | } 581 | }, 582 | "nbformat": 4, 583 | "nbformat_minor": 2 584 | } 585 | -------------------------------------------------------------------------------- /JupyterFile/Files/Reading and Writing Files in Python.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "### Python dili ilə Faylların oxunması,yazılması mövzusu" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "

Müxtəlif proqramlaşdırma dillərində faylların oxunması yazılması mövcuddur.Biz python dili ilə txt mətin tipli fayllar hazırlayacağıq.mətn faylları ən sadə mətn formatında olub məlumatlar toplusudur.Həmçinin biz faylı yenidən yaradıb məlumatlarımızı əlavə edə bilərik.Eləcədə var olun mətn faylı daxilində məlumatları əldə edə,dəyişikliyi tətbiq edə bilərik.mətn fayllarından başqa digər fayl tipləri də mövcuddur misal olaraq json(JavaScript Object Notation),zip(sıxıştırılmış),pb(PureBasic) və sairə.Bu fayl tipləri hər birinin özəl xüsusiyyətləri mövcuddur.mətn tipli fayllardan savayı digər tipli faylların oxunuşu eyni sintaksislə deyil,çünki bu tip faylların bəzisi digər skript dillər üçün nəzərdə tutulduğundan oxunma metodu python dilində kitabxanalar vasitəsilə yerinə yetirilir.İrəliləyən dərslərdə digər fayl tiplərindən də istifadə edəcəyik.Hələlik mətn tipli txt faylın oxunması yazılması tərtibatı kimi əsas meyarları öyrənək.

" 15 | ] 16 | }, 17 | { 18 | "cell_type": "markdown", 19 | "metadata": {}, 20 | "source": [ 21 | "open() funksiyası" 22 | ] 23 | }, 24 | { 25 | "cell_type": "markdown", 26 | "metadata": {}, 27 | "source": [ 28 | "list() tuple() print() int() funksiyaları olduğu kimi open() funksiyası da python dili ilə gələn kök funksiyadır." 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 6, 34 | "metadata": {}, 35 | "outputs": [], 36 | "source": [ 37 | "#help(open)" 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "metadata": {}, 43 | "source": [ 44 | " help(open) yazaraq funksiya haqqında məlumatları əldə edə bilərsiniz.Həmçinin keçəcəyimiz fayl modları da funksiya daxilində göstərilmişdir" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 4, 50 | "metadata": {}, 51 | "outputs": [ 52 | { 53 | "name": "stdout", 54 | "output_type": "stream", 55 | "text": [ 56 | "\n", 57 | "\n", 58 | "Character Meaning\n", 59 | " --------- ---------------------------------------------------------------\n", 60 | " 'r' open for reading (default)\n", 61 | " 'w' open for writing, truncating the file first\n", 62 | " 'x' create a new file and open it for writing\n", 63 | " 'a' open for writing, appending to the end of the file if it exists\n", 64 | " 'b' binary mode\n", 65 | " 't' text mode (default)\n", 66 | " '+' open a disk file for updating (reading and writing)\n", 67 | " 'U' universal newline mode (deprecated)\n", 68 | " ========= ===============================================================\n", 69 | "\n", 70 | "\n", 71 | "\n", 72 | "\n" 73 | ] 74 | } 75 | ], 76 | "source": [ 77 | "print(\"\"\"\n", 78 | "\n", 79 | "Character Meaning\n", 80 | " --------- ---------------------------------------------------------------\n", 81 | " 'r' open for reading (default)\n", 82 | " 'w' open for writing, truncating the file first\n", 83 | " 'x' create a new file and open it for writing\n", 84 | " 'a' open for writing, appending to the end of the file if it exists\n", 85 | " 'b' binary mode\n", 86 | " 't' text mode (default)\n", 87 | " '+' open a disk file for updating (reading and writing)\n", 88 | " 'U' universal newline mode (deprecated)\n", 89 | " ========= ===============================================================\n", 90 | "\n", 91 | "\n", 92 | "\n", 93 | "\"\"\")" 94 | ] 95 | }, 96 | { 97 | "cell_type": "markdown", 98 | "metadata": {}, 99 | "source": [ 100 | "#### Syntax(sintaksisi-yazılış qaydası)" 101 | ] 102 | }, 103 | { 104 | "cell_type": "markdown", 105 | "metadata": {}, 106 | "source": [ 107 | " f = open(\"fayl_adı\", \"mod\") " 108 | ] 109 | }, 110 | { 111 | "cell_type": "markdown", 112 | "metadata": {}, 113 | "source": [ 114 | "open funksiyasının susmaya(default) görə ala bildiyi parampetrlər mövcuddur ki cell üzərində shift + tab düyməsini sıxsanız qarşısınıza çıxacaqdır" 115 | ] 116 | }, 117 | { 118 | "cell_type": "markdown", 119 | "metadata": {}, 120 | "source": [ 121 | "f = open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)\n", 122 | "

Yuxarıda qeyd olunan open funksiyasının susmaya görə aldığı parametrlərdir

" 123 | ] 124 | }, 125 | { 126 | "cell_type": "code", 127 | "execution_count": 9, 128 | "metadata": {}, 129 | "outputs": [ 130 | { 131 | "ename": "FileNotFoundError", 132 | "evalue": "[Errno 2] No such file or directory: 'data.txt'", 133 | "output_type": "error", 134 | "traceback": [ 135 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 136 | "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", 137 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"data.txt\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 138 | "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'data.txt'" 139 | ] 140 | } 141 | ], 142 | "source": [ 143 | "f = open(\"data.txt\") " 144 | ] 145 | }, 146 | { 147 | "cell_type": "markdown", 148 | "metadata": {}, 149 | "source": [ 150 | "FileNotFoundError xəta aldıq.susmaya görə fayl modu r(read) olduğu üçün mütləqdirki fayl sistemdə mövcud olmalıdır.fayl cari kataloqda axtarış edilir.xətada deyildiyi kimi fayl və ya qovluğuq mövcud deyil" 151 | ] 152 | }, 153 | { 154 | "cell_type": "markdown", 155 | "metadata": {}, 156 | "source": [ 157 | "#### Gəlin fayl modlarına dair təsvirlərə(Description) nəzər yetirək" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": 11, 163 | "metadata": {}, 164 | "outputs": [ 165 | { 166 | "name": "stdout", 167 | "output_type": "stream", 168 | "text": [ 169 | "\n", 170 | "\n", 171 | "Character Meaning \n", 172 | " --------- ---------------------------------------------------------------\n", 173 | " 'r' faylı oxuma modunda açar.Əgər sisteminizdə həmin adda\n", 174 | " fayl yoxdursa siz xəta mesajı alacaqsınız\n", 175 | " \n", 176 | " 'w' fayla ifadə yazmaq üçün istifadə olunur.Bu modda olan fayl əgər\n", 177 | " sisteminizdə varsa,ifadələr silinəcəkdir.Əgər yoxdursa python bizə qeyd\n", 178 | " etdiyimiz ada uyğun bir fayl açaraq modunu da w- yaradacaq\n", 179 | " \n", 180 | " 'x' faylı yazmaq modunda açır.Sisteminizdə əgər qeyd etdiyiniz adda fayl\n", 181 | " varsa python sizə xəta mesajı verəcəkdir.\n", 182 | " \n", 183 | " 'a' Bir fayla ifadələr yazmaq hüququ verir.Sisteminizdə mövcud adda fayl\n", 184 | " varsa mod,fayl daxilindəki ifadələrə toxunmadan yeni ifadənizi fayl sonuna\n", 185 | " əlavə edəcək.Əgər qeyd etdiyiniz adda fayl yoxdursa python sizin üçün\n", 186 | " bu modda yeni bir fayl yaradacaq.\n", 187 | " 'b' Faylları ikili rejimdə(binar mod) açır.\n", 188 | " \n", 189 | " '+' Bu mod tək işlənməyərək digər modlara əlavə olunaraq bir neçə\n", 190 | " funksiyanı yerinə yetirir.Yəni bir fayla yazma,oxuma hüququ verir.\n", 191 | " \n", 192 | " ========= ===============================================================\n", 193 | "\n", 194 | "\n", 195 | "\n", 196 | "\n" 197 | ] 198 | } 199 | ], 200 | "source": [ 201 | "print(\"\"\"\n", 202 | "\n", 203 | "Character Meaning \n", 204 | " --------- ---------------------------------------------------------------\n", 205 | " 'r' faylı oxuma modunda açar.Əgər sisteminizdə həmin adda\n", 206 | " fayl yoxdursa siz xəta mesajı alacaqsınız\n", 207 | " \n", 208 | " 'w' fayla ifadə yazmaq üçün istifadə olunur.Bu modda olan fayl əgər\n", 209 | " sisteminizdə varsa,ifadələr silinəcəkdir.Əgər yoxdursa python bizə qeyd\n", 210 | " etdiyimiz ada uyğun bir fayl açaraq modunu da w- yaradacaq\n", 211 | " \n", 212 | " 'x' faylı yazmaq modunda açır.Sisteminizdə əgər qeyd etdiyiniz adda fayl\n", 213 | " varsa python sizə xəta mesajı verəcəkdir.\n", 214 | " \n", 215 | " 'a' Bir fayla ifadələr yazmaq hüququ verir.Sisteminizdə mövcud adda fayl\n", 216 | " varsa mod,fayl daxilindəki ifadələrə toxunmadan yeni ifadənizi fayl sonuna\n", 217 | " əlavə edəcək.Əgər qeyd etdiyiniz adda fayl yoxdursa python sizin üçün\n", 218 | " bu modda yeni bir fayl yaradacaq.\n", 219 | " 'b' Faylları ikili rejimdə(binar mod) açır.\n", 220 | " \n", 221 | " '+' Bu mod tək işlənməyərək digər modlara əlavə olunaraq bir neçə\n", 222 | " funksiyanı yerinə yetirir.Yəni bir fayla yazma,oxuma hüququ verir.\n", 223 | " \n", 224 | " ========= ===============================================================\n", 225 | "\n", 226 | "\n", 227 | "\n", 228 | "\"\"\")" 229 | ] 230 | }, 231 | { 232 | "cell_type": "markdown", 233 | "metadata": {}, 234 | "source": [ 235 | "Yuxarıda qeyd olunanlar davamlı istifadə edəcəyimiz fayl modlarıdır.Asta-asta kodlarımızı yazaq" 236 | ] 237 | }, 238 | { 239 | "cell_type": "code", 240 | "execution_count": 12, 241 | "metadata": {}, 242 | "outputs": [], 243 | "source": [ 244 | "f=open('data.txt',mode='w')" 245 | ] 246 | }, 247 | { 248 | "cell_type": "markdown", 249 | "metadata": {}, 250 | "source": [ 251 | "cari kataloqa nəzər yetirsəniz data.txt faylı yaradıldı.Faylımız boşdur.Faylı siz cari kataloqdan savayı istənilən(icazəli) qovluqda da hazırlaya bilərsiniz.\n", 252 | "

f=open('C:\\data.txt',mode='w')

" 253 | ] 254 | }, 255 | { 256 | "cell_type": "code", 257 | "execution_count": 15, 258 | "metadata": {}, 259 | "outputs": [], 260 | "source": [ 261 | " f=open('DATA/data.txt',mode='w') #DATA qovluğu hazırlayıb data.txt faylınının həmin qovluqda yaradılmasını təmin etdik" 262 | ] 263 | }, 264 | { 265 | "cell_type": "markdown", 266 | "metadata": {}, 267 | "source": [ 268 | "#### Fayl metodları" 269 | ] 270 | }, 271 | { 272 | "cell_type": "markdown", 273 | "metadata": {}, 274 | "source": [ 275 | "write metodu - metod ifadələri fayla yazmaq üçün istifadə olunur.hazırladığımız faylı f adlı dəyişənə mənimsətdik.diqqət etsəniz f. yazıb tab düyməsini sıxsanız metodlar siyahı şəklində görünəcəkdir.Metoddan istifadə edərək məlumatları fayla yazaq" 276 | ] 277 | }, 278 | { 279 | "cell_type": "code", 280 | "execution_count": 17, 281 | "metadata": {}, 282 | "outputs": [ 283 | { 284 | "ename": "UnicodeEncodeError", 285 | "evalue": "'charmap' codec can't encode character '\\u015f' in position 16: character maps to ", 286 | "output_type": "error", 287 | "traceback": [ 288 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 289 | "\u001b[1;31mUnicodeEncodeError\u001b[0m Traceback (most recent call last)", 290 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'DATA/data.txt'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mmode\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'w'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Python proqramlaşdırma dili'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 291 | "\u001b[1;32mC:\\ProgramData\\Anaconda3\\lib\\encodings\\cp1252.py\u001b[0m in \u001b[0;36mencode\u001b[1;34m(self, input, final)\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mIncrementalEncoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIncrementalEncoder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mencode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfinal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 19\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcharmap_encode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0merrors\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mencoding_table\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 20\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 292 | "\u001b[1;31mUnicodeEncodeError\u001b[0m: 'charmap' codec can't encode character '\\u015f' in position 16: character maps to " 293 | ] 294 | } 295 | ], 296 | "source": [ 297 | "f=open('DATA/data.txt',mode='w')\n", 298 | "f.write('Python proqramlaşdırma dili')" 299 | ] 300 | }, 301 | { 302 | "cell_type": "markdown", 303 | "metadata": {}, 304 | "source": [ 305 | "UnicodeEncodeError: xətası aldıq.Azərbaycan dilində ifadələri yazdıra bilmədik.Əlifbamızda olan dilimizə mənsim bəzi hərflər utf-8 kodlama sisteminə aid olduğundan open() funksiyasının ala bildiyi encoding parametri, kodlama sistemindən istifadə edəcəyik.susmaya görə None arqumentini alır bu parametr." 306 | ] 307 | }, 308 | { 309 | "cell_type": "code", 310 | "execution_count": 19, 311 | "metadata": {}, 312 | "outputs": [], 313 | "source": [ 314 | "f=open('DATA/data.txt',mode='w',encoding='utf-8')\n", 315 | "data = f.write('Python proqramlaşdırma dili')" 316 | ] 317 | }, 318 | { 319 | "cell_type": "code", 320 | "execution_count": 20, 321 | "metadata": {}, 322 | "outputs": [ 323 | { 324 | "name": "stdout", 325 | "output_type": "stream", 326 | "text": [ 327 | "27\n" 328 | ] 329 | } 330 | ], 331 | "source": [ 332 | "print(data)" 333 | ] 334 | }, 335 | { 336 | "cell_type": "code", 337 | "execution_count": 22, 338 | "metadata": {}, 339 | "outputs": [ 340 | { 341 | "name": "stdout", 342 | "output_type": "stream", 343 | "text": [ 344 | "\n", 345 | "\n" 346 | ] 347 | } 348 | ], 349 | "source": [ 350 | "print(type(f))\n", 351 | "print(type(data))" 352 | ] 353 | }, 354 | { 355 | "cell_type": "code", 356 | "execution_count": 23, 357 | "metadata": {}, 358 | "outputs": [ 359 | { 360 | "name": "stdout", 361 | "output_type": "stream", 362 | "text": [ 363 | "25\n" 364 | ] 365 | } 366 | ], 367 | "source": [ 368 | "data1 = f.write('Java proqramlaşdırma dili')\n", 369 | "print(data1)" 370 | ] 371 | }, 372 | { 373 | "cell_type": "markdown", 374 | "metadata": {}, 375 | "source": [ 376 | "Məlumatlar əlavə etdik,amma yazdığımız məlumatlar faylda saxlanılmadı.Bunun üçün açdığımız faylı məlumat daxil etdikdən sonra mütləq bağlamalıyıq.close() metodundan istifadə edəcəyik.Məlumatları daxil etdikdən sonra ekranda 27 çap olundu.Bu bayt cinsindən məlumatdır.Yəni yazdığımız simvollar toplam 27 bayt tutur." 377 | ] 378 | }, 379 | { 380 | "cell_type": "code", 381 | "execution_count": 25, 382 | "metadata": {}, 383 | "outputs": [], 384 | "source": [ 385 | "f=open('DATA/data.txt',mode='w',encoding='utf-8')\n", 386 | "f.write('Python proqramlaşdırma dili')\n", 387 | "f.write('Java proqramlaşdırma dili')\n", 388 | "f.close()" 389 | ] 390 | }, 391 | { 392 | "cell_type": "markdown", 393 | "metadata": {}, 394 | "source": [ 395 | "Hər iki ifadə faylda bir sətir boyu yazıldı.Yeni sətrə keçid üçün \\n xüsusi işarəsindən istifadə edəcəyik" 396 | ] 397 | }, 398 | { 399 | "cell_type": "code", 400 | "execution_count": 28, 401 | "metadata": {}, 402 | "outputs": [], 403 | "source": [ 404 | "f=open('DATA/data.txt',mode='w',encoding='utf-8')\n", 405 | "f.write('Python proqramlaşdırma dili')\n", 406 | "f.write('\\nJava proqramlaşdırma dili') #\\n ilə ifadəni növbəti sətirə ötürdük\n", 407 | "f.close() #faylı bağlamağı unutmuruq" 408 | ] 409 | }, 410 | { 411 | "cell_type": "markdown", 412 | "metadata": {}, 413 | "source": [ 414 | "İki sətirdən ibarət ifadələri fayldan oxuyaq.Bunun üçün fayl.read() metodundan istifadə edəcəyik" 415 | ] 416 | }, 417 | { 418 | "cell_type": "code", 419 | "execution_count": 38, 420 | "metadata": {}, 421 | "outputs": [ 422 | { 423 | "name": "stdout", 424 | "output_type": "stream", 425 | "text": [ 426 | "Python proqramlaşdırma diliJava proqramlaşdırma dilili\n" 427 | ] 428 | } 429 | ], 430 | "source": [ 431 | "data = open('DATA/data.txt',mode='r',encoding='utf8') # r modu ilə faylı oxuyuruq.\n", 432 | "print(data.read())\n", 433 | "# read() metodu ilə məlumatları oxuduq" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 39, 439 | "metadata": {}, 440 | "outputs": [ 441 | { 442 | "name": "stdout", 443 | "output_type": "stream", 444 | "text": [ 445 | "\n" 446 | ] 447 | } 448 | ], 449 | "source": [ 450 | "print(data.read())" 451 | ] 452 | }, 453 | { 454 | "cell_type": "markdown", 455 | "metadata": {}, 456 | "source": [ 457 | "Amma təkrar oxumaq istədikdə ekrana heç bir məlumat çap olunmadı.Bunun səbəbi,metod fayl məlumatını sətir-sətir oxuyub son sətrin əvvəlində dayanır və təkrar çağırdıqda qaldığı son yerdən oxuduğu üçün bu vəziyyətlə qarşılaşırıq.Alternativ olaraq faylların seek metodundan istifadə edərək fayl sətirlərində gəzinə bilərik.seek metodu bayt ardıcıllığı ilə simvollara qayıdır." 458 | ] 459 | }, 460 | { 461 | "cell_type": "code", 462 | "execution_count": 40, 463 | "metadata": {}, 464 | "outputs": [], 465 | "source": [ 466 | "f=open('DATA/data.txt',mode='w',encoding='utf-8')\n", 467 | "f.write('Python proqramlaşdırma dili\\nJava proqramlaşdırma dili\\nC++ proqramlaşdırma dili')#\\n ilə ifadəni növbəti sətirə ötürdük\n", 468 | "f.close() #faylı bağlamağı unutmuruq" 469 | ] 470 | }, 471 | { 472 | "cell_type": "code", 473 | "execution_count": 41, 474 | "metadata": {}, 475 | "outputs": [ 476 | { 477 | "name": "stdout", 478 | "output_type": "stream", 479 | "text": [ 480 | "Python proqramlaşdırma dili\n", 481 | "Java proqramlaşdırma dili\n", 482 | "C++ proqramlaşdırma dili\n" 483 | ] 484 | } 485 | ], 486 | "source": [ 487 | "data = open('DATA/data.txt',mode='r',encoding='utf8') # r modu ilə faylı oxuyuruq.\n", 488 | "print(data.read())\n", 489 | "# read() metodu ilə məlumatları oxuduq" 490 | ] 491 | }, 492 | { 493 | "cell_type": "code", 494 | "execution_count": 43, 495 | "metadata": {}, 496 | "outputs": [ 497 | { 498 | "name": "stdout", 499 | "output_type": "stream", 500 | "text": [ 501 | "Python proqramlaşdırma dili\n", 502 | "Java proqramlaşdırma dili\n", 503 | "C++ proqramlaşdırma dili\n" 504 | ] 505 | } 506 | ], 507 | "source": [ 508 | "data.seek(0) #ilk s'trə qayıdırıq\n", 509 | "print(data.read())" 510 | ] 511 | }, 512 | { 513 | "cell_type": "code", 514 | "execution_count": 48, 515 | "metadata": {}, 516 | "outputs": [ 517 | { 518 | "name": "stdout", 519 | "output_type": "stream", 520 | "text": [ 521 | " proqramlaşdırma dili\n", 522 | "Java proqramlaşdırma dili\n", 523 | "C++ proqramlaşdırma dili\n" 524 | ] 525 | } 526 | ], 527 | "source": [ 528 | "data.seek(6) #bayt ardıcıllığı\n", 529 | "print(data.read())" 530 | ] 531 | }, 532 | { 533 | "cell_type": "markdown", 534 | "metadata": {}, 535 | "source": [ 536 | "fayl.tell() metodu.metod ilə faylın tutduğu bayt həcmini öyrənə bilərik" 537 | ] 538 | }, 539 | { 540 | "cell_type": "code", 541 | "execution_count": 49, 542 | "metadata": {}, 543 | "outputs": [ 544 | { 545 | "name": "stdout", 546 | "output_type": "stream", 547 | "text": [ 548 | "86\n" 549 | ] 550 | } 551 | ], 552 | "source": [ 553 | "print(data.tell())" 554 | ] 555 | }, 556 | { 557 | "cell_type": "markdown", 558 | "metadata": {}, 559 | "source": [ 560 | "

Bayt (ing. byte) — əsas informasiya vahidi olub 8 bitə bərabər hesab olunur. Rəqəmli informasiyanın saxlanması və emal olunması vahididir. Klaviaturadan daxil edilən hər hansı bir simvol kompüterin yaddaşında 1 bayt yer tutur.\n", 561 | "\n", 562 | "Məsələn, \"Kompüterin yaddaşı\" sözləri kompüterin yaddaşında 18 bayt (18*8=144 bit) yer tutur (17 hərf + 1 boşluq).

" 563 | ] 564 | }, 565 | { 566 | "cell_type": "code", 567 | "execution_count": 57, 568 | "metadata": {}, 569 | "outputs": [ 570 | { 571 | "name": "stdout", 572 | "output_type": "stream", 573 | "text": [ 574 | "Python proqramlaşdırma dili\n", 575 | "Java proqramlaşdırma dili\n", 576 | "C++ proqramlaşdırma dili\n" 577 | ] 578 | } 579 | ], 580 | "source": [ 581 | "def fayl(folder,file):\n", 582 | " try:\n", 583 | " data = open(folder+file,mode='r',encoding='utf8')\n", 584 | " print(data.read())\n", 585 | " except (FileNotFoundError):\n", 586 | " print('Fayl tapılmadı(və ya qovluq ünvanı doğru deyil)')\n", 587 | "\n", 588 | "fayl('DATA/','data.txt')" 589 | ] 590 | }, 591 | { 592 | "cell_type": "code", 593 | "execution_count": 59, 594 | "metadata": {}, 595 | "outputs": [ 596 | { 597 | "name": "stdout", 598 | "output_type": "stream", 599 | "text": [ 600 | "Fayl tapılmadı(və ya qovluq ünvanı doğru deyil)\n" 601 | ] 602 | } 603 | ], 604 | "source": [ 605 | "def fayl(folder,file):\n", 606 | " try:\n", 607 | " data = open(folder+file,mode='r',encoding='utf8')\n", 608 | " print(data.read())\n", 609 | " except (FileNotFoundError):\n", 610 | " print('Fayl tapılmadı(və ya qovluq ünvanı doğru deyil)')\n", 611 | "\n", 612 | "fayl('C:/','data.txt')" 613 | ] 614 | }, 615 | { 616 | "cell_type": "markdown", 617 | "metadata": {}, 618 | "source": [ 619 | "readline() metodu" 620 | ] 621 | }, 622 | { 623 | "cell_type": "code", 624 | "execution_count": 63, 625 | "metadata": {}, 626 | "outputs": [ 627 | { 628 | "name": "stdout", 629 | "output_type": "stream", 630 | "text": [ 631 | "Python proqramlaşdırma dili\n", 632 | "\n" 633 | ] 634 | } 635 | ], 636 | "source": [ 637 | "data = open('DATA/data.txt',mode='r+',encoding='utf8')\n", 638 | "print(data.readline())\n", 639 | " \n", 640 | " " 641 | ] 642 | }, 643 | { 644 | "cell_type": "code", 645 | "execution_count": 64, 646 | "metadata": {}, 647 | "outputs": [ 648 | { 649 | "name": "stdout", 650 | "output_type": "stream", 651 | "text": [ 652 | "Java proqramlaşdırma dili\n", 653 | "\n" 654 | ] 655 | } 656 | ], 657 | "source": [ 658 | "print(data.readline())" 659 | ] 660 | }, 661 | { 662 | "cell_type": "code", 663 | "execution_count": 65, 664 | "metadata": {}, 665 | "outputs": [ 666 | { 667 | "name": "stdout", 668 | "output_type": "stream", 669 | "text": [ 670 | "C++ proqramlaşdırma dili\n" 671 | ] 672 | } 673 | ], 674 | "source": [ 675 | "print(data.readline())" 676 | ] 677 | }, 678 | { 679 | "cell_type": "code", 680 | "execution_count": 66, 681 | "metadata": {}, 682 | "outputs": [ 683 | { 684 | "name": "stdout", 685 | "output_type": "stream", 686 | "text": [ 687 | "\n" 688 | ] 689 | } 690 | ], 691 | "source": [ 692 | "print(data.readline())" 693 | ] 694 | }, 695 | { 696 | "cell_type": "markdown", 697 | "metadata": {}, 698 | "source": [ 699 | "Metod,ilk sətirdən başlayaraq elementləri oxuyur." 700 | ] 701 | }, 702 | { 703 | "cell_type": "markdown", 704 | "metadata": {}, 705 | "source": [ 706 | "readlines() metodu" 707 | ] 708 | }, 709 | { 710 | "cell_type": "markdown", 711 | "metadata": {}, 712 | "source": [ 713 | "Metod,fayl məlumatlarını bütövlükdə əldə edib siyahı formasında tərtib edir.Aşağıdakı kodlarda məlumatları fayldan oxuyub ekrana çap etdik.Daha sonra tipini sorğuya çəkdikdə isə bizə siyahı tipində olduğunu göstərdi" 714 | ] 715 | }, 716 | { 717 | "cell_type": "code", 718 | "execution_count": 70, 719 | "metadata": {}, 720 | "outputs": [ 721 | { 722 | "name": "stdout", 723 | "output_type": "stream", 724 | "text": [ 725 | "['Python proqramlaşdırma dili\\n', 'Java proqramlaşdırma dili\\n', 'C++ proqramlaşdırma dili']\n", 726 | "\n" 727 | ] 728 | } 729 | ], 730 | "source": [ 731 | "data = open('DATA/data.txt',mode='r+',encoding='utf8')\n", 732 | "print(data.readlines())\n", 733 | "print(type(data.readlines()))" 734 | ] 735 | }, 736 | { 737 | "cell_type": "code", 738 | "execution_count": 76, 739 | "metadata": {}, 740 | "outputs": [ 741 | { 742 | "name": "stdout", 743 | "output_type": "stream", 744 | "text": [ 745 | "Python proqramlaşdırma dili\n", 746 | "\n", 747 | "Java proqramlaşdırma dili\n", 748 | "\n", 749 | "C++ proqramlaşdırma dili\n" 750 | ] 751 | } 752 | ], 753 | "source": [ 754 | "data = open('DATA/data.txt',mode='r+',encoding='utf8')\n", 755 | "for i in data.readlines():\n", 756 | " print(i)\n", 757 | " " 758 | ] 759 | }, 760 | { 761 | "cell_type": "code", 762 | "execution_count": 77, 763 | "metadata": {}, 764 | "outputs": [ 765 | { 766 | "name": "stdout", 767 | "output_type": "stream", 768 | "text": [ 769 | "1 Python proqramlaşdırma dili\n", 770 | "\n", 771 | "2 Java proqramlaşdırma dili\n", 772 | "\n", 773 | "3 C++ proqramlaşdırma dili\n" 774 | ] 775 | } 776 | ], 777 | "source": [ 778 | "data = open('DATA/data.txt',mode='r+',encoding='utf8')\n", 779 | "sayğac = 0\n", 780 | "for i in data.readlines():\n", 781 | " sayğac+=1\n", 782 | " print(sayğac,i)" 783 | ] 784 | }, 785 | { 786 | "cell_type": "markdown", 787 | "metadata": {}, 788 | "source": [ 789 | "closed metodu" 790 | ] 791 | }, 792 | { 793 | "cell_type": "markdown", 794 | "metadata": {}, 795 | "source": [ 796 | "Metod vasitəsilə faylın açıq olub olmadığı test edilir." 797 | ] 798 | }, 799 | { 800 | "cell_type": "code", 801 | "execution_count": 79, 802 | "metadata": {}, 803 | "outputs": [ 804 | { 805 | "data": { 806 | "text/plain": [ 807 | "False" 808 | ] 809 | }, 810 | "execution_count": 79, 811 | "metadata": {}, 812 | "output_type": "execute_result" 813 | } 814 | ], 815 | "source": [ 816 | "data = open('DATA/data.txt',mode='r+',encoding='utf8')\n", 817 | "data.closed" 818 | ] 819 | }, 820 | { 821 | "cell_type": "code", 822 | "execution_count": 82, 823 | "metadata": {}, 824 | "outputs": [ 825 | { 826 | "data": { 827 | "text/plain": [ 828 | "True" 829 | ] 830 | }, 831 | "execution_count": 82, 832 | "metadata": {}, 833 | "output_type": "execute_result" 834 | } 835 | ], 836 | "source": [ 837 | "data1 = open('DATA/data1.txt',mode='w',encoding='utf8')\n", 838 | "data1.write('Arduino Netduino Raspberry Pi')\n", 839 | "data1.close()\n", 840 | "data1.closed" 841 | ] 842 | }, 843 | { 844 | "cell_type": "markdown", 845 | "metadata": {}, 846 | "source": [ 847 | "truncate() metodu " 848 | ] 849 | }, 850 | { 851 | "cell_type": "markdown", 852 | "metadata": {}, 853 | "source": [ 854 | "Metod vasitəsilə fayl daxilindəki ifadələri silə bilərik." 855 | ] 856 | }, 857 | { 858 | "cell_type": "code", 859 | "execution_count": 86, 860 | "metadata": {}, 861 | "outputs": [], 862 | "source": [ 863 | "data1 = open('DATA/data1.txt',mode='r+',encoding='utf8')\n", 864 | "data1.truncate()\n", 865 | "data1.close()" 866 | ] 867 | }, 868 | { 869 | "cell_type": "markdown", 870 | "metadata": {}, 871 | "source": [ 872 | "mode metodu" 873 | ] 874 | }, 875 | { 876 | "cell_type": "markdown", 877 | "metadata": {}, 878 | "source": [ 879 | "Metod vasitəsilə fayl hansı modda olduğu bildirilir" 880 | ] 881 | }, 882 | { 883 | "cell_type": "code", 884 | "execution_count": 88, 885 | "metadata": {}, 886 | "outputs": [ 887 | { 888 | "data": { 889 | "text/plain": [ 890 | "'r+'" 891 | ] 892 | }, 893 | "execution_count": 88, 894 | "metadata": {}, 895 | "output_type": "execute_result" 896 | } 897 | ], 898 | "source": [ 899 | "data1 = open('DATA/data1.txt',mode='r+',encoding='utf8')\n", 900 | "data1.mode" 901 | ] 902 | }, 903 | { 904 | "cell_type": "markdown", 905 | "metadata": {}, 906 | "source": [ 907 | "name metodu" 908 | ] 909 | }, 910 | { 911 | "cell_type": "code", 912 | "execution_count": 89, 913 | "metadata": {}, 914 | "outputs": [ 915 | { 916 | "data": { 917 | "text/plain": [ 918 | "'DATA/data.txt'" 919 | ] 920 | }, 921 | "execution_count": 89, 922 | "metadata": {}, 923 | "output_type": "execute_result" 924 | } 925 | ], 926 | "source": [ 927 | "data = open('DATA/data.txt',mode='r+',encoding='utf8')\n", 928 | "data.name" 929 | ] 930 | }, 931 | { 932 | "cell_type": "markdown", 933 | "metadata": {}, 934 | "source": [ 935 | "encoding metodu" 936 | ] 937 | }, 938 | { 939 | "cell_type": "code", 940 | "execution_count": 90, 941 | "metadata": {}, 942 | "outputs": [ 943 | { 944 | "data": { 945 | "text/plain": [ 946 | "'utf8'" 947 | ] 948 | }, 949 | "execution_count": 90, 950 | "metadata": {}, 951 | "output_type": "execute_result" 952 | } 953 | ], 954 | "source": [ 955 | "data = open('DATA/data.txt',mode='r+',encoding='utf8')\n", 956 | "data.encoding" 957 | ] 958 | }, 959 | { 960 | "cell_type": "markdown", 961 | "metadata": {}, 962 | "source": [ 963 | "Biz fayllara məlumat əlavə etdikdən sonra həmin faylı close metodu ilə bağlamaq məcburiyyətindəydik.Bundan əlavə python dilində with deyimi varki biz bu ifadə ilə faylı açıb məlumat əlavə etsəkdə close metodundan istifadə etməyəcəyik.Bu deyim həmçinin baza sistemlərində də istifadə olunur.sqlite,pymongo və s" 964 | ] 965 | }, 966 | { 967 | "cell_type": "code", 968 | "execution_count": 120, 969 | "metadata": {}, 970 | "outputs": [ 971 | { 972 | "name": "stdout", 973 | "output_type": "stream", 974 | "text": [ 975 | "File created\n" 976 | ] 977 | } 978 | ], 979 | "source": [ 980 | "with open('DATA/new.txt','w',encoding='utf8') as f:\n", 981 | " f.write('Maşın Öyrənmə Dərin Öyrənmə')\n", 982 | " print('File created')" 983 | ] 984 | }, 985 | { 986 | "cell_type": "code", 987 | "execution_count": 121, 988 | "metadata": {}, 989 | "outputs": [ 990 | { 991 | "name": "stdout", 992 | "output_type": "stream", 993 | "text": [ 994 | "Maşın Öyrənmə Dərin Öyrənmə\n" 995 | ] 996 | } 997 | ], 998 | "source": [ 999 | "with open('DATA/new.txt','r',encoding='utf8') as f:\n", 1000 | " print(f.read())" 1001 | ] 1002 | }, 1003 | { 1004 | "cell_type": "code", 1005 | "execution_count": 123, 1006 | "metadata": {}, 1007 | "outputs": [ 1008 | { 1009 | "name": "stdout", 1010 | "output_type": "stream", 1011 | "text": [ 1012 | "Python proqramlaşdırma dili\n", 1013 | "Java proqramlaşdırma dili\n", 1014 | "C++ proqramlaşdırma dili\n" 1015 | ] 1016 | } 1017 | ], 1018 | "source": [ 1019 | "def Fayl(folder,file):\n", 1020 | " try:\n", 1021 | " with open(folder+file) as f:\n", 1022 | " print(f.readlines())\n", 1023 | " except (FileNotFoundError):\n", 1024 | " print('Fayl tapılmadı(və ya qovluq ünvanı doğru deyil)')\n", 1025 | "\n", 1026 | "fayl('DATA/','data.txt')\n", 1027 | " " 1028 | ] 1029 | }, 1030 | { 1031 | "cell_type": "code", 1032 | "execution_count": null, 1033 | "metadata": {}, 1034 | "outputs": [], 1035 | "source": [] 1036 | } 1037 | ], 1038 | "metadata": { 1039 | "kernelspec": { 1040 | "display_name": "Python 3", 1041 | "language": "python", 1042 | "name": "python3" 1043 | }, 1044 | "language_info": { 1045 | "codemirror_mode": { 1046 | "name": "ipython", 1047 | "version": 3 1048 | }, 1049 | "file_extension": ".py", 1050 | "mimetype": "text/x-python", 1051 | "name": "python", 1052 | "nbconvert_exporter": "python", 1053 | "pygments_lexer": "ipython3", 1054 | "version": "3.6.10" 1055 | } 1056 | }, 1057 | "nbformat": 4, 1058 | "nbformat_minor": 2 1059 | } 1060 | -------------------------------------------------------------------------------- /JupyterFile/GUI/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Default ignored files 3 | /workspace.xml -------------------------------------------------------------------------------- /JupyterFile/GUI/image/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/back.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/exit.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/forward.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/home.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/lock.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/new.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/new.jpg -------------------------------------------------------------------------------- /JupyterFile/GUI/image/newtab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/newtab.jpg -------------------------------------------------------------------------------- /JupyterFile/GUI/image/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/open.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/openfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/openfile.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/print.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/qbrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/qbrowser.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/question.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/reload.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/saveas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/saveas.png -------------------------------------------------------------------------------- /JupyterFile/GUI/image/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/GUI/image/stop.png -------------------------------------------------------------------------------- /JupyterFile/GUI/qbrowser.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtCore import * 2 | from PyQt5.QtWidgets import * 3 | from PyQt5.QtGui import * 4 | from PyQt5.QtWebEngineWidgets import * 5 | import sys 6 | 7 | 8 | class Dialog(QDialog): 9 | 10 | def __init__(self, *args, **kwargs): 11 | super(Dialog, self).__init__(*args, **kwargs) 12 | 13 | QBtn = QDialogButtonBox.Ok 14 | self.buttonBox = QDialogButtonBox(QBtn) 15 | self.buttonBox.accepted.connect(self.accept) 16 | self.buttonBox.rejected.connect(self.reject) 17 | self.setWindowTitle('About') 18 | layout = QVBoxLayout() 19 | 20 | title = QLabel("QBrowser") 21 | font = title.font() 22 | font.setPointSize(20) 23 | title.setFont(font) 24 | 25 | layout.addWidget(title) 26 | 27 | logo = QLabel() 28 | logo.setPixmap(QPixmap('image/qbrowser.png')) 29 | layout.addWidget(logo) 30 | 31 | layout.addWidget(QLabel("Version 0.1")) 32 | layout.addWidget(QLabel("Copyright 2020 QBrowser Inc.")) 33 | 34 | for i in range(0, layout.count()): 35 | layout.itemAt(i).setAlignment(Qt.AlignHCenter) 36 | 37 | layout.addWidget(self.buttonBox) 38 | 39 | self.setLayout(layout) 40 | 41 | 42 | class window(QMainWindow): 43 | 44 | def __init__(self, *args, **kwargs): 45 | super(window, self).__init__(*args, **kwargs) 46 | 47 | 48 | self.tabs = QTabWidget() 49 | self.tabs.setDocumentMode(True) 50 | self.tabs.tabBarDoubleClicked.connect(self.tab_open_doubleclick) 51 | self.tabs.currentChanged.connect(self.current_tab_changed) 52 | self.tabs.setTabsClosable(True) 53 | self.tabs.tabCloseRequested.connect(self.close_current_tab) 54 | 55 | self.setCentralWidget(self.tabs) 56 | 57 | 58 | navtb = QToolBar("Navigation") 59 | navtb.setIconSize(QSize(16, 16)) 60 | self.addToolBar(navtb) 61 | 62 | back_btn = QAction(QIcon('image/back.png'), "Back", self) 63 | back_btn.setStatusTip("Back to previous page") 64 | back_btn.triggered.connect(lambda: self.tabs.currentWidget().back()) 65 | navtb.addAction(back_btn) 66 | 67 | next_btn = QAction(QIcon('image/forward.png'), "Forward", self) 68 | next_btn.setStatusTip("Forward to next page") 69 | next_btn.triggered.connect(lambda: self.tabs.currentWidget().forward()) 70 | navtb.addAction(next_btn) 71 | reload_btn = QAction(QIcon('image/reload.png'), "Reload", self) 72 | reload_btn.setStatusTip("Reload page") 73 | reload_btn.triggered.connect(lambda: self.tabs.currentWidget().reload()) 74 | navtb.addAction(reload_btn) 75 | home_btn = QAction(QIcon('image/home.png'), "Home", self) 76 | home_btn.setStatusTip("Go home") 77 | home_btn.triggered.connect(self.navigate_home) 78 | navtb.addAction(home_btn) 79 | navtb.addSeparator() 80 | self.urlbar = QLineEdit() 81 | self.urlbar.returnPressed.connect(self.navigate_to_url) 82 | navtb.addWidget(self.urlbar) 83 | stop_btn = QAction(QIcon('image/stop.png'), "Stop", self) 84 | stop_btn.setStatusTip("Stop loading current page") 85 | stop_btn.triggered.connect(lambda: self.tabs.currentWidget().stop()) 86 | navtb.addAction(stop_btn) 87 | self.menuBar().setNativeMenuBar(False) 88 | self.statusBar() 89 | file_menu = self.menuBar().addMenu("&File") 90 | new_tab_action = QAction(QIcon('image/newtab.jpg'), "New Tab", self) 91 | new_tab_action.setStatusTip("Open a new tab") 92 | new_tab_action.triggered.connect(lambda _: self.add_new_tab()) 93 | file_menu.addAction(new_tab_action) 94 | open_file_action = QAction(QIcon('image/openfile.png'), "Open file...", self) 95 | open_file_action.setStatusTip("Open from file") 96 | open_file_action.triggered.connect(self.open_file) 97 | file_menu.addAction(open_file_action) 98 | save_file_action = QAction(QIcon('image/saveas.png'), "Save Page As...", self) 99 | save_file_action.setStatusTip("Save current page to file") 100 | save_file_action.triggered.connect(self.save_file) 101 | file_menu.addAction(save_file_action) 102 | print_action = QAction(QIcon('image/print.png'), "Print...", self) 103 | print_action.setStatusTip("Print current page") 104 | print_action.triggered.connect(self.print_page) 105 | file_menu.addAction(print_action) 106 | help_menu = self.menuBar().addMenu("&Help") 107 | about_action = QAction(QIcon('image/question.png'), "About QBrowser", self) 108 | about_action.setStatusTip("Find out more about QBrowser") 109 | about_action.triggered.connect(self.about) 110 | help_menu.addAction(about_action) 111 | navigate_action = QAction(QIcon('image/qbrowser.png'),"QBrowser", self) 112 | navigate_action.setStatusTip("Go to QBrowser Homepage") 113 | navigate_action.triggered.connect(self.navigate_qbrowser) 114 | help_menu.addAction(navigate_action) 115 | self.add_new_tab(QUrl('http://www.google.com'), 'Homepage') 116 | self.setWindowTitle("QBrowser") 117 | self.setWindowIcon(QIcon('image/qbrowser.png')) 118 | self.show() 119 | 120 | def add_new_tab(self, qurl=None, label="Blank"): 121 | 122 | if qurl is None: 123 | qurl = QUrl('') 124 | 125 | browser = QWebEngineView() 126 | browser.setUrl(qurl) 127 | i = self.tabs.addTab(browser, label) 128 | 129 | self.tabs.setCurrentIndex(i) 130 | browser.urlChanged.connect(lambda qurl, browser=browser: 131 | self.update_urlbar(qurl, browser)) 132 | 133 | browser.loadFinished.connect(lambda _, i=i, browser=browser: 134 | self.tabs.setTabText(i, browser.page().title())) 135 | 136 | 137 | def tab_open_doubleclick(self, i): 138 | if i == -1: 139 | self.add_new_tab() 140 | 141 | def current_tab_changed(self, i): 142 | qurl = self.tabs.currentWidget().url() 143 | self.update_urlbar(qurl, self.tabs.currentWidget()) 144 | self.update_title(self.tabs.currentWidget()) 145 | 146 | def close_current_tab(self, i): 147 | if self.tabs.count() < 2: 148 | return 149 | 150 | self.tabs.removeTab(i) 151 | 152 | def update_title(self, browser): 153 | if browser != self.tabs.currentWidget(): 154 | return 155 | 156 | title = self.tabs.currentWidget().page().title() 157 | self.setWindowTitle("{} - QBrowser".format(title)) 158 | 159 | def navigate_qbrowser(self): 160 | self.tabs.currentWidget().setUrl(QUrl("https://github.com/RashadGarayev/QBrowser")) 161 | 162 | def about(self): 163 | dialog = Dialog() 164 | dialog.exec_() 165 | 166 | def open_file(self): 167 | filename, _ = QFileDialog.getOpenFileName(self, "Open file", "", 168 | "Hypertext Markup Language (*.htm *.html);;" 169 | "All files (*.*)") 170 | 171 | if filename: 172 | with open(filename, 'r') as f: 173 | html = f.read() 174 | 175 | self.tabs.currentWidget().setHtml(html) 176 | self.urlbar.setText(filename) 177 | 178 | def save_file(self): 179 | filename, _ = QFileDialog.getSaveFileName(self, "Save Page As", "", 180 | "Hypertext Markup Language (*.htm *html);;" 181 | "All files (*.*)") 182 | 183 | if filename: 184 | html = self.tabs.currentWidget().page().toHtml() 185 | with open(filename, 'w') as f: 186 | f.write(html.encode('utf8')) 187 | 188 | def print_page(self): 189 | dialog = QPrintPreviewDialog() 190 | dialog.paintRequested.connect(self.browser.print_) 191 | dialog.exec_() 192 | 193 | def navigate_home(self): 194 | self.tabs.currentWidget().setUrl(QUrl("http://www.google.com")) 195 | 196 | def navigate_to_url(self): # Does not receive the Url 197 | q = QUrl(self.urlbar.text()) 198 | if q.scheme() == "": 199 | q.setScheme("http") 200 | 201 | self.tabs.currentWidget().setUrl(q) 202 | 203 | 204 | def update_urlbar(self, q, browser=None): 205 | 206 | if browser != self.tabs.currentWidget(): 207 | 208 | return 209 | 210 | 211 | self.urlbar.setText(q.toString()) 212 | self.urlbar.setCursorPosition(0) 213 | 214 | if __name__ == '__main__': 215 | app = QApplication([]) 216 | gui = window() 217 | app.exec_() -------------------------------------------------------------------------------- /JupyterFile/Iterators-Generators/Iterators and Generators(Silsilələr və törəmələr).ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "### Silsilə və Törəmələr" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Bundan əvvəlki mövzumuzda python ilə gələn quraşdırılmış bir neçə funksiyanı öyrəndik.Bəzi funksiyaları isə həmin bəhsə yerləşdirmədim.Bu funksiyalar iter() və next() funksiyalarıdır.Həmin funksiyalar pythonda xüsusi yer alır.Bu bəhsdə silsilə və törəmələr nədir gəlin nəzər yetirək." 15 | ] 16 | }, 17 | { 18 | "cell_type": "markdown", 19 | "metadata": {}, 20 | "source": [ 21 | "#### Iterators(silsilə-təkrarlama)" 22 | ] 23 | }, 24 | { 25 | "cell_type": "markdown", 26 | "metadata": {}, 27 | "source": [ 28 | "İteratorlar,sayıla bilən dəyərə malik obyektlərdir.Python dilində ifadə etdiyimiz siyahılar,kortej,sətir tipi verilənlər silsilə obyektlərdir.silsilələr __iter __ () və __next __ () metodlarından ibarət silsilə protokolunu həyata keçirən bir obyektdir." 29 | ] 30 | }, 31 | { 32 | "cell_type": "markdown", 33 | "metadata": {}, 34 | "source": [ 35 | "Xatırlayırsınızsa verilən tipləri üzərində təkrar təkrar gəzərək elementləri əldə edə bilirdik" 36 | ] 37 | }, 38 | { 39 | "cell_type": "code", 40 | "execution_count": 2, 41 | "metadata": {}, 42 | "outputs": [ 43 | { 44 | "name": "stdout", 45 | "output_type": "stream", 46 | "text": [ 47 | "Python\n", 48 | "C++\n", 49 | "Java\n", 50 | "Rust\n" 51 | ] 52 | } 53 | ], 54 | "source": [ 55 | "siyahı = ['Python','C++','Java','Rust']\n", 56 | "for i in siyahı:\n", 57 | " print(i)" 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "execution_count": 4, 63 | "metadata": {}, 64 | "outputs": [ 65 | { 66 | "name": "stdout", 67 | "output_type": "stream", 68 | "text": [ 69 | "Python\n" 70 | ] 71 | } 72 | ], 73 | "source": [ 74 | "print(siyahı[0])" 75 | ] 76 | }, 77 | { 78 | "cell_type": "code", 79 | "execution_count": 5, 80 | "metadata": {}, 81 | "outputs": [ 82 | { 83 | "name": "stdout", 84 | "output_type": "stream", 85 | "text": [ 86 | "C++\n" 87 | ] 88 | } 89 | ], 90 | "source": [ 91 | "print(siyahı[1])" 92 | ] 93 | }, 94 | { 95 | "cell_type": "code", 96 | "execution_count": 7, 97 | "metadata": {}, 98 | "outputs": [ 99 | { 100 | "name": "stdout", 101 | "output_type": "stream", 102 | "text": [ 103 | "(1, 1)\n", 104 | "(2, 2)\n", 105 | "(3, 3)\n", 106 | "(4, 4)\n", 107 | "(5, 5)\n" 108 | ] 109 | } 110 | ], 111 | "source": [ 112 | "kortej = (1,2,3,4,5)\n", 113 | "for i in enumerate(kortej,1):\n", 114 | " print(i)" 115 | ] 116 | }, 117 | { 118 | "cell_type": "code", 119 | "execution_count": 15, 120 | "metadata": {}, 121 | "outputs": [ 122 | { 123 | "name": "stdout", 124 | "output_type": "stream", 125 | "text": [ 126 | "p\n", 127 | "y\n", 128 | "t\n", 129 | "h\n", 130 | "o\n", 131 | "n\n" 132 | ] 133 | } 134 | ], 135 | "source": [ 136 | "string = 'python'\n", 137 | "for i in string:\n", 138 | " print(i)" 139 | ] 140 | }, 141 | { 142 | "cell_type": "markdown", 143 | "metadata": {}, 144 | "source": [ 145 | "biz fordövr operatorundan istifadə etdikdə,python həmin obyektin __iter__() metoduna yönəlir," 146 | ] 147 | }, 148 | { 149 | "cell_type": "markdown", 150 | "metadata": {}, 151 | "source": [ 152 | "obyektin silsilə olması üçün mütləq __iter__() və __next__() metodunu qeyd etməliyik.Yuxarıda qeyd etdiyim kimi bu metod sayılan verilən tiplərində zatən mövcuddur.Və həmin verilən tipləri obyekt,silsilələr sayılır" 153 | ] 154 | }, 155 | { 156 | "cell_type": "code", 157 | "execution_count": 18, 158 | "metadata": {}, 159 | "outputs": [ 160 | { 161 | "name": "stdout", 162 | "output_type": "stream", 163 | "text": [ 164 | "['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']\n" 165 | ] 166 | } 167 | ], 168 | "source": [ 169 | "print(dir(siyahı))" 170 | ] 171 | }, 172 | { 173 | "cell_type": "markdown", 174 | "metadata": {}, 175 | "source": [ 176 | " siyahı obyekti qeyd etdik və __iter__() metodun var olduğunu obyektdə gördük." 177 | ] 178 | }, 179 | { 180 | "cell_type": "code", 181 | "execution_count": 20, 182 | "metadata": {}, 183 | "outputs": [], 184 | "source": [ 185 | "siyahı = iter(siyahı)" 186 | ] 187 | }, 188 | { 189 | "cell_type": "code", 190 | "execution_count": 21, 191 | "metadata": {}, 192 | "outputs": [ 193 | { 194 | "name": "stdout", 195 | "output_type": "stream", 196 | "text": [ 197 | "['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__length_hint__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__']\n" 198 | ] 199 | } 200 | ], 201 | "source": [ 202 | "print(dir(siyahı))" 203 | ] 204 | }, 205 | { 206 | "cell_type": "markdown", 207 | "metadata": {}, 208 | "source": [ 209 | "Və siyahımızı silsilə obyekti olaraq qeyd etdik.Diqqət etsəniz __next__ metodu əlavə olundu" 210 | ] 211 | }, 212 | { 213 | "cell_type": "markdown", 214 | "metadata": {}, 215 | "source": [ 216 | "next() funksiyası vasitəsilə silsilə elementlərini əldə edək" 217 | ] 218 | }, 219 | { 220 | "cell_type": "code", 221 | "execution_count": 23, 222 | "metadata": {}, 223 | "outputs": [ 224 | { 225 | "name": "stdout", 226 | "output_type": "stream", 227 | "text": [ 228 | "Python\n" 229 | ] 230 | } 231 | ], 232 | "source": [ 233 | "print(next(siyahı))" 234 | ] 235 | }, 236 | { 237 | "cell_type": "code", 238 | "execution_count": 24, 239 | "metadata": {}, 240 | "outputs": [ 241 | { 242 | "name": "stdout", 243 | "output_type": "stream", 244 | "text": [ 245 | "C++\n" 246 | ] 247 | } 248 | ], 249 | "source": [ 250 | "print(next(siyahı))" 251 | ] 252 | }, 253 | { 254 | "cell_type": "code", 255 | "execution_count": 25, 256 | "metadata": {}, 257 | "outputs": [ 258 | { 259 | "name": "stdout", 260 | "output_type": "stream", 261 | "text": [ 262 | "Java\n" 263 | ] 264 | } 265 | ], 266 | "source": [ 267 | "print(next(siyahı))" 268 | ] 269 | }, 270 | { 271 | "cell_type": "code", 272 | "execution_count": 26, 273 | "metadata": {}, 274 | "outputs": [ 275 | { 276 | "name": "stdout", 277 | "output_type": "stream", 278 | "text": [ 279 | "Rust\n" 280 | ] 281 | } 282 | ], 283 | "source": [ 284 | "print(next(siyahı))" 285 | ] 286 | }, 287 | { 288 | "cell_type": "code", 289 | "execution_count": 27, 290 | "metadata": {}, 291 | "outputs": [ 292 | { 293 | "ename": "StopIteration", 294 | "evalue": "", 295 | "output_type": "error", 296 | "traceback": [ 297 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 298 | "\u001b[1;31mStopIteration\u001b[0m Traceback (most recent call last)", 299 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msiyahı\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 300 | "\u001b[1;31mStopIteration\u001b[0m: " 301 | ] 302 | } 303 | ], 304 | "source": [ 305 | "print(next(siyahı))" 306 | ] 307 | }, 308 | { 309 | "cell_type": "markdown", 310 | "metadata": {}, 311 | "source": [ 312 | "Və elementlər bitdiyi üçün Stopİteration xətası aldıq.Yuxarıda for operatoru vasitəsilə elementləri əldə etdikdə,arxa planda silsilə obyekt hazırlanır daha sonra next() metodundan istifadə olunur." 313 | ] 314 | }, 315 | { 316 | "cell_type": "markdown", 317 | "metadata": {}, 318 | "source": [ 319 | "Həmçinin next metodlarından da istifadə edə bilərik" 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "execution_count": 28, 325 | "metadata": {}, 326 | "outputs": [], 327 | "source": [ 328 | "kortej = ('Azerbaijan','USA','Italy')\n", 329 | "kortej = iter(kortej)\n", 330 | "\n" 331 | ] 332 | }, 333 | { 334 | "cell_type": "code", 335 | "execution_count": 30, 336 | "metadata": {}, 337 | "outputs": [ 338 | { 339 | "name": "stdout", 340 | "output_type": "stream", 341 | "text": [ 342 | "Azerbaijan\n" 343 | ] 344 | } 345 | ], 346 | "source": [ 347 | "print(kortej.__next__())" 348 | ] 349 | }, 350 | { 351 | "cell_type": "code", 352 | "execution_count": 31, 353 | "metadata": {}, 354 | "outputs": [ 355 | { 356 | "name": "stdout", 357 | "output_type": "stream", 358 | "text": [ 359 | "USA\n" 360 | ] 361 | } 362 | ], 363 | "source": [ 364 | "print(kortej.__next__())" 365 | ] 366 | }, 367 | { 368 | "cell_type": "code", 369 | "execution_count": 32, 370 | "metadata": {}, 371 | "outputs": [ 372 | { 373 | "name": "stdout", 374 | "output_type": "stream", 375 | "text": [ 376 | "Italy\n" 377 | ] 378 | } 379 | ], 380 | "source": [ 381 | "print(kortej.__next__())" 382 | ] 383 | }, 384 | { 385 | "cell_type": "code", 386 | "execution_count": 33, 387 | "metadata": {}, 388 | "outputs": [ 389 | { 390 | "ename": "StopIteration", 391 | "evalue": "", 392 | "output_type": "error", 393 | "traceback": [ 394 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 395 | "\u001b[1;31mStopIteration\u001b[0m Traceback (most recent call last)", 396 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkortej\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__next__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 397 | "\u001b[1;31mStopIteration\u001b[0m: " 398 | ] 399 | } 400 | ], 401 | "source": [ 402 | "print(kortej.__next__())" 403 | ] 404 | }, 405 | { 406 | "cell_type": "code", 407 | "execution_count": null, 408 | "metadata": {}, 409 | "outputs": [], 410 | "source": [] 411 | }, 412 | { 413 | "cell_type": "markdown", 414 | "metadata": {}, 415 | "source": [ 416 | "biz xətalar və istisnalar bəhsində xətaları necə önlədiyimizi öyrənmişdik.Həmin metodları və iki funksiyanı tətbiq edərək bunun qarşısını alaq" 417 | ] 418 | }, 419 | { 420 | "cell_type": "code", 421 | "execution_count": 35, 422 | "metadata": {}, 423 | "outputs": [ 424 | { 425 | "name": "stdout", 426 | "output_type": "stream", 427 | "text": [ 428 | "Azerbaijan\n", 429 | "USA\n", 430 | "Italy\n" 431 | ] 432 | } 433 | ], 434 | "source": [ 435 | "kortej = ('Azerbaijan','USA','Italy')\n", 436 | "kortej = iter(kortej)\n", 437 | "while True:\n", 438 | " try: \n", 439 | " print(kortej.__next__())\n", 440 | " except StopIteration:\n", 441 | " break\n", 442 | " " 443 | ] 444 | }, 445 | { 446 | "cell_type": "code", 447 | "execution_count": 68, 448 | "metadata": {}, 449 | "outputs": [ 450 | { 451 | "name": "stdout", 452 | "output_type": "stream", 453 | "text": [ 454 | "Azerbaijan\n", 455 | "USA\n", 456 | "Italy\n" 457 | ] 458 | } 459 | ], 460 | "source": [ 461 | "kortej = ('Azerbaijan','USA','Italy')\n", 462 | "kortej = iter(kortej)\n", 463 | "while True:\n", 464 | " try: \n", 465 | " print(next(kortej))\n", 466 | " except StopIteration:\n", 467 | " break" 468 | ] 469 | }, 470 | { 471 | "cell_type": "code", 472 | "execution_count": 76, 473 | "metadata": {}, 474 | "outputs": [], 475 | "source": [ 476 | "class Iterable():\n", 477 | " def __init__(self):\n", 478 | " self.iterable = 0\n", 479 | " def __iter__(self):\n", 480 | " return self\n", 481 | " def __next__(self):\n", 482 | " if self.iterable <= 10:\n", 483 | " a = self.iterable\n", 484 | " self.iterable += 1\n", 485 | " return a\n", 486 | " else:\n", 487 | " raise StopIteration\n" 488 | ] 489 | }, 490 | { 491 | "cell_type": "code", 492 | "execution_count": 77, 493 | "metadata": {}, 494 | "outputs": [], 495 | "source": [ 496 | "check = Iterable()\n", 497 | "myiter = iter(check)" 498 | ] 499 | }, 500 | { 501 | "cell_type": "code", 502 | "execution_count": 78, 503 | "metadata": {}, 504 | "outputs": [ 505 | { 506 | "name": "stdout", 507 | "output_type": "stream", 508 | "text": [ 509 | "0\n", 510 | "1\n", 511 | "2\n", 512 | "3\n", 513 | "4\n", 514 | "5\n", 515 | "6\n", 516 | "7\n", 517 | "8\n", 518 | "9\n", 519 | "10\n" 520 | ] 521 | } 522 | ], 523 | "source": [ 524 | "for i in myiter:\n", 525 | " print(i)" 526 | ] 527 | }, 528 | { 529 | "cell_type": "code", 530 | "execution_count": null, 531 | "metadata": {}, 532 | "outputs": [], 533 | "source": [] 534 | }, 535 | { 536 | "cell_type": "markdown", 537 | "metadata": {}, 538 | "source": [ 539 | "### Generasiya.Törəmələr (yield ifadəsi)" 540 | ] 541 | }, 542 | { 543 | "cell_type": "markdown", 544 | "metadata": {}, 545 | "source": [ 546 | "Silsilələrdən sonra törəmələr və ya generasiya adlandırdığımız ifadələri öyrənək.Python dilində ifadə etdiyimiz elementlər yaddaşda xüsusi yer tutur.Məsələn siyahılar kortejlərə nisbətən daha çox yer tutmasına görə,biz kortejləri istifadə etməyimiz daha məqsədəuyğun sayılır.Amma bu hər kod blokunda keçərli olmur.Bəzən tam siyahılara ehtiyacımız olur.Siz kiçik kodlar yazdığınızdan dolayı yaddaş məsələsinin fərqinə varmayacaqsınız.Və deyə bilərsinizki çalışdırıram anında qarşıma çıxır burda nə problem olarki.Bu həmişə belə deyil,siz proqramlaşdırma dilini öyrənirsinizsə təbiki irəlidə daha çox kod blokları yazacaqsınız və ya data analitikası,maşın öyrənmə kimi texniki funksiyalardan istifadə etsəniz,zaman və yaddaş məsələsinin fərqinə varacaqsınız.Eləcədə kiçik ölçülü minikompyuterlərdən(Asus Tinkerboard,Nvidia Jetson,Raspberry Pi,microPython) istifadə etdikdə yaddaş zaman anlayışları daha çox önəm daşıyacaq." 547 | ] 548 | }, 549 | { 550 | "cell_type": "markdown", 551 | "metadata": {}, 552 | "source": [ 553 | "Generasiya etdiyimiz silsilələr yer tutmayaraq,yalnız və yalnız çağırıldığı zaman törənən obyekt nümunələridir.Nümunələrlə bu daha aydın olacaq." 554 | ] 555 | }, 556 | { 557 | "cell_type": "code", 558 | "execution_count": 102, 559 | "metadata": {}, 560 | "outputs": [], 561 | "source": [ 562 | "import sys" 563 | ] 564 | }, 565 | { 566 | "cell_type": "code", 567 | "execution_count": 103, 568 | "metadata": {}, 569 | "outputs": [], 570 | "source": [ 571 | "def G():\n", 572 | " num = []\n", 573 | " for i in range(4):\n", 574 | " num.append(i)\n", 575 | " return num\n" 576 | ] 577 | }, 578 | { 579 | "cell_type": "code", 580 | "execution_count": 104, 581 | "metadata": {}, 582 | "outputs": [], 583 | "source": [ 584 | "g=G()" 585 | ] 586 | }, 587 | { 588 | "cell_type": "code", 589 | "execution_count": 105, 590 | "metadata": {}, 591 | "outputs": [ 592 | { 593 | "name": "stdout", 594 | "output_type": "stream", 595 | "text": [ 596 | "[0, 1, 2, 3]\n" 597 | ] 598 | } 599 | ], 600 | "source": [ 601 | "print(g)" 602 | ] 603 | }, 604 | { 605 | "cell_type": "code", 606 | "execution_count": 106, 607 | "metadata": {}, 608 | "outputs": [ 609 | { 610 | "name": "stdout", 611 | "output_type": "stream", 612 | "text": [ 613 | "96\n" 614 | ] 615 | } 616 | ], 617 | "source": [ 618 | "print(sys.getsizeof(g))" 619 | ] 620 | }, 621 | { 622 | "cell_type": "code", 623 | "execution_count": 118, 624 | "metadata": {}, 625 | "outputs": [], 626 | "source": [ 627 | "\n", 628 | "def Generasiya(): \n", 629 | " yield 1 \n", 630 | " yield 2 \n", 631 | " yield 3 " 632 | ] 633 | }, 634 | { 635 | "cell_type": "code", 636 | "execution_count": 119, 637 | "metadata": {}, 638 | "outputs": [], 639 | "source": [ 640 | "generator = Generasiya()" 641 | ] 642 | }, 643 | { 644 | "cell_type": "code", 645 | "execution_count": 120, 646 | "metadata": {}, 647 | "outputs": [ 648 | { 649 | "name": "stdout", 650 | "output_type": "stream", 651 | "text": [ 652 | "88\n" 653 | ] 654 | } 655 | ], 656 | "source": [ 657 | "print(sys.getsizeof(generator))" 658 | ] 659 | }, 660 | { 661 | "cell_type": "code", 662 | "execution_count": 121, 663 | "metadata": {}, 664 | "outputs": [ 665 | { 666 | "name": "stdout", 667 | "output_type": "stream", 668 | "text": [ 669 | "\n" 670 | ] 671 | } 672 | ], 673 | "source": [ 674 | "print(generator)" 675 | ] 676 | }, 677 | { 678 | "cell_type": "markdown", 679 | "metadata": {}, 680 | "source": [ 681 | "Sadəcə ünvanını göstərdi,amma elementlərimiz hal hazırda yoxdur.Biz obyekti iterasiya etmədiyimiz müddətcə elementləri əldə edə bilməyəcəyik" 682 | ] 683 | }, 684 | { 685 | "cell_type": "code", 686 | "execution_count": 122, 687 | "metadata": {}, 688 | "outputs": [], 689 | "source": [ 690 | "generator = iter(generator)" 691 | ] 692 | }, 693 | { 694 | "cell_type": "code", 695 | "execution_count": 123, 696 | "metadata": {}, 697 | "outputs": [ 698 | { 699 | "name": "stdout", 700 | "output_type": "stream", 701 | "text": [ 702 | "['__class__', '__del__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__name__', '__ne__', '__new__', '__next__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'gi_code', 'gi_frame', 'gi_running', 'gi_yieldfrom', 'send', 'throw']\n" 703 | ] 704 | } 705 | ], 706 | "source": [ 707 | "print(dir(generator))" 708 | ] 709 | }, 710 | { 711 | "cell_type": "code", 712 | "execution_count": 124, 713 | "metadata": {}, 714 | "outputs": [ 715 | { 716 | "name": "stdout", 717 | "output_type": "stream", 718 | "text": [ 719 | "1\n", 720 | "2\n", 721 | "3\n" 722 | ] 723 | } 724 | ], 725 | "source": [ 726 | "for i in generator:\n", 727 | " print(i)" 728 | ] 729 | }, 730 | { 731 | "cell_type": "markdown", 732 | "metadata": {}, 733 | "source": [ 734 | "Elementləri ekrana çap etdirdik.generasiya etdiyimiz elementləri heç bir dəyişəndə saxlaya bilmirik.Yalnız və yalnız çağırıldıqda elementləri törədir.İkinci dəfə elementləri görmək istəsək,funksiyanı yenidən çağırmağımız lazmdır.Aşağıda bunun şahidi olacaqsınız" 735 | ] 736 | }, 737 | { 738 | "cell_type": "code", 739 | "execution_count": null, 740 | "metadata": {}, 741 | "outputs": [], 742 | "source": [] 743 | }, 744 | { 745 | "cell_type": "code", 746 | "execution_count": 125, 747 | "metadata": {}, 748 | "outputs": [], 749 | "source": [ 750 | "for i in generator:\n", 751 | " print(i)" 752 | ] 753 | }, 754 | { 755 | "cell_type": "markdown", 756 | "metadata": {}, 757 | "source": [ 758 | "Çağırsaq da elementləri görə bilmədik.Qeyd etdiyim kimi,heç bir dəyişəndə saxlanılmamasıdır.Yaddaşda yer tutmur." 759 | ] 760 | }, 761 | { 762 | "cell_type": "code", 763 | "execution_count": 127, 764 | "metadata": {}, 765 | "outputs": [], 766 | "source": [ 767 | "def fib(limit): \n", 768 | " a, b = 0, 1\n", 769 | " while a < limit: \n", 770 | " yield a \n", 771 | " a, b = b, a + b " 772 | ] 773 | }, 774 | { 775 | "cell_type": "code", 776 | "execution_count": 128, 777 | "metadata": {}, 778 | "outputs": [], 779 | "source": [ 780 | "f = fib(7)" 781 | ] 782 | }, 783 | { 784 | "cell_type": "code", 785 | "execution_count": 129, 786 | "metadata": {}, 787 | "outputs": [ 788 | { 789 | "name": "stdout", 790 | "output_type": "stream", 791 | "text": [ 792 | "\n" 793 | ] 794 | } 795 | ], 796 | "source": [ 797 | "print(f)" 798 | ] 799 | }, 800 | { 801 | "cell_type": "code", 802 | "execution_count": 130, 803 | "metadata": {}, 804 | "outputs": [ 805 | { 806 | "name": "stdout", 807 | "output_type": "stream", 808 | "text": [ 809 | "0\n" 810 | ] 811 | } 812 | ], 813 | "source": [ 814 | "print(next(f))" 815 | ] 816 | }, 817 | { 818 | "cell_type": "code", 819 | "execution_count": 131, 820 | "metadata": {}, 821 | "outputs": [ 822 | { 823 | "name": "stdout", 824 | "output_type": "stream", 825 | "text": [ 826 | "1\n" 827 | ] 828 | } 829 | ], 830 | "source": [ 831 | "print(next(f))" 832 | ] 833 | }, 834 | { 835 | "cell_type": "code", 836 | "execution_count": 132, 837 | "metadata": {}, 838 | "outputs": [ 839 | { 840 | "name": "stdout", 841 | "output_type": "stream", 842 | "text": [ 843 | "1\n" 844 | ] 845 | } 846 | ], 847 | "source": [ 848 | "print(next(f))" 849 | ] 850 | }, 851 | { 852 | "cell_type": "code", 853 | "execution_count": 133, 854 | "metadata": {}, 855 | "outputs": [ 856 | { 857 | "name": "stdout", 858 | "output_type": "stream", 859 | "text": [ 860 | "2\n" 861 | ] 862 | } 863 | ], 864 | "source": [ 865 | "print(next(f))" 866 | ] 867 | }, 868 | { 869 | "cell_type": "code", 870 | "execution_count": 134, 871 | "metadata": {}, 872 | "outputs": [ 873 | { 874 | "name": "stdout", 875 | "output_type": "stream", 876 | "text": [ 877 | "3\n" 878 | ] 879 | } 880 | ], 881 | "source": [ 882 | "print(next(f))" 883 | ] 884 | }, 885 | { 886 | "cell_type": "code", 887 | "execution_count": 135, 888 | "metadata": {}, 889 | "outputs": [ 890 | { 891 | "name": "stdout", 892 | "output_type": "stream", 893 | "text": [ 894 | "5\n" 895 | ] 896 | } 897 | ], 898 | "source": [ 899 | "print(next(f))" 900 | ] 901 | }, 902 | { 903 | "cell_type": "code", 904 | "execution_count": 136, 905 | "metadata": {}, 906 | "outputs": [ 907 | { 908 | "ename": "StopIteration", 909 | "evalue": "", 910 | "output_type": "error", 911 | "traceback": [ 912 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 913 | "\u001b[1;31mStopIteration\u001b[0m Traceback (most recent call last)", 914 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 915 | "\u001b[1;31mStopIteration\u001b[0m: " 916 | ] 917 | } 918 | ], 919 | "source": [ 920 | "print(next(f))" 921 | ] 922 | }, 923 | { 924 | "cell_type": "code", 925 | "execution_count": 138, 926 | "metadata": {}, 927 | "outputs": [ 928 | { 929 | "name": "stdout", 930 | "output_type": "stream", 931 | "text": [ 932 | "0\n", 933 | "1\n", 934 | "1\n", 935 | "2\n", 936 | "3\n" 937 | ] 938 | } 939 | ], 940 | "source": [ 941 | "for i in fib(5): \n", 942 | " print(i)" 943 | ] 944 | }, 945 | { 946 | "cell_type": "code", 947 | "execution_count": 139, 948 | "metadata": {}, 949 | "outputs": [], 950 | "source": [ 951 | "#Building Generators With Generator Expressions" 952 | ] 953 | }, 954 | { 955 | "cell_type": "code", 956 | "execution_count": 140, 957 | "metadata": {}, 958 | "outputs": [], 959 | "source": [ 960 | "num = [i for i in range(1,11)]" 961 | ] 962 | }, 963 | { 964 | "cell_type": "code", 965 | "execution_count": 141, 966 | "metadata": {}, 967 | "outputs": [ 968 | { 969 | "data": { 970 | "text/plain": [ 971 | "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]" 972 | ] 973 | }, 974 | "execution_count": 141, 975 | "metadata": {}, 976 | "output_type": "execute_result" 977 | } 978 | ], 979 | "source": [ 980 | "num" 981 | ] 982 | }, 983 | { 984 | "cell_type": "markdown", 985 | "metadata": {}, 986 | "source": [ 987 | "Yuxarıda list_comprehension hazırladıq.Və dəyərləri ekranda gördük.ədəd diapazonun artıraq" 988 | ] 989 | }, 990 | { 991 | "cell_type": "code", 992 | "execution_count": 142, 993 | "metadata": {}, 994 | "outputs": [], 995 | "source": [ 996 | "num = [i for i in range(10000)]" 997 | ] 998 | }, 999 | { 1000 | "cell_type": "code", 1001 | "execution_count": 155, 1002 | "metadata": {}, 1003 | "outputs": [ 1004 | { 1005 | "name": "stdout", 1006 | "output_type": "stream", 1007 | "text": [ 1008 | "87624\n" 1009 | ] 1010 | } 1011 | ], 1012 | "source": [ 1013 | "print(sys.getsizeof(num)) #optimize memory" 1014 | ] 1015 | }, 1016 | { 1017 | "cell_type": "markdown", 1018 | "metadata": {}, 1019 | "source": [ 1020 | "Yaddaşda tutduğu həcmi ekrana çap etdirdik.İndi isə siyahılardan generasiya metodu ilə ədədlər diapazonu hazırlayaq.Bunun üçün qapalı mötərizə deyil,normal mötərizədən istifadə edəcəyik" 1021 | ] 1022 | }, 1023 | { 1024 | "cell_type": "code", 1025 | "execution_count": 145, 1026 | "metadata": {}, 1027 | "outputs": [], 1028 | "source": [ 1029 | "generator = (i for i in range(10000))" 1030 | ] 1031 | }, 1032 | { 1033 | "cell_type": "code", 1034 | "execution_count": 146, 1035 | "metadata": {}, 1036 | "outputs": [ 1037 | { 1038 | "name": "stdout", 1039 | "output_type": "stream", 1040 | "text": [ 1041 | " at 0x00000239EC01BFC0>\n" 1042 | ] 1043 | } 1044 | ], 1045 | "source": [ 1046 | "print(generator)" 1047 | ] 1048 | }, 1049 | { 1050 | "cell_type": "markdown", 1051 | "metadata": {}, 1052 | "source": [ 1053 | "Və generasiya etdik.Hal-hazırda elementlər mövcud deyil,çağırmadığımız müddətcə heç bir dəyişəndə saxlanılmır.Yaddaş həcminə baxaq" 1054 | ] 1055 | }, 1056 | { 1057 | "cell_type": "code", 1058 | "execution_count": 147, 1059 | "metadata": {}, 1060 | "outputs": [ 1061 | { 1062 | "name": "stdout", 1063 | "output_type": "stream", 1064 | "text": [ 1065 | "88\n" 1066 | ] 1067 | } 1068 | ], 1069 | "source": [ 1070 | "print(sys.getsizeof(generator))" 1071 | ] 1072 | }, 1073 | { 1074 | "cell_type": "markdown", 1075 | "metadata": {}, 1076 | "source": [ 1077 | "Fərqi yəqinki görürsünüz" 1078 | ] 1079 | }, 1080 | { 1081 | "cell_type": "markdown", 1082 | "metadata": {}, 1083 | "source": [ 1084 | "Elementləri əldə etmək üçün isə obyekti silsilə obyektinə çevirməliyik" 1085 | ] 1086 | }, 1087 | { 1088 | "cell_type": "code", 1089 | "execution_count": 148, 1090 | "metadata": {}, 1091 | "outputs": [], 1092 | "source": [ 1093 | "generator = iter(generator)" 1094 | ] 1095 | }, 1096 | { 1097 | "cell_type": "code", 1098 | "execution_count": 149, 1099 | "metadata": {}, 1100 | "outputs": [ 1101 | { 1102 | "name": "stdout", 1103 | "output_type": "stream", 1104 | "text": [ 1105 | "\n" 1106 | ] 1107 | } 1108 | ], 1109 | "source": [ 1110 | "print(type(generator))" 1111 | ] 1112 | }, 1113 | { 1114 | "cell_type": "code", 1115 | "execution_count": 150, 1116 | "metadata": {}, 1117 | "outputs": [ 1118 | { 1119 | "name": "stdout", 1120 | "output_type": "stream", 1121 | "text": [ 1122 | "0\n" 1123 | ] 1124 | } 1125 | ], 1126 | "source": [ 1127 | "print(next(generator))" 1128 | ] 1129 | }, 1130 | { 1131 | "cell_type": "code", 1132 | "execution_count": 151, 1133 | "metadata": {}, 1134 | "outputs": [ 1135 | { 1136 | "name": "stdout", 1137 | "output_type": "stream", 1138 | "text": [ 1139 | "1\n" 1140 | ] 1141 | } 1142 | ], 1143 | "source": [ 1144 | "print(next(generator))" 1145 | ] 1146 | }, 1147 | { 1148 | "cell_type": "code", 1149 | "execution_count": 152, 1150 | "metadata": {}, 1151 | "outputs": [ 1152 | { 1153 | "name": "stdout", 1154 | "output_type": "stream", 1155 | "text": [ 1156 | "2\n" 1157 | ] 1158 | } 1159 | ], 1160 | "source": [ 1161 | "print(next(generator))" 1162 | ] 1163 | }, 1164 | { 1165 | "cell_type": "code", 1166 | "execution_count": 153, 1167 | "metadata": {}, 1168 | "outputs": [ 1169 | { 1170 | "name": "stdout", 1171 | "output_type": "stream", 1172 | "text": [ 1173 | "3\n" 1174 | ] 1175 | } 1176 | ], 1177 | "source": [ 1178 | "print(next(generator))" 1179 | ] 1180 | }, 1181 | { 1182 | "cell_type": "code", 1183 | "execution_count": 154, 1184 | "metadata": {}, 1185 | "outputs": [ 1186 | { 1187 | "name": "stdout", 1188 | "output_type": "stream", 1189 | "text": [ 1190 | "4\n" 1191 | ] 1192 | } 1193 | ], 1194 | "source": [ 1195 | "print(next(generator))" 1196 | ] 1197 | }, 1198 | { 1199 | "cell_type": "code", 1200 | "execution_count": null, 1201 | "metadata": {}, 1202 | "outputs": [], 1203 | "source": [] 1204 | } 1205 | ], 1206 | "metadata": { 1207 | "kernelspec": { 1208 | "display_name": "Python 3", 1209 | "language": "python", 1210 | "name": "python3" 1211 | }, 1212 | "language_info": { 1213 | "codemirror_mode": { 1214 | "name": "ipython", 1215 | "version": 3 1216 | }, 1217 | "file_extension": ".py", 1218 | "mimetype": "text/x-python", 1219 | "name": "python", 1220 | "nbconvert_exporter": "python", 1221 | "pygments_lexer": "ipython3", 1222 | "version": "3.6.10" 1223 | } 1224 | }, 1225 | "nbformat": 4, 1226 | "nbformat_minor": 2 1227 | } 1228 | -------------------------------------------------------------------------------- /JupyterFile/Modules/discriminant.py: -------------------------------------------------------------------------------- 1 | 2 | def diskriminant(a,b,c): 3 | 4 | a = float(a) 5 | b = float(b) 6 | c = float(c) 7 | D = b**2 - 4*a*c; 8 | if D>0: 9 | x1 = (-b + (D)**2)/(2*a); 10 | x2 = (-b - (D)**2)/(2*a); 11 | return ('X1: {} X2: {}'.format(x1,x2)) 12 | 13 | elif D==0: 14 | x1 = -b/(2*a); 15 | return ('X1=X2 : {}'.format(x1)) 16 | else: 17 | print('Tənliyin həqiqi kökləri yoxdur..') 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /JupyterFile/Modules/function.py: -------------------------------------------------------------------------------- 1 | def toplama(x,y): 2 | """ 3 | funksiya toplama əməlini yerinə yetirir. 4 | """ 5 | result = x+y 6 | return result 7 | def çıxma(x,y): 8 | """ 9 | funksiya çıxma əməlini yerinə yetirir. 10 | """ 11 | result = x-y 12 | return result 13 | def hasil(x,y): 14 | """ 15 | funksiya vurma əməlini yerinə yetirir. 16 | """ 17 | result = x*y 18 | return result 19 | 20 | def bölmə(x,y): 21 | """ 22 | funksiya bölmə əməlini yerinə yetirir. 23 | """ 24 | result = x/y 25 | return result -------------------------------------------------------------------------------- /JupyterFile/Modules/test.py: -------------------------------------------------------------------------------- 1 | import discriminant 2 | 3 | print(discriminant.diskriminant(-1,2.4,0.5)) -------------------------------------------------------------------------------- /JupyterFile/Package/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /workspace.xml -------------------------------------------------------------------------------- /JupyterFile/Package/.idea/Package.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /JupyterFile/Package/.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /JupyterFile/Package/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /JupyterFile/Package/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /JupyterFile/Package/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /JupyterFile/Package/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/Package/__init__.py -------------------------------------------------------------------------------- /JupyterFile/Package/data/Calculate/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['calculate'] -------------------------------------------------------------------------------- /JupyterFile/Package/data/Calculate/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/Package/data/Calculate/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/Package/data/Calculate/__pycache__/calculate.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/Package/data/Calculate/__pycache__/calculate.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/Package/data/Calculate/calculate.py: -------------------------------------------------------------------------------- 1 | 2 | def factorial_recursive(n): 3 | """ 4 | Returns factorial of a given number using recursion. 5 | 6 | fact(1) -------> 1 7 | 8 | """ 9 | if n == 1: 10 | return 1 11 | else: 12 | return n * factorial_recursive(n-1) 13 | -------------------------------------------------------------------------------- /JupyterFile/Package/data/Generate/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['generate'] -------------------------------------------------------------------------------- /JupyterFile/Package/data/Generate/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/Package/data/Generate/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/Package/data/Generate/__pycache__/generate.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/Package/data/Generate/__pycache__/generate.cpython-36.pyc -------------------------------------------------------------------------------- /JupyterFile/Package/data/Generate/generate.py: -------------------------------------------------------------------------------- 1 | def Generasiya(n): 2 | generator = (i for i in range(n)) 3 | generator = iter(generator) 4 | while True: 5 | try: 6 | print (next(generator)) 7 | except StopIteration: 8 | break 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /JupyterFile/Package/package.py: -------------------------------------------------------------------------------- 1 | import data.Calculate as dc 2 | print(dc.__all__) -------------------------------------------------------------------------------- /JupyterFile/Python-Sqlite/.ipynb_checkpoints/PythonSqlite-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "### Sqlite3" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Yükləmək üçün" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 1, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "# Unix/Linux" 24 | ] 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "metadata": {}, 29 | "source": [ 30 | "\n", 31 | "\n", 32 | "\n", 33 | "sudo apt-get install sqlite3 \n", 34 | "sudo pip3 install sqlite3\n", 35 | "\n", 36 | "\n" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 2, 42 | "metadata": {}, 43 | "outputs": [], 44 | "source": [ 45 | "#Windows" 46 | ] 47 | }, 48 | { 49 | "cell_type": "markdown", 50 | "metadata": {}, 51 | "source": [ 52 | "\n", 53 | "\n", 54 | "pip3 install sqlite3 \n", 55 | "" 56 | ] 57 | }, 58 | { 59 | "cell_type": "markdown", 60 | "metadata": {}, 61 | "source": [ 62 | "Əgər sisteminizə anaconda platformasını yükləmisinizsə.pip3 yazmağa ehtiyyac yoxdur.Sadəcə olaraq pip install sqlite3 yazmağınız kifayətdir." 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": null, 68 | "metadata": {}, 69 | "outputs": [], 70 | "source": [] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": 3, 75 | "metadata": {}, 76 | "outputs": [], 77 | "source": [ 78 | "import sqlite3 # kitabxananı çağırırıq" 79 | ] 80 | }, 81 | { 82 | "cell_type": "markdown", 83 | "metadata": {}, 84 | "source": [ 85 | "Kitabxana,baza yaratmağımız üçün əlverişlidir.Bundan savayı mysql pymongo kimi digər kitabxanalardan da istifadə edə bilərsiniz.Qeyd edimki hər birinin kökü sql sorğu prinspinə dayanır.Və kodlarımızı yazaq." 86 | ] 87 | }, 88 | { 89 | "cell_type": "markdown", 90 | "metadata": {}, 91 | "source": [ 92 | "Bazanı hazırlamaq üçün iki üsul var.Birincisi ram üzərindən digəri həqiqi disk üzərində." 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 4, 98 | "metadata": {}, 99 | "outputs": [], 100 | "source": [ 101 | "import sqlite3\n", 102 | "\n", 103 | "db = sqlite3.connect('database.db')" 104 | ] 105 | }, 106 | { 107 | "cell_type": "markdown", 108 | "metadata": {}, 109 | "source": [ 110 | "Yuxarıdakı üsulla disk üzərində baza hazırlayacaqsınız.Hal-hazırda mən qovluq yolunu göstərmədiyim üçün birbaşa olduğum cari qovluqda hazırlandı" 111 | ] 112 | }, 113 | { 114 | "cell_type": "code", 115 | "execution_count": 5, 116 | "metadata": {}, 117 | "outputs": [ 118 | { 119 | "name": "stdout", 120 | "output_type": "stream", 121 | "text": [ 122 | " Volume in drive C has no label.\n", 123 | " Volume Serial Number is A4BB-1CFC\n", 124 | "\n", 125 | " Directory of C:\\Users\\garay\\OneDrive\\Documents\\GitHub\\Python3-AZ\\Python-Sqlite\n", 126 | "\n", 127 | "04/01/2020 09:17 AM .\n", 128 | "04/01/2020 09:17 AM ..\n", 129 | "03/31/2020 10:49 AM .ipynb_checkpoints\n", 130 | "04/01/2020 09:17 AM DATA\n", 131 | "04/01/2020 09:17 AM 0 database.db\n", 132 | "04/01/2020 09:16 AM 22,341 PythonSqlite.ipynb\n", 133 | " 2 File(s) 22,341 bytes\n", 134 | " 4 Dir(s) 317,554,704,384 bytes free\n" 135 | ] 136 | } 137 | ], 138 | "source": [ 139 | "!dir" 140 | ] 141 | }, 142 | { 143 | "cell_type": "markdown", 144 | "metadata": {}, 145 | "source": [ 146 | "İkinci metod isə ram üzərində" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 6, 152 | "metadata": {}, 153 | "outputs": [], 154 | "source": [ 155 | "import sqlite3\n", 156 | "\n", 157 | "db = sqlite3.connect(':memory:')" 158 | ] 159 | }, 160 | { 161 | "cell_type": "markdown", 162 | "metadata": {}, 163 | "source": [ 164 | "Yuxarıdakı nümunədə isə baza adı yazmağa belə ehtiyyac olmadı.Biz amma bu bəhsdə,ilkin metodu istifadə edəcəyik" 165 | ] 166 | }, 167 | { 168 | "cell_type": "code", 169 | "execution_count": 7, 170 | "metadata": {}, 171 | "outputs": [], 172 | "source": [ 173 | "import sqlite3\n", 174 | "\n", 175 | "db = sqlite3.connect('DATA/database.db')" 176 | ] 177 | }, 178 | { 179 | "cell_type": "markdown", 180 | "metadata": {}, 181 | "source": [ 182 | "SQL sorğu əmrlərini sqlite tərəfindən hazırlanır.Və çalışdırıla bilməsi üçün execute əmrinə ehtiyyacımız var." 183 | ] 184 | }, 185 | { 186 | "cell_type": "code", 187 | "execution_count": 8, 188 | "metadata": {}, 189 | "outputs": [], 190 | "source": [ 191 | "import sqlite3\n", 192 | "db = sqlite3.connect('DATA/database.db')\n", 193 | "cursor = db.cursor()\n" 194 | ] 195 | }, 196 | { 197 | "cell_type": "markdown", 198 | "metadata": {}, 199 | "source": [ 200 | "#### cədvəl hazırlama" 201 | ] 202 | }, 203 | { 204 | "cell_type": "markdown", 205 | "metadata": {}, 206 | "source": [ 207 | "SQL : CREATE TABLE person ('name','surname','email','password')" 208 | ] 209 | }, 210 | { 211 | "cell_type": "code", 212 | "execution_count": 9, 213 | "metadata": {}, 214 | "outputs": [ 215 | { 216 | "data": { 217 | "text/plain": [ 218 | "" 219 | ] 220 | }, 221 | "execution_count": 9, 222 | "metadata": {}, 223 | "output_type": "execute_result" 224 | } 225 | ], 226 | "source": [ 227 | "import sqlite3\n", 228 | "db = sqlite3.connect('DATA/database.db')\n", 229 | "cursor = db.cursor()\n", 230 | "cursor.execute(\"CREATE TABLE person ('name','surname','email','password','salary','employment')\")" 231 | ] 232 | }, 233 | { 234 | "cell_type": "markdown", 235 | "metadata": {}, 236 | "source": [ 237 | "Əgər təkrar çalışdırsanız yuxarıdakı xətanı alacaqsınız.kodlarımıza bəzi əlavələr edək" 238 | ] 239 | }, 240 | { 241 | "cell_type": "markdown", 242 | "metadata": {}, 243 | "source": [ 244 | "Çünki əvvəl biz cədvəli qeyd etdik çalışdırdıq,təkrar çalışdırdıqda bu tip xəta aldıq.Bunu qabaqlamaq üçün" 245 | ] 246 | }, 247 | { 248 | "cell_type": "code", 249 | "execution_count": 10, 250 | "metadata": {}, 251 | "outputs": [ 252 | { 253 | "name": "stdout", 254 | "output_type": "stream", 255 | "text": [ 256 | "Ok\n" 257 | ] 258 | } 259 | ], 260 | "source": [ 261 | "import sqlite3\n", 262 | "\n", 263 | "try:\n", 264 | " db = sqlite3.connect('DATA/database.db')\n", 265 | " cursor = db.cursor()\n", 266 | " cursor.execute(\"CREATE TABLE person ('name','surname','email','password','salary','employment')\")\n", 267 | " print('Database created')\n", 268 | "except sqlite3.OperationalError:\n", 269 | " db = sqlite3.connect('DATA/database.db')\n", 270 | " cursor = db.cursor()\n", 271 | " cursor.execute(\"CREATE TABLE IF NOT EXISTS person ('name','surname','email','password','salary','employment')\")\n", 272 | " print('Ok')\n", 273 | " \n", 274 | " " 275 | ] 276 | }, 277 | { 278 | "cell_type": "code", 279 | "execution_count": 11, 280 | "metadata": {}, 281 | "outputs": [], 282 | "source": [ 283 | "#Məlumatların əlavə edilməsi" 284 | ] 285 | }, 286 | { 287 | "cell_type": "code", 288 | "execution_count": 12, 289 | "metadata": {}, 290 | "outputs": [ 291 | { 292 | "name": "stdout", 293 | "output_type": "stream", 294 | "text": [ 295 | "Ok\n", 296 | "Məlumatlar əlavə olundu\n" 297 | ] 298 | } 299 | ], 300 | "source": [ 301 | "import sqlite3\n", 302 | "\n", 303 | "try:\n", 304 | " db = sqlite3.connect('DATA/database.db')\n", 305 | " cursor = db.cursor()\n", 306 | " cursor.execute(\"CREATE TABLE person ('name','surname','email','password','salary','employment')\")\n", 307 | " print('Database created')\n", 308 | "except sqlite3.OperationalError:\n", 309 | " db = sqlite3.connect('DATA/database.db')\n", 310 | " cursor = db.cursor()\n", 311 | " cursor.execute(\"CREATE TABLE IF NOT EXISTS person ('name','surname','email','password','salary','employment')\")\n", 312 | " print('Ok')\n", 313 | " cursor.execute(\"INSERT INTO person VALUES ('Rəşad','Qarayev','garayevrashad@hotmail.com','123456',2000,'Python C/C++')\")\n", 314 | " cursor.execute(\"INSERT INTO person VALUES ('Eldar','Əliyev','example@hotmail.com','asdfg',2000,'Back-end Developer')\")\n", 315 | " cursor.execute(\"INSERT INTO person VALUES ('Vüsalə','Əliyeva','valiyeva@hotmail.com','v1999',1800,'Managment')\")\n", 316 | " cursor.execute(\"INSERT INTO person VALUES ('Arzu','Əliyeva','arzu@hotmail.com','v1987',4000,'Team Leader')\")\n", 317 | " db.commit() #məlumatları bazaya əlavə edirik\n", 318 | " \n", 319 | " print('Məlumatlar əlavə olundu')" 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "execution_count": 13, 325 | "metadata": {}, 326 | "outputs": [], 327 | "source": [ 328 | "#Bazadakı məlumatları oxuyaq" 329 | ] 330 | }, 331 | { 332 | "cell_type": "code", 333 | "execution_count": 14, 334 | "metadata": {}, 335 | "outputs": [ 336 | { 337 | "name": "stdout", 338 | "output_type": "stream", 339 | "text": [ 340 | "[('Vüsalə', 'Əliyeva'), ('Arzu', 'Əliyeva')]\n" 341 | ] 342 | } 343 | ], 344 | "source": [ 345 | "import sqlite3\n", 346 | "\n", 347 | "try:\n", 348 | " db = sqlite3.connect('DATA/database.db')\n", 349 | " cursor = db.cursor()\n", 350 | " cursor.execute(\"SELECT name,surname FROM person WHERE surname='Əliyeva'\")\n", 351 | " data = cursor.fetchall()\n", 352 | " print(data)\n", 353 | "except sqlite3.OperationalError:\n", 354 | " print('Error')\n", 355 | " " 356 | ] 357 | }, 358 | { 359 | "cell_type": "code", 360 | "execution_count": 15, 361 | "metadata": {}, 362 | "outputs": [ 363 | { 364 | "name": "stdout", 365 | "output_type": "stream", 366 | "text": [ 367 | "Ad : Vüsalə\n", 368 | "Soyad : Əliyeva\n", 369 | "Ad : Arzu\n", 370 | "Soyad : Əliyeva\n" 371 | ] 372 | } 373 | ], 374 | "source": [ 375 | "import sqlite3\n", 376 | "\n", 377 | "try:\n", 378 | " db = sqlite3.connect('DATA/database.db')\n", 379 | " cursor = db.cursor()\n", 380 | " cursor.execute(\"SELECT name,surname FROM person WHERE surname='Əliyeva'\")\n", 381 | " data = cursor.fetchall()\n", 382 | " for i in data:\n", 383 | " print('Ad :',i[0])\n", 384 | " print('Soyad :',i[1])\n", 385 | "except sqlite3.OperationalError:\n", 386 | " print('Error')" 387 | ] 388 | }, 389 | { 390 | "cell_type": "markdown", 391 | "metadata": {}, 392 | "source": [ 393 | "Bazada Əliyeva soyadı olan şəxsləri sorğu ilə əldə etdik" 394 | ] 395 | }, 396 | { 397 | "cell_type": "code", 398 | "execution_count": 16, 399 | "metadata": {}, 400 | "outputs": [], 401 | "source": [ 402 | "#Update - məlumatları yeniləmək" 403 | ] 404 | }, 405 | { 406 | "cell_type": "markdown", 407 | "metadata": {}, 408 | "source": [ 409 | "Şirkətimizə yeni işçi gəldi və biz bu işçini işdən çıxan işçi ilə əvəzləməliyik.Yenidən bazaya əlavə etmək yerinə,çıxarılan işçinin məlumatlarını yeni işçinin məlumatları ilə əvəzləyək" 410 | ] 411 | }, 412 | { 413 | "cell_type": "code", 414 | "execution_count": 17, 415 | "metadata": {}, 416 | "outputs": [ 417 | { 418 | "name": "stdout", 419 | "output_type": "stream", 420 | "text": [ 421 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456')\n", 422 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg')\n", 423 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999')\n", 424 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000')\n" 425 | ] 426 | } 427 | ], 428 | "source": [ 429 | "\n", 430 | "import sqlite3\n", 431 | "\n", 432 | "try:\n", 433 | " db = sqlite3.connect('DATA/database.db')\n", 434 | " cursor = db.cursor()\n", 435 | " cursor.execute(\"UPDATE person SET name='Kəmalə',surname='Məlikova',email='km11@gmail.com',password='km2000' WHERE name='Arzu'\")\n", 436 | " \n", 437 | " cursor.execute(\"SELECT name,surname,email,password FROM person \")\n", 438 | " db.commit()\n", 439 | " data = cursor.fetchall()\n", 440 | " for i in data:\n", 441 | " print(i)\n", 442 | " db.close()\n", 443 | "except sqlite3.OperationalError:\n", 444 | " print('Error')" 445 | ] 446 | }, 447 | { 448 | "cell_type": "code", 449 | "execution_count": 18, 450 | "metadata": {}, 451 | "outputs": [], 452 | "source": [ 453 | "#Yeni sütun əlavə edək" 454 | ] 455 | }, 456 | { 457 | "cell_type": "code", 458 | "execution_count": 19, 459 | "metadata": {}, 460 | "outputs": [ 461 | { 462 | "name": "stdout", 463 | "output_type": "stream", 464 | "text": [ 465 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 466 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n", 467 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n", 468 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n" 469 | ] 470 | } 471 | ], 472 | "source": [ 473 | "import sqlite3\n", 474 | "\n", 475 | "try:\n", 476 | " db = sqlite3.connect('DATA/database.db')\n", 477 | " cursor = db.cursor()\n", 478 | " cursor.execute(\"SELECT * from person\")\n", 479 | " data = cursor.fetchall()\n", 480 | " \n", 481 | " \n", 482 | " for i in data:\n", 483 | " print(i)\n", 484 | " db.close()\n", 485 | "except sqlite3.OperationalError:\n", 486 | " print('Error')" 487 | ] 488 | }, 489 | { 490 | "cell_type": "code", 491 | "execution_count": 20, 492 | "metadata": {}, 493 | "outputs": [], 494 | "source": [ 495 | "#ORDER BY verilənləri,sorğu arqumentinə uyğun sıralayır.Məsələn,id lərə adlara görə,maaş az-çox məsələsinə görə" 496 | ] 497 | }, 498 | { 499 | "cell_type": "code", 500 | "execution_count": 21, 501 | "metadata": {}, 502 | "outputs": [ 503 | { 504 | "name": "stdout", 505 | "output_type": "stream", 506 | "text": [ 507 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n", 508 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 509 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n", 510 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n" 511 | ] 512 | } 513 | ], 514 | "source": [ 515 | "import sqlite3\n", 516 | "\n", 517 | "try:\n", 518 | " db = sqlite3.connect('DATA/database.db')\n", 519 | " cursor = db.cursor()\n", 520 | " cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY name DESC\") #adlara uyğun - əlifba sırası ilə\n", 521 | " data = cursor.fetchall()\n", 522 | " for i in data:\n", 523 | " print(i)\n", 524 | " db.close()\n", 525 | "except sqlite3.OperationalError:\n", 526 | " print('Error')" 527 | ] 528 | }, 529 | { 530 | "cell_type": "code", 531 | "execution_count": 22, 532 | "metadata": {}, 533 | "outputs": [ 534 | { 535 | "name": "stdout", 536 | "output_type": "stream", 537 | "text": [ 538 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n", 539 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 540 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n", 541 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n" 542 | ] 543 | } 544 | ], 545 | "source": [ 546 | "import sqlite3\n", 547 | "\n", 548 | "try:\n", 549 | " db = sqlite3.connect('DATA/database.db')\n", 550 | " cursor = db.cursor()\n", 551 | " cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\") #maaşa görə çoxdan-aza doğru\n", 552 | " data = cursor.fetchall()\n", 553 | " for i in data:\n", 554 | " print(i)\n", 555 | " db.close()\n", 556 | "except sqlite3.OperationalError:\n", 557 | " print('Error')" 558 | ] 559 | }, 560 | { 561 | "cell_type": "code", 562 | "execution_count": 23, 563 | "metadata": {}, 564 | "outputs": [], 565 | "source": [ 566 | "#maaşı 2000 dən aşağı olanları ekrana çap edək" 567 | ] 568 | }, 569 | { 570 | "cell_type": "code", 571 | "execution_count": 24, 572 | "metadata": {}, 573 | "outputs": [ 574 | { 575 | "name": "stdout", 576 | "output_type": "stream", 577 | "text": [ 578 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n" 579 | ] 580 | } 581 | ], 582 | "source": [ 583 | "import sqlite3\n", 584 | "\n", 585 | "try:\n", 586 | " db = sqlite3.connect('DATA/database.db')\n", 587 | " cursor = db.cursor()\n", 588 | " cursor.execute(\"SELECT DISTINCT * FROM person WHERE salary < 2000\") #maaşa görə çoxdan-aza doğru\n", 589 | " data = cursor.fetchall()\n", 590 | " for i in data:\n", 591 | " print(i)\n", 592 | " \n", 593 | " db.close()\n", 594 | "except sqlite3.OperationalError:\n", 595 | " print('Error')" 596 | ] 597 | }, 598 | { 599 | "cell_type": "code", 600 | "execution_count": 25, 601 | "metadata": {}, 602 | "outputs": [], 603 | "source": [ 604 | "#Aşağı maaşlı işçinin maaşını artıraq" 605 | ] 606 | }, 607 | { 608 | "cell_type": "code", 609 | "execution_count": 26, 610 | "metadata": {}, 611 | "outputs": [ 612 | { 613 | "name": "stdout", 614 | "output_type": "stream", 615 | "text": [ 616 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 617 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n", 618 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 2400, 'Managment')\n", 619 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n" 620 | ] 621 | } 622 | ], 623 | "source": [ 624 | "\n", 625 | "import sqlite3\n", 626 | "\n", 627 | "try:\n", 628 | " db = sqlite3.connect('DATA/database.db')\n", 629 | " cursor = db.cursor()\n", 630 | " cursor.execute(\"UPDATE person SET salary=2400 WHERE name='Vüsalə'\")\n", 631 | " cursor.execute(\"SELECT * from person\")\n", 632 | " data = cursor.fetchall()\n", 633 | " for i in data:\n", 634 | " print(i)\n", 635 | " db.commit()\n", 636 | " db.close()\n", 637 | "except sqlite3.OperationalError:\n", 638 | " print('Error')" 639 | ] 640 | }, 641 | { 642 | "cell_type": "code", 643 | "execution_count": 27, 644 | "metadata": {}, 645 | "outputs": [], 646 | "source": [ 647 | "#Şəxsi bazadan kənarlaşdıraq" 648 | ] 649 | }, 650 | { 651 | "cell_type": "code", 652 | "execution_count": 28, 653 | "metadata": {}, 654 | "outputs": [], 655 | "source": [ 656 | "#DELETE FROM" 657 | ] 658 | }, 659 | { 660 | "cell_type": "code", 661 | "execution_count": 29, 662 | "metadata": {}, 663 | "outputs": [ 664 | { 665 | "name": "stdout", 666 | "output_type": "stream", 667 | "text": [ 668 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 669 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 2400, 'Managment')\n", 670 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n" 671 | ] 672 | } 673 | ], 674 | "source": [ 675 | "\n", 676 | "import sqlite3\n", 677 | "\n", 678 | "try:\n", 679 | " db = sqlite3.connect('DATA/database.db')\n", 680 | " cursor = db.cursor()\n", 681 | " cursor.execute(\"DELETE FROM person WHERE employment == 'Back-end Developer'\")\n", 682 | " cursor.execute(\"SELECT * from person\")\n", 683 | " data = cursor.fetchall()\n", 684 | " for i in data:\n", 685 | " print(i)\n", 686 | " db.commit()\n", 687 | " db.close()\n", 688 | "except sqlite3.OperationalError:\n", 689 | " print('Error')" 690 | ] 691 | }, 692 | { 693 | "cell_type": "markdown", 694 | "metadata": {}, 695 | "source": [ 696 | "Istənilən məlumata görə şəxsi bazadan kənarlaşdırmaq mümkündür.DELETE FROM person WHERE salary == 4000 qeyd etsəydik,bu səfər maaşa görə şəxsi kənarlaşdıracaqdıq" 697 | ] 698 | }, 699 | { 700 | "cell_type": "code", 701 | "execution_count": 30, 702 | "metadata": {}, 703 | "outputs": [], 704 | "source": [ 705 | "#Sum hesabi cəm" 706 | ] 707 | }, 708 | { 709 | "cell_type": "markdown", 710 | "metadata": {}, 711 | "source": [ 712 | "Şirkət daxilində işçilərə verilən maaşın ümumi cəmini əldə edə bilərik." 713 | ] 714 | }, 715 | { 716 | "cell_type": "code", 717 | "execution_count": 35, 718 | "metadata": {}, 719 | "outputs": [ 720 | { 721 | "name": "stdout", 722 | "output_type": "stream", 723 | "text": [ 724 | "[(8400,)]\n" 725 | ] 726 | } 727 | ], 728 | "source": [ 729 | "import sqlite3\n", 730 | "\n", 731 | "try:\n", 732 | " db = sqlite3.connect('DATA/database.db')\n", 733 | " cursor = db.cursor()\n", 734 | " cursor.execute(\"SELECT SUM(salary) FROM person\")\n", 735 | " data = cursor.fetchall()\n", 736 | " print(data)\n", 737 | " db.commit()\n", 738 | " db.close()\n", 739 | "except sqlite3.OperationalError:\n", 740 | " print('Error')" 741 | ] 742 | }, 743 | { 744 | "cell_type": "code", 745 | "execution_count": 36, 746 | "metadata": {}, 747 | "outputs": [], 748 | "source": [ 749 | "# mean və ya average termini\n", 750 | "#İşçilərin ümumi maaşlarının ortaq qiymətini çıxara bilərik.İşçi maaşları toplanır daha sonra işçilərin sayına bölünür" 751 | ] 752 | }, 753 | { 754 | "cell_type": "code", 755 | "execution_count": null, 756 | "metadata": {}, 757 | "outputs": [], 758 | "source": [] 759 | }, 760 | { 761 | "cell_type": "code", 762 | "execution_count": 39, 763 | "metadata": {}, 764 | "outputs": [ 765 | { 766 | "name": "stdout", 767 | "output_type": "stream", 768 | "text": [ 769 | "[(2800.0,)]\n" 770 | ] 771 | } 772 | ], 773 | "source": [ 774 | "import sqlite3\n", 775 | "\n", 776 | "try:\n", 777 | " db = sqlite3.connect('DATA/database.db')\n", 778 | " cursor = db.cursor()\n", 779 | " cursor.execute(\"SELECT AVG(salary) FROM person\")\n", 780 | " data = cursor.fetchall()\n", 781 | " print(data)\n", 782 | " db.commit()\n", 783 | " db.close()\n", 784 | "except sqlite3.OperationalError:\n", 785 | " print('Error')" 786 | ] 787 | }, 788 | { 789 | "cell_type": "code", 790 | "execution_count": 40, 791 | "metadata": {}, 792 | "outputs": [], 793 | "source": [ 794 | "# min və max " 795 | ] 796 | }, 797 | { 798 | "cell_type": "code", 799 | "execution_count": 49, 800 | "metadata": {}, 801 | "outputs": [ 802 | { 803 | "name": "stdout", 804 | "output_type": "stream", 805 | "text": [ 806 | "[(4000,)]\n" 807 | ] 808 | } 809 | ], 810 | "source": [ 811 | "import sqlite3\n", 812 | "\n", 813 | "try:\n", 814 | " db = sqlite3.connect('DATA/database.db')\n", 815 | " cursor = db.cursor()\n", 816 | " cursor.execute(\"SELECT max(salary) FROM person\")\n", 817 | " maximum = cursor.fetchall()\n", 818 | " print(maximum)\n", 819 | " db.close()\n", 820 | "except sqlite3.OperationalError:\n", 821 | " print('Error')" 822 | ] 823 | }, 824 | { 825 | "cell_type": "code", 826 | "execution_count": 50, 827 | "metadata": {}, 828 | "outputs": [ 829 | { 830 | "name": "stdout", 831 | "output_type": "stream", 832 | "text": [ 833 | "[(2000,)]\n" 834 | ] 835 | } 836 | ], 837 | "source": [ 838 | "import sqlite3\n", 839 | "\n", 840 | "try:\n", 841 | " db = sqlite3.connect('DATA/database.db')\n", 842 | " cursor = db.cursor()\n", 843 | " cursor.execute(\"SELECT min(salary) FROM person\")\n", 844 | " minimum = cursor.fetchall()\n", 845 | " print(minimum)\n", 846 | " db.close()\n", 847 | "except sqlite3.OperationalError:\n", 848 | " print('Error')" 849 | ] 850 | }, 851 | { 852 | "cell_type": "code", 853 | "execution_count": 51, 854 | "metadata": {}, 855 | "outputs": [], 856 | "source": [ 857 | "#like" 858 | ] 859 | }, 860 | { 861 | "cell_type": "markdown", 862 | "metadata": {}, 863 | "source": [ 864 | "Bəzi vəziyyətlərdə ad soyad kimi elementləri bilmədiyimiz təqdirdə baş hərfi ilə də elementləri əldə etmək kimi vəziyyətlə rastlaşa bilərik" 865 | ] 866 | }, 867 | { 868 | "cell_type": "code", 869 | "execution_count": 56, 870 | "metadata": {}, 871 | "outputs": [ 872 | { 873 | "name": "stdout", 874 | "output_type": "stream", 875 | "text": [ 876 | "[('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')]\n" 877 | ] 878 | } 879 | ], 880 | "source": [ 881 | "import sqlite3\n", 882 | "\n", 883 | "try:\n", 884 | " db = sqlite3.connect('DATA/database.db')\n", 885 | " cursor = db.cursor()\n", 886 | " cursor.execute(\"SELECT * FROM person WHERE name LIKE 'R%'\")\n", 887 | " data = cursor.fetchall()\n", 888 | " print(data)\n", 889 | " db.close()\n", 890 | "except sqlite3.OperationalError:\n", 891 | " print('Error')" 892 | ] 893 | }, 894 | { 895 | "cell_type": "code", 896 | "execution_count": 57, 897 | "metadata": {}, 898 | "outputs": [], 899 | "source": [ 900 | "#R ilə başlayan elementi sorğuya çəkdik" 901 | ] 902 | }, 903 | { 904 | "cell_type": "code", 905 | "execution_count": null, 906 | "metadata": {}, 907 | "outputs": [], 908 | "source": [] 909 | }, 910 | { 911 | "cell_type": "markdown", 912 | "metadata": {}, 913 | "source": [ 914 | "##### Obyekt Yönümlü proqramlaşdırmadan istifadə edərək proqram hazırlayaq" 915 | ] 916 | }, 917 | { 918 | "cell_type": "code", 919 | "execution_count": 7, 920 | "metadata": {}, 921 | "outputs": [], 922 | "source": [ 923 | "import sqlite3\n", 924 | "\n", 925 | "class Company():\n", 926 | " def __init__(self):\n", 927 | " self.fullname = None\n", 928 | " self.email = None\n", 929 | " self.mobile = None\n", 930 | " self.salary = None\n", 931 | " self.employment = None\n", 932 | " self.db = sqlite3.connect('database.db')\n", 933 | " self.cursor = self.db.cursor()\n", 934 | " self.cursor.execute(\"CREATE TABLE IF NOT EXISTS person ('fullname','email','mobile','salary','employment')\")\n", 935 | " self.db.commit()\n", 936 | " self.db.close()#Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 937 | " def add(self):\n", 938 | " while True:\n", 939 | " try:\n", 940 | " self.fullname = input('Ad və Soyad(exam. Rəşad Qarayev):')\n", 941 | " self.email = input('Poçt:')\n", 942 | " self.mobile = input('Əlaqə nömrəsi:')\n", 943 | " self.salary = int(input('Maaş:'))\n", 944 | " self.employment = input('Məşğulluq (for exam: python):')\n", 945 | " self.db = sqlite3.connect('database.db')\n", 946 | " self.cursor = self.db.cursor()\n", 947 | " if self.employment == 'Şirkət rəhbəri':\n", 948 | " \n", 949 | " self.cursor.execute(\"INSERT INTO person VALUES ('{}','{}','{}','{}','Şirkət rəhbəri')\".format(self.fullname,self.email,self.mobile,self.salary))\n", 950 | " else:\n", 951 | " self.cursor.execute(\"INSERT INTO person VALUES ('{}','{}','{}','{}','{}')\".format(self.fullname,self.email,self.mobile,self.salary,self.employment))\n", 952 | " self.db.commit()\n", 953 | " self.db.close()#Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 954 | " print('Məlumatlar bazaya əlavə olundu')\n", 955 | " break\n", 956 | " except sqlite3.OperationalError:\n", 957 | " print('Error')\n", 958 | " except ValueError:\n", 959 | " print('Şəxs haqqında yalnış məlumat daxil etmisiniz')\n", 960 | " \n", 961 | "class Database(Company):\n", 962 | " def __init__(self):\n", 963 | " Company.__init__(self)\n", 964 | "\n", 965 | " def __str__(self):\n", 966 | " self.db = sqlite3.connect('database.db')\n", 967 | " self.cursor = self.db.cursor()\n", 968 | " self.cursor.execute(\"SELECT fullname,email,mobile,salary,employment FROM person\")\n", 969 | " self.cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\")\n", 970 | " self.data = self.cursor.fetchall()\n", 971 | " for i in self.data:\n", 972 | " \n", 973 | " print(i)\n", 974 | " self.db.close()\n", 975 | " \n", 976 | " def _update(self):\n", 977 | " self.fullname = input('Şəxsin ad və soyadını qeyd edin:')\n", 978 | " self.salary = int(input('Maaşını qeyd edin:'))\n", 979 | " self.db = sqlite3.connect('database.db')\n", 980 | " self.cursor = self.db.cursor()\n", 981 | " self.cursor.execute(\"UPDATE person SET salary='{}' WHERE fullname='{}'\".format(self.salary,self.fullname))\n", 982 | " self.cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\")\n", 983 | " self.db.commit()\n", 984 | " self.db.close()#Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 985 | " print('{} şəxsin maaşı yeniləndi'.format(self.fullname))\n", 986 | " def _delete(self):\n", 987 | " try:\n", 988 | " self.params = input('Kənarlaşdıracağınız şəxsin poçt ünvanını qeyd edin:')\n", 989 | " self.db = sqlite3.connect('database.db')\n", 990 | " self.cursor = self.db.cursor()\n", 991 | " self.cursor.execute(\"DELETE FROM person WHERE email == '{}'\".format(self.params))\n", 992 | " print('{} şəxs,bazadan kənarlaşdırıldı.'.format(self.params))\n", 993 | " self.cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\")\n", 994 | " self.db.commit()\n", 995 | " self.db.close() #Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 996 | " except sqlite3.OperationalError:\n", 997 | " print('Ops')\n", 998 | "class Manager(Company):\n", 999 | " def __init__(self):\n", 1000 | " Company.__init__(self)\n", 1001 | " \n", 1002 | " def __str__(self):\n", 1003 | " self.db = sqlite3.connect('database.db')\n", 1004 | " self.cursor = self.db.cursor()\n", 1005 | " self.cursor.execute(\"SELECT fullname,email,mobile,salary,employment FROM person WHERE employment='Şirkət rəhbəri'\")\n", 1006 | " \n", 1007 | " self.data = self.cursor.fetchall()\n", 1008 | " for i in self.data:\n", 1009 | " print(i)\n", 1010 | " self.db.close()" 1011 | ] 1012 | }, 1013 | { 1014 | "cell_type": "code", 1015 | "execution_count": 8, 1016 | "metadata": {}, 1017 | "outputs": [], 1018 | "source": [ 1019 | "database = Database()" 1020 | ] 1021 | }, 1022 | { 1023 | "cell_type": "code", 1024 | "execution_count": 9, 1025 | "metadata": {}, 1026 | "outputs": [], 1027 | "source": [ 1028 | "manager = Manager()" 1029 | ] 1030 | }, 1031 | { 1032 | "cell_type": "code", 1033 | "execution_count": 10, 1034 | "metadata": {}, 1035 | "outputs": [ 1036 | { 1037 | "name": "stdout", 1038 | "output_type": "stream", 1039 | "text": [ 1040 | "['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_delete', '_update', 'add', 'cursor', 'db', 'email', 'employment', 'fullname', 'mobile', 'salary']\n" 1041 | ] 1042 | } 1043 | ], 1044 | "source": [ 1045 | "print(dir(database))" 1046 | ] 1047 | }, 1048 | { 1049 | "cell_type": "code", 1050 | "execution_count": 11, 1051 | "metadata": {}, 1052 | "outputs": [], 1053 | "source": [ 1054 | "database.__str__()" 1055 | ] 1056 | }, 1057 | { 1058 | "cell_type": "code", 1059 | "execution_count": 12, 1060 | "metadata": {}, 1061 | "outputs": [ 1062 | { 1063 | "name": "stdout", 1064 | "output_type": "stream", 1065 | "text": [ 1066 | "Ad və Soyad(exam. Rəşad Qarayev):Rəşad Qarayev\n", 1067 | "Poçt:garayevrashad@hotmail.com\n", 1068 | "Əlaqə nömrəsi:+994500\n", 1069 | "Maaş:4000\n", 1070 | "Məşğulluq (for exam: python):Python Developer\n", 1071 | "Məlumatlar bazaya əlavə olundu\n" 1072 | ] 1073 | } 1074 | ], 1075 | "source": [ 1076 | "database.add()" 1077 | ] 1078 | }, 1079 | { 1080 | "cell_type": "code", 1081 | "execution_count": 13, 1082 | "metadata": {}, 1083 | "outputs": [ 1084 | { 1085 | "name": "stdout", 1086 | "output_type": "stream", 1087 | "text": [ 1088 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n" 1089 | ] 1090 | } 1091 | ], 1092 | "source": [ 1093 | "database.__str__()" 1094 | ] 1095 | }, 1096 | { 1097 | "cell_type": "code", 1098 | "execution_count": 14, 1099 | "metadata": {}, 1100 | "outputs": [ 1101 | { 1102 | "name": "stdout", 1103 | "output_type": "stream", 1104 | "text": [ 1105 | "Ad və Soyad(exam. Rəşad Qarayev):Nigar Mahmudova\n", 1106 | "Poçt:ng@gmail.com\n", 1107 | "Əlaqə nömrəsi:+994600\n", 1108 | "Maaş:3800\n", 1109 | "Məşğulluq (for exam: python):Back-end Developer\n", 1110 | "Məlumatlar bazaya əlavə olundu\n" 1111 | ] 1112 | } 1113 | ], 1114 | "source": [ 1115 | "database.add()" 1116 | ] 1117 | }, 1118 | { 1119 | "cell_type": "code", 1120 | "execution_count": 15, 1121 | "metadata": {}, 1122 | "outputs": [ 1123 | { 1124 | "name": "stdout", 1125 | "output_type": "stream", 1126 | "text": [ 1127 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n", 1128 | "('Nigar Mahmudova', 'ng@gmail.com', '+994600', '3800', 'Back-end Developer')\n" 1129 | ] 1130 | } 1131 | ], 1132 | "source": [ 1133 | "database.__str__()" 1134 | ] 1135 | }, 1136 | { 1137 | "cell_type": "code", 1138 | "execution_count": 16, 1139 | "metadata": {}, 1140 | "outputs": [ 1141 | { 1142 | "name": "stdout", 1143 | "output_type": "stream", 1144 | "text": [ 1145 | "Ad və Soyad(exam. Rəşad Qarayev):Niyazi Əliyev\n", 1146 | "Poçt:na@hotmail.com\n", 1147 | "Əlaqə nömrəsi:+9945512\n", 1148 | "Maaş:3300\n", 1149 | "Məşğulluq (for exam: python):Qrafik Dizayner\n", 1150 | "Məlumatlar bazaya əlavə olundu\n", 1151 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n", 1152 | "('Nigar Mahmudova', 'ng@gmail.com', '+994600', '3800', 'Back-end Developer')\n", 1153 | "('Niyazi Əliyev', 'na@hotmail.com', '+9945512', '3300', 'Qrafik Dizayner')\n" 1154 | ] 1155 | } 1156 | ], 1157 | "source": [ 1158 | "database.add()\n", 1159 | "database.__str__()" 1160 | ] 1161 | }, 1162 | { 1163 | "cell_type": "code", 1164 | "execution_count": 17, 1165 | "metadata": {}, 1166 | "outputs": [ 1167 | { 1168 | "data": { 1169 | "text/plain": [ 1170 | "<__main__.Manager at 0x2dc56e04518>" 1171 | ] 1172 | }, 1173 | "execution_count": 17, 1174 | "metadata": {}, 1175 | "output_type": "execute_result" 1176 | } 1177 | ], 1178 | "source": [ 1179 | "manager" 1180 | ] 1181 | }, 1182 | { 1183 | "cell_type": "code", 1184 | "execution_count": 18, 1185 | "metadata": {}, 1186 | "outputs": [], 1187 | "source": [ 1188 | "manager.__str__()" 1189 | ] 1190 | }, 1191 | { 1192 | "cell_type": "code", 1193 | "execution_count": 19, 1194 | "metadata": {}, 1195 | "outputs": [ 1196 | { 1197 | "name": "stdout", 1198 | "output_type": "stream", 1199 | "text": [ 1200 | "Ad və Soyad(exam. Rəşad Qarayev):Vahid Ələkbərov\n", 1201 | "Poçt:vahid@gmail.com\n", 1202 | "Əlaqə nömrəsi:+9947023\n", 1203 | "Maaş:7800\n", 1204 | "Məşğulluq (for exam: python):Şirkət rəhbəri\n", 1205 | "Məlumatlar bazaya əlavə olundu\n" 1206 | ] 1207 | } 1208 | ], 1209 | "source": [ 1210 | "manager.add()" 1211 | ] 1212 | }, 1213 | { 1214 | "cell_type": "code", 1215 | "execution_count": 20, 1216 | "metadata": {}, 1217 | "outputs": [ 1218 | { 1219 | "name": "stdout", 1220 | "output_type": "stream", 1221 | "text": [ 1222 | "('Vahid Ələkbərov', 'vahid@gmail.com', '+9947023', '7800', 'Şirkət rəhbəri')\n" 1223 | ] 1224 | } 1225 | ], 1226 | "source": [ 1227 | "manager.__str__()" 1228 | ] 1229 | }, 1230 | { 1231 | "cell_type": "code", 1232 | "execution_count": 21, 1233 | "metadata": {}, 1234 | "outputs": [ 1235 | { 1236 | "name": "stdout", 1237 | "output_type": "stream", 1238 | "text": [ 1239 | "('Vahid Ələkbərov', 'vahid@gmail.com', '+9947023', '7800', 'Şirkət rəhbəri')\n", 1240 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n", 1241 | "('Nigar Mahmudova', 'ng@gmail.com', '+994600', '3800', 'Back-end Developer')\n", 1242 | "('Niyazi Əliyev', 'na@hotmail.com', '+9945512', '3300', 'Qrafik Dizayner')\n" 1243 | ] 1244 | } 1245 | ], 1246 | "source": [ 1247 | "database.__str__()" 1248 | ] 1249 | }, 1250 | { 1251 | "cell_type": "code", 1252 | "execution_count": null, 1253 | "metadata": {}, 1254 | "outputs": [], 1255 | "source": [] 1256 | } 1257 | ], 1258 | "metadata": { 1259 | "kernelspec": { 1260 | "display_name": "Python 3", 1261 | "language": "python", 1262 | "name": "python3" 1263 | }, 1264 | "language_info": { 1265 | "codemirror_mode": { 1266 | "name": "ipython", 1267 | "version": 3 1268 | }, 1269 | "file_extension": ".py", 1270 | "mimetype": "text/x-python", 1271 | "name": "python", 1272 | "nbconvert_exporter": "python", 1273 | "pygments_lexer": "ipython3", 1274 | "version": "3.6.10" 1275 | } 1276 | }, 1277 | "nbformat": 4, 1278 | "nbformat_minor": 4 1279 | } 1280 | -------------------------------------------------------------------------------- /JupyterFile/Python-Sqlite/DATA/database.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/Python-Sqlite/DATA/database.db -------------------------------------------------------------------------------- /JupyterFile/Python-Sqlite/PythonSqlite.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "### Sqlite3" 8 | ] 9 | }, 10 | { 11 | "cell_type": "markdown", 12 | "metadata": {}, 13 | "source": [ 14 | "Yükləmək üçün" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 1, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "# Unix/Linux" 24 | ] 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "metadata": {}, 29 | "source": [ 30 | "\n", 31 | "\n", 32 | "\n", 33 | "sudo apt-get install sqlite3 \n", 34 | "sudo pip3 install sqlite3\n", 35 | "\n", 36 | "\n" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 2, 42 | "metadata": {}, 43 | "outputs": [], 44 | "source": [ 45 | "#Windows" 46 | ] 47 | }, 48 | { 49 | "cell_type": "markdown", 50 | "metadata": {}, 51 | "source": [ 52 | "\n", 53 | "\n", 54 | "pip3 install sqlite3 \n", 55 | "" 56 | ] 57 | }, 58 | { 59 | "cell_type": "markdown", 60 | "metadata": {}, 61 | "source": [ 62 | "Əgər sisteminizə anaconda platformasını yükləmisinizsə.pip3 yazmağa ehtiyyac yoxdur.Sadəcə olaraq pip install sqlite3 yazmağınız kifayətdir." 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": null, 68 | "metadata": {}, 69 | "outputs": [], 70 | "source": [] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": 3, 75 | "metadata": {}, 76 | "outputs": [], 77 | "source": [ 78 | "import sqlite3 # kitabxananı çağırırıq" 79 | ] 80 | }, 81 | { 82 | "cell_type": "markdown", 83 | "metadata": {}, 84 | "source": [ 85 | "Kitabxana,baza yaratmağımız üçün əlverişlidir.Bundan savayı mysql pymongo kimi digər kitabxanalardan da istifadə edə bilərsiniz.Qeyd edimki hər birinin kökü sql sorğu prinspinə dayanır.Və kodlarımızı yazaq." 86 | ] 87 | }, 88 | { 89 | "cell_type": "markdown", 90 | "metadata": {}, 91 | "source": [ 92 | "Bazanı hazırlamaq üçün iki üsul var.Birincisi ram üzərindən digəri həqiqi disk üzərində." 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 4, 98 | "metadata": {}, 99 | "outputs": [], 100 | "source": [ 101 | "import sqlite3\n", 102 | "\n", 103 | "db = sqlite3.connect('database.db')" 104 | ] 105 | }, 106 | { 107 | "cell_type": "markdown", 108 | "metadata": {}, 109 | "source": [ 110 | "Yuxarıdakı üsulla disk üzərində baza hazırlayacaqsınız.Hal-hazırda mən qovluq yolunu göstərmədiyim üçün birbaşa olduğum cari qovluqda hazırlandı" 111 | ] 112 | }, 113 | { 114 | "cell_type": "code", 115 | "execution_count": 5, 116 | "metadata": {}, 117 | "outputs": [ 118 | { 119 | "name": "stdout", 120 | "output_type": "stream", 121 | "text": [ 122 | " Volume in drive C has no label.\n", 123 | " Volume Serial Number is A4BB-1CFC\n", 124 | "\n", 125 | " Directory of C:\\Users\\garay\\OneDrive\\Documents\\GitHub\\Python3-AZ\\Python-Sqlite\n", 126 | "\n", 127 | "04/01/2020 09:17 AM .\n", 128 | "04/01/2020 09:17 AM ..\n", 129 | "03/31/2020 10:49 AM .ipynb_checkpoints\n", 130 | "04/01/2020 09:17 AM DATA\n", 131 | "04/01/2020 09:17 AM 0 database.db\n", 132 | "04/01/2020 09:16 AM 22,341 PythonSqlite.ipynb\n", 133 | " 2 File(s) 22,341 bytes\n", 134 | " 4 Dir(s) 317,554,704,384 bytes free\n" 135 | ] 136 | } 137 | ], 138 | "source": [ 139 | "!dir" 140 | ] 141 | }, 142 | { 143 | "cell_type": "markdown", 144 | "metadata": {}, 145 | "source": [ 146 | "İkinci metod isə ram üzərində" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 6, 152 | "metadata": {}, 153 | "outputs": [], 154 | "source": [ 155 | "import sqlite3\n", 156 | "\n", 157 | "db = sqlite3.connect(':memory:')" 158 | ] 159 | }, 160 | { 161 | "cell_type": "markdown", 162 | "metadata": {}, 163 | "source": [ 164 | "Yuxarıdakı nümunədə isə baza adı yazmağa belə ehtiyyac olmadı.Biz amma bu bəhsdə,ilkin metodu istifadə edəcəyik" 165 | ] 166 | }, 167 | { 168 | "cell_type": "code", 169 | "execution_count": 7, 170 | "metadata": {}, 171 | "outputs": [], 172 | "source": [ 173 | "import sqlite3\n", 174 | "\n", 175 | "db = sqlite3.connect('DATA/database.db')" 176 | ] 177 | }, 178 | { 179 | "cell_type": "markdown", 180 | "metadata": {}, 181 | "source": [ 182 | "SQL sorğu əmrlərini sqlite tərəfindən hazırlanır.Və çalışdırıla bilməsi üçün execute əmrinə ehtiyyacımız var." 183 | ] 184 | }, 185 | { 186 | "cell_type": "code", 187 | "execution_count": 8, 188 | "metadata": {}, 189 | "outputs": [], 190 | "source": [ 191 | "import sqlite3\n", 192 | "db = sqlite3.connect('DATA/database.db')\n", 193 | "cursor = db.cursor()\n" 194 | ] 195 | }, 196 | { 197 | "cell_type": "markdown", 198 | "metadata": {}, 199 | "source": [ 200 | "#### cədvəl hazırlama" 201 | ] 202 | }, 203 | { 204 | "cell_type": "markdown", 205 | "metadata": {}, 206 | "source": [ 207 | "SQL : CREATE TABLE person ('name','surname','email','password')" 208 | ] 209 | }, 210 | { 211 | "cell_type": "code", 212 | "execution_count": 9, 213 | "metadata": {}, 214 | "outputs": [ 215 | { 216 | "data": { 217 | "text/plain": [ 218 | "" 219 | ] 220 | }, 221 | "execution_count": 9, 222 | "metadata": {}, 223 | "output_type": "execute_result" 224 | } 225 | ], 226 | "source": [ 227 | "import sqlite3\n", 228 | "db = sqlite3.connect('DATA/database.db')\n", 229 | "cursor = db.cursor()\n", 230 | "cursor.execute(\"CREATE TABLE person ('name','surname','email','password','salary','employment')\")" 231 | ] 232 | }, 233 | { 234 | "cell_type": "markdown", 235 | "metadata": {}, 236 | "source": [ 237 | "Əgər təkrar çalışdırsanız yuxarıdakı xətanı alacaqsınız.kodlarımıza bəzi əlavələr edək" 238 | ] 239 | }, 240 | { 241 | "cell_type": "markdown", 242 | "metadata": {}, 243 | "source": [ 244 | "Çünki əvvəl biz cədvəli qeyd etdik çalışdırdıq,təkrar çalışdırdıqda bu tip xəta aldıq.Bunu qabaqlamaq üçün" 245 | ] 246 | }, 247 | { 248 | "cell_type": "code", 249 | "execution_count": 10, 250 | "metadata": {}, 251 | "outputs": [ 252 | { 253 | "name": "stdout", 254 | "output_type": "stream", 255 | "text": [ 256 | "Ok\n" 257 | ] 258 | } 259 | ], 260 | "source": [ 261 | "import sqlite3\n", 262 | "\n", 263 | "try:\n", 264 | " db = sqlite3.connect('DATA/database.db')\n", 265 | " cursor = db.cursor()\n", 266 | " cursor.execute(\"CREATE TABLE person ('name','surname','email','password','salary','employment')\")\n", 267 | " print('Database created')\n", 268 | "except sqlite3.OperationalError:\n", 269 | " db = sqlite3.connect('DATA/database.db')\n", 270 | " cursor = db.cursor()\n", 271 | " cursor.execute(\"CREATE TABLE IF NOT EXISTS person ('name','surname','email','password','salary','employment')\")\n", 272 | " print('Ok')\n", 273 | " \n", 274 | " " 275 | ] 276 | }, 277 | { 278 | "cell_type": "code", 279 | "execution_count": 11, 280 | "metadata": {}, 281 | "outputs": [], 282 | "source": [ 283 | "#Məlumatların əlavə edilməsi" 284 | ] 285 | }, 286 | { 287 | "cell_type": "code", 288 | "execution_count": 12, 289 | "metadata": {}, 290 | "outputs": [ 291 | { 292 | "name": "stdout", 293 | "output_type": "stream", 294 | "text": [ 295 | "Ok\n", 296 | "Məlumatlar əlavə olundu\n" 297 | ] 298 | } 299 | ], 300 | "source": [ 301 | "import sqlite3\n", 302 | "\n", 303 | "try:\n", 304 | " db = sqlite3.connect('DATA/database.db')\n", 305 | " cursor = db.cursor()\n", 306 | " cursor.execute(\"CREATE TABLE person ('name','surname','email','password','salary','employment')\")\n", 307 | " print('Database created')\n", 308 | "except sqlite3.OperationalError:\n", 309 | " db = sqlite3.connect('DATA/database.db')\n", 310 | " cursor = db.cursor()\n", 311 | " cursor.execute(\"CREATE TABLE IF NOT EXISTS person ('name','surname','email','password','salary','employment')\")\n", 312 | " print('Ok')\n", 313 | " cursor.execute(\"INSERT INTO person VALUES ('Rəşad','Qarayev','garayevrashad@hotmail.com','123456',2000,'Python C/C++')\")\n", 314 | " cursor.execute(\"INSERT INTO person VALUES ('Eldar','Əliyev','example@hotmail.com','asdfg',2000,'Back-end Developer')\")\n", 315 | " cursor.execute(\"INSERT INTO person VALUES ('Vüsalə','Əliyeva','valiyeva@hotmail.com','v1999',1800,'Managment')\")\n", 316 | " cursor.execute(\"INSERT INTO person VALUES ('Arzu','Əliyeva','arzu@hotmail.com','v1987',4000,'Team Leader')\")\n", 317 | " db.commit() #məlumatları bazaya əlavə edirik\n", 318 | " \n", 319 | " print('Məlumatlar əlavə olundu')" 320 | ] 321 | }, 322 | { 323 | "cell_type": "code", 324 | "execution_count": 13, 325 | "metadata": {}, 326 | "outputs": [], 327 | "source": [ 328 | "#Bazadakı məlumatları oxuyaq" 329 | ] 330 | }, 331 | { 332 | "cell_type": "code", 333 | "execution_count": 14, 334 | "metadata": {}, 335 | "outputs": [ 336 | { 337 | "name": "stdout", 338 | "output_type": "stream", 339 | "text": [ 340 | "[('Vüsalə', 'Əliyeva'), ('Arzu', 'Əliyeva')]\n" 341 | ] 342 | } 343 | ], 344 | "source": [ 345 | "import sqlite3\n", 346 | "\n", 347 | "try:\n", 348 | " db = sqlite3.connect('DATA/database.db')\n", 349 | " cursor = db.cursor()\n", 350 | " cursor.execute(\"SELECT name,surname FROM person WHERE surname='Əliyeva'\")\n", 351 | " data = cursor.fetchall()\n", 352 | " print(data)\n", 353 | "except sqlite3.OperationalError:\n", 354 | " print('Error')\n", 355 | " " 356 | ] 357 | }, 358 | { 359 | "cell_type": "code", 360 | "execution_count": 15, 361 | "metadata": {}, 362 | "outputs": [ 363 | { 364 | "name": "stdout", 365 | "output_type": "stream", 366 | "text": [ 367 | "Ad : Vüsalə\n", 368 | "Soyad : Əliyeva\n", 369 | "Ad : Arzu\n", 370 | "Soyad : Əliyeva\n" 371 | ] 372 | } 373 | ], 374 | "source": [ 375 | "import sqlite3\n", 376 | "\n", 377 | "try:\n", 378 | " db = sqlite3.connect('DATA/database.db')\n", 379 | " cursor = db.cursor()\n", 380 | " cursor.execute(\"SELECT name,surname FROM person WHERE surname='Əliyeva'\")\n", 381 | " data = cursor.fetchall()\n", 382 | " for i in data:\n", 383 | " print('Ad :',i[0])\n", 384 | " print('Soyad :',i[1])\n", 385 | "except sqlite3.OperationalError:\n", 386 | " print('Error')" 387 | ] 388 | }, 389 | { 390 | "cell_type": "markdown", 391 | "metadata": {}, 392 | "source": [ 393 | "Bazada Əliyeva soyadı olan şəxsləri sorğu ilə əldə etdik" 394 | ] 395 | }, 396 | { 397 | "cell_type": "code", 398 | "execution_count": 16, 399 | "metadata": {}, 400 | "outputs": [], 401 | "source": [ 402 | "#Update - məlumatları yeniləmək" 403 | ] 404 | }, 405 | { 406 | "cell_type": "markdown", 407 | "metadata": {}, 408 | "source": [ 409 | "Şirkətimizə yeni işçi gəldi və biz bu işçini işdən çıxan işçi ilə əvəzləməliyik.Yenidən bazaya əlavə etmək yerinə,çıxarılan işçinin məlumatlarını yeni işçinin məlumatları ilə əvəzləyək" 410 | ] 411 | }, 412 | { 413 | "cell_type": "code", 414 | "execution_count": 17, 415 | "metadata": {}, 416 | "outputs": [ 417 | { 418 | "name": "stdout", 419 | "output_type": "stream", 420 | "text": [ 421 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456')\n", 422 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg')\n", 423 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999')\n", 424 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000')\n" 425 | ] 426 | } 427 | ], 428 | "source": [ 429 | "\n", 430 | "import sqlite3\n", 431 | "\n", 432 | "try:\n", 433 | " db = sqlite3.connect('DATA/database.db')\n", 434 | " cursor = db.cursor()\n", 435 | " cursor.execute(\"UPDATE person SET name='Kəmalə',surname='Məlikova',email='km11@gmail.com',password='km2000' WHERE name='Arzu'\")\n", 436 | " \n", 437 | " cursor.execute(\"SELECT name,surname,email,password FROM person \")\n", 438 | " db.commit()\n", 439 | " data = cursor.fetchall()\n", 440 | " for i in data:\n", 441 | " print(i)\n", 442 | " db.close()\n", 443 | "except sqlite3.OperationalError:\n", 444 | " print('Error')" 445 | ] 446 | }, 447 | { 448 | "cell_type": "code", 449 | "execution_count": 18, 450 | "metadata": {}, 451 | "outputs": [], 452 | "source": [ 453 | "#Yeni sütun əlavə edək" 454 | ] 455 | }, 456 | { 457 | "cell_type": "code", 458 | "execution_count": 19, 459 | "metadata": {}, 460 | "outputs": [ 461 | { 462 | "name": "stdout", 463 | "output_type": "stream", 464 | "text": [ 465 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 466 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n", 467 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n", 468 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n" 469 | ] 470 | } 471 | ], 472 | "source": [ 473 | "import sqlite3\n", 474 | "\n", 475 | "try:\n", 476 | " db = sqlite3.connect('DATA/database.db')\n", 477 | " cursor = db.cursor()\n", 478 | " cursor.execute(\"SELECT * from person\")\n", 479 | " data = cursor.fetchall()\n", 480 | " \n", 481 | " \n", 482 | " for i in data:\n", 483 | " print(i)\n", 484 | " db.close()\n", 485 | "except sqlite3.OperationalError:\n", 486 | " print('Error')" 487 | ] 488 | }, 489 | { 490 | "cell_type": "code", 491 | "execution_count": 20, 492 | "metadata": {}, 493 | "outputs": [], 494 | "source": [ 495 | "#ORDER BY verilənləri,sorğu arqumentinə uyğun sıralayır.Məsələn,id lərə adlara görə,maaş az-çox məsələsinə görə" 496 | ] 497 | }, 498 | { 499 | "cell_type": "code", 500 | "execution_count": 21, 501 | "metadata": {}, 502 | "outputs": [ 503 | { 504 | "name": "stdout", 505 | "output_type": "stream", 506 | "text": [ 507 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n", 508 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 509 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n", 510 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n" 511 | ] 512 | } 513 | ], 514 | "source": [ 515 | "import sqlite3\n", 516 | "\n", 517 | "try:\n", 518 | " db = sqlite3.connect('DATA/database.db')\n", 519 | " cursor = db.cursor()\n", 520 | " cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY name DESC\") #adlara uyğun - əlifba sırası ilə\n", 521 | " data = cursor.fetchall()\n", 522 | " for i in data:\n", 523 | " print(i)\n", 524 | " db.close()\n", 525 | "except sqlite3.OperationalError:\n", 526 | " print('Error')" 527 | ] 528 | }, 529 | { 530 | "cell_type": "code", 531 | "execution_count": 22, 532 | "metadata": {}, 533 | "outputs": [ 534 | { 535 | "name": "stdout", 536 | "output_type": "stream", 537 | "text": [ 538 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n", 539 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 540 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n", 541 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n" 542 | ] 543 | } 544 | ], 545 | "source": [ 546 | "import sqlite3\n", 547 | "\n", 548 | "try:\n", 549 | " db = sqlite3.connect('DATA/database.db')\n", 550 | " cursor = db.cursor()\n", 551 | " cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\") #maaşa görə çoxdan-aza doğru\n", 552 | " data = cursor.fetchall()\n", 553 | " for i in data:\n", 554 | " print(i)\n", 555 | " db.close()\n", 556 | "except sqlite3.OperationalError:\n", 557 | " print('Error')" 558 | ] 559 | }, 560 | { 561 | "cell_type": "code", 562 | "execution_count": 23, 563 | "metadata": {}, 564 | "outputs": [], 565 | "source": [ 566 | "#maaşı 2000 dən aşağı olanları ekrana çap edək" 567 | ] 568 | }, 569 | { 570 | "cell_type": "code", 571 | "execution_count": 24, 572 | "metadata": {}, 573 | "outputs": [ 574 | { 575 | "name": "stdout", 576 | "output_type": "stream", 577 | "text": [ 578 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 1800, 'Managment')\n" 579 | ] 580 | } 581 | ], 582 | "source": [ 583 | "import sqlite3\n", 584 | "\n", 585 | "try:\n", 586 | " db = sqlite3.connect('DATA/database.db')\n", 587 | " cursor = db.cursor()\n", 588 | " cursor.execute(\"SELECT DISTINCT * FROM person WHERE salary < 2000\") #maaşa görə çoxdan-aza doğru\n", 589 | " data = cursor.fetchall()\n", 590 | " for i in data:\n", 591 | " print(i)\n", 592 | " \n", 593 | " db.close()\n", 594 | "except sqlite3.OperationalError:\n", 595 | " print('Error')" 596 | ] 597 | }, 598 | { 599 | "cell_type": "code", 600 | "execution_count": 25, 601 | "metadata": {}, 602 | "outputs": [], 603 | "source": [ 604 | "#Aşağı maaşlı işçinin maaşını artıraq" 605 | ] 606 | }, 607 | { 608 | "cell_type": "code", 609 | "execution_count": 26, 610 | "metadata": {}, 611 | "outputs": [ 612 | { 613 | "name": "stdout", 614 | "output_type": "stream", 615 | "text": [ 616 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 617 | "('Eldar', 'Əliyev', 'example@hotmail.com', 'asdfg', 2000, 'Back-end Developer')\n", 618 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 2400, 'Managment')\n", 619 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n" 620 | ] 621 | } 622 | ], 623 | "source": [ 624 | "\n", 625 | "import sqlite3\n", 626 | "\n", 627 | "try:\n", 628 | " db = sqlite3.connect('DATA/database.db')\n", 629 | " cursor = db.cursor()\n", 630 | " cursor.execute(\"UPDATE person SET salary=2400 WHERE name='Vüsalə'\")\n", 631 | " cursor.execute(\"SELECT * from person\")\n", 632 | " data = cursor.fetchall()\n", 633 | " for i in data:\n", 634 | " print(i)\n", 635 | " db.commit()\n", 636 | " db.close()\n", 637 | "except sqlite3.OperationalError:\n", 638 | " print('Error')" 639 | ] 640 | }, 641 | { 642 | "cell_type": "code", 643 | "execution_count": 27, 644 | "metadata": {}, 645 | "outputs": [], 646 | "source": [ 647 | "#Şəxsi bazadan kənarlaşdıraq" 648 | ] 649 | }, 650 | { 651 | "cell_type": "code", 652 | "execution_count": 28, 653 | "metadata": {}, 654 | "outputs": [], 655 | "source": [ 656 | "#DELETE FROM" 657 | ] 658 | }, 659 | { 660 | "cell_type": "code", 661 | "execution_count": 29, 662 | "metadata": {}, 663 | "outputs": [ 664 | { 665 | "name": "stdout", 666 | "output_type": "stream", 667 | "text": [ 668 | "('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')\n", 669 | "('Vüsalə', 'Əliyeva', 'valiyeva@hotmail.com', 'v1999', 2400, 'Managment')\n", 670 | "('Kəmalə', 'Məlikova', 'km11@gmail.com', 'km2000', 4000, 'Team Leader')\n" 671 | ] 672 | } 673 | ], 674 | "source": [ 675 | "\n", 676 | "import sqlite3\n", 677 | "\n", 678 | "try:\n", 679 | " db = sqlite3.connect('DATA/database.db')\n", 680 | " cursor = db.cursor()\n", 681 | " cursor.execute(\"DELETE FROM person WHERE employment == 'Back-end Developer'\")\n", 682 | " cursor.execute(\"SELECT * from person\")\n", 683 | " data = cursor.fetchall()\n", 684 | " for i in data:\n", 685 | " print(i)\n", 686 | " db.commit()\n", 687 | " db.close()\n", 688 | "except sqlite3.OperationalError:\n", 689 | " print('Error')" 690 | ] 691 | }, 692 | { 693 | "cell_type": "markdown", 694 | "metadata": {}, 695 | "source": [ 696 | "Istənilən məlumata görə şəxsi bazadan kənarlaşdırmaq mümkündür.DELETE FROM person WHERE salary == 4000 qeyd etsəydik,bu səfər maaşa görə şəxsi kənarlaşdıracaqdıq" 697 | ] 698 | }, 699 | { 700 | "cell_type": "code", 701 | "execution_count": 30, 702 | "metadata": {}, 703 | "outputs": [], 704 | "source": [ 705 | "#Sum hesabi cəm" 706 | ] 707 | }, 708 | { 709 | "cell_type": "markdown", 710 | "metadata": {}, 711 | "source": [ 712 | "Şirkət daxilində işçilərə verilən maaşın ümumi cəmini əldə edə bilərik." 713 | ] 714 | }, 715 | { 716 | "cell_type": "code", 717 | "execution_count": 35, 718 | "metadata": {}, 719 | "outputs": [ 720 | { 721 | "name": "stdout", 722 | "output_type": "stream", 723 | "text": [ 724 | "[(8400,)]\n" 725 | ] 726 | } 727 | ], 728 | "source": [ 729 | "import sqlite3\n", 730 | "\n", 731 | "try:\n", 732 | " db = sqlite3.connect('DATA/database.db')\n", 733 | " cursor = db.cursor()\n", 734 | " cursor.execute(\"SELECT SUM(salary) FROM person\")\n", 735 | " data = cursor.fetchall()\n", 736 | " print(data)\n", 737 | " db.commit()\n", 738 | " db.close()\n", 739 | "except sqlite3.OperationalError:\n", 740 | " print('Error')" 741 | ] 742 | }, 743 | { 744 | "cell_type": "code", 745 | "execution_count": 36, 746 | "metadata": {}, 747 | "outputs": [], 748 | "source": [ 749 | "# mean və ya average termini\n", 750 | "#İşçilərin ümumi maaşlarının ortaq qiymətini çıxara bilərik.İşçi maaşları toplanır daha sonra işçilərin sayına bölünür" 751 | ] 752 | }, 753 | { 754 | "cell_type": "code", 755 | "execution_count": null, 756 | "metadata": {}, 757 | "outputs": [], 758 | "source": [] 759 | }, 760 | { 761 | "cell_type": "code", 762 | "execution_count": 39, 763 | "metadata": {}, 764 | "outputs": [ 765 | { 766 | "name": "stdout", 767 | "output_type": "stream", 768 | "text": [ 769 | "[(2800.0,)]\n" 770 | ] 771 | } 772 | ], 773 | "source": [ 774 | "import sqlite3\n", 775 | "\n", 776 | "try:\n", 777 | " db = sqlite3.connect('DATA/database.db')\n", 778 | " cursor = db.cursor()\n", 779 | " cursor.execute(\"SELECT AVG(salary) FROM person\")\n", 780 | " data = cursor.fetchall()\n", 781 | " print(data)\n", 782 | " db.commit()\n", 783 | " db.close()\n", 784 | "except sqlite3.OperationalError:\n", 785 | " print('Error')" 786 | ] 787 | }, 788 | { 789 | "cell_type": "code", 790 | "execution_count": 40, 791 | "metadata": {}, 792 | "outputs": [], 793 | "source": [ 794 | "# min və max " 795 | ] 796 | }, 797 | { 798 | "cell_type": "code", 799 | "execution_count": 49, 800 | "metadata": {}, 801 | "outputs": [ 802 | { 803 | "name": "stdout", 804 | "output_type": "stream", 805 | "text": [ 806 | "[(4000,)]\n" 807 | ] 808 | } 809 | ], 810 | "source": [ 811 | "import sqlite3\n", 812 | "\n", 813 | "try:\n", 814 | " db = sqlite3.connect('DATA/database.db')\n", 815 | " cursor = db.cursor()\n", 816 | " cursor.execute(\"SELECT max(salary) FROM person\")\n", 817 | " maximum = cursor.fetchall()\n", 818 | " print(maximum)\n", 819 | " db.close()\n", 820 | "except sqlite3.OperationalError:\n", 821 | " print('Error')" 822 | ] 823 | }, 824 | { 825 | "cell_type": "code", 826 | "execution_count": 50, 827 | "metadata": {}, 828 | "outputs": [ 829 | { 830 | "name": "stdout", 831 | "output_type": "stream", 832 | "text": [ 833 | "[(2000,)]\n" 834 | ] 835 | } 836 | ], 837 | "source": [ 838 | "import sqlite3\n", 839 | "\n", 840 | "try:\n", 841 | " db = sqlite3.connect('DATA/database.db')\n", 842 | " cursor = db.cursor()\n", 843 | " cursor.execute(\"SELECT min(salary) FROM person\")\n", 844 | " minimum = cursor.fetchall()\n", 845 | " print(minimum)\n", 846 | " db.close()\n", 847 | "except sqlite3.OperationalError:\n", 848 | " print('Error')" 849 | ] 850 | }, 851 | { 852 | "cell_type": "code", 853 | "execution_count": 51, 854 | "metadata": {}, 855 | "outputs": [], 856 | "source": [ 857 | "#like" 858 | ] 859 | }, 860 | { 861 | "cell_type": "markdown", 862 | "metadata": {}, 863 | "source": [ 864 | "Bəzi vəziyyətlərdə ad soyad kimi elementləri bilmədiyimiz təqdirdə baş hərfi ilə də elementləri əldə etmək kimi vəziyyətlə rastlaşa bilərik" 865 | ] 866 | }, 867 | { 868 | "cell_type": "code", 869 | "execution_count": 56, 870 | "metadata": {}, 871 | "outputs": [ 872 | { 873 | "name": "stdout", 874 | "output_type": "stream", 875 | "text": [ 876 | "[('Rəşad', 'Qarayev', 'garayevrashad@hotmail.com', '123456', 2000, 'Python C/C++')]\n" 877 | ] 878 | } 879 | ], 880 | "source": [ 881 | "import sqlite3\n", 882 | "\n", 883 | "try:\n", 884 | " db = sqlite3.connect('DATA/database.db')\n", 885 | " cursor = db.cursor()\n", 886 | " cursor.execute(\"SELECT * FROM person WHERE name LIKE 'R%'\")\n", 887 | " data = cursor.fetchall()\n", 888 | " print(data)\n", 889 | " db.close()\n", 890 | "except sqlite3.OperationalError:\n", 891 | " print('Error')" 892 | ] 893 | }, 894 | { 895 | "cell_type": "code", 896 | "execution_count": 57, 897 | "metadata": {}, 898 | "outputs": [], 899 | "source": [ 900 | "#R ilə başlayan elementi sorğuya çəkdik" 901 | ] 902 | }, 903 | { 904 | "cell_type": "code", 905 | "execution_count": null, 906 | "metadata": {}, 907 | "outputs": [], 908 | "source": [] 909 | }, 910 | { 911 | "cell_type": "markdown", 912 | "metadata": {}, 913 | "source": [ 914 | "##### Obyekt Yönümlü proqramlaşdırmadan istifadə edərək proqram hazırlayaq" 915 | ] 916 | }, 917 | { 918 | "cell_type": "code", 919 | "execution_count": 7, 920 | "metadata": {}, 921 | "outputs": [], 922 | "source": [ 923 | "import sqlite3\n", 924 | "\n", 925 | "class Company():\n", 926 | " def __init__(self):\n", 927 | " self.fullname = None\n", 928 | " self.email = None\n", 929 | " self.mobile = None\n", 930 | " self.salary = None\n", 931 | " self.employment = None\n", 932 | " self.db = sqlite3.connect('database.db')\n", 933 | " self.cursor = self.db.cursor()\n", 934 | " self.cursor.execute(\"CREATE TABLE IF NOT EXISTS person ('fullname','email','mobile','salary','employment')\")\n", 935 | " self.db.commit()\n", 936 | " self.db.close()#Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 937 | " def add(self):\n", 938 | " while True:\n", 939 | " try:\n", 940 | " self.fullname = input('Ad və Soyad(exam. Rəşad Qarayev):')\n", 941 | " self.email = input('Poçt:')\n", 942 | " self.mobile = input('Əlaqə nömrəsi:')\n", 943 | " self.salary = int(input('Maaş:'))\n", 944 | " self.employment = input('Məşğulluq (for exam: python):')\n", 945 | " self.db = sqlite3.connect('database.db')\n", 946 | " self.cursor = self.db.cursor()\n", 947 | " if self.employment == 'Şirkət rəhbəri':\n", 948 | " \n", 949 | " self.cursor.execute(\"INSERT INTO person VALUES ('{}','{}','{}','{}','Şirkət rəhbəri')\".format(self.fullname,self.email,self.mobile,self.salary))\n", 950 | " else:\n", 951 | " self.cursor.execute(\"INSERT INTO person VALUES ('{}','{}','{}','{}','{}')\".format(self.fullname,self.email,self.mobile,self.salary,self.employment))\n", 952 | " self.db.commit()\n", 953 | " self.db.close()#Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 954 | " print('Məlumatlar bazaya əlavə olundu')\n", 955 | " break\n", 956 | " except sqlite3.OperationalError:\n", 957 | " print('Error')\n", 958 | " except ValueError:\n", 959 | " print('Şəxs haqqında yalnış məlumat daxil etmisiniz')\n", 960 | " \n", 961 | "class Database(Company):\n", 962 | " def __init__(self):\n", 963 | " Company.__init__(self)\n", 964 | "\n", 965 | " def __str__(self):\n", 966 | " self.db = sqlite3.connect('database.db')\n", 967 | " self.cursor = self.db.cursor()\n", 968 | " self.cursor.execute(\"SELECT fullname,email,mobile,salary,employment FROM person\")\n", 969 | " self.cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\")\n", 970 | " self.data = self.cursor.fetchall()\n", 971 | " for i in self.data:\n", 972 | " \n", 973 | " print(i)\n", 974 | " self.db.close()\n", 975 | " \n", 976 | " def _update(self):\n", 977 | " self.fullname = input('Şəxsin ad və soyadını qeyd edin:')\n", 978 | " self.salary = int(input('Maaşını qeyd edin:'))\n", 979 | " self.db = sqlite3.connect('database.db')\n", 980 | " self.cursor = self.db.cursor()\n", 981 | " self.cursor.execute(\"UPDATE person SET salary='{}' WHERE fullname='{}'\".format(self.salary,self.fullname))\n", 982 | " self.cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\")\n", 983 | " self.db.commit()\n", 984 | " self.db.close()#Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 985 | " print('{} şəxsin maaşı yeniləndi'.format(self.fullname))\n", 986 | " def _delete(self):\n", 987 | " try:\n", 988 | " self.params = input('Kənarlaşdıracağınız şəxsin poçt ünvanını qeyd edin:')\n", 989 | " self.db = sqlite3.connect('database.db')\n", 990 | " self.cursor = self.db.cursor()\n", 991 | " self.cursor.execute(\"DELETE FROM person WHERE email == '{}'\".format(self.params))\n", 992 | " print('{} şəxs,bazadan kənarlaşdırıldı.'.format(self.params))\n", 993 | " self.cursor.execute(\"SELECT DISTINCT * FROM person ORDER BY salary DESC\")\n", 994 | " self.db.commit()\n", 995 | " self.db.close() #Təhlükəsizlik səbəbiylə bazanı bağlamağı unutmuruq\n", 996 | " except sqlite3.OperationalError:\n", 997 | " print('Ops')\n", 998 | "class Manager(Company):\n", 999 | " def __init__(self):\n", 1000 | " Company.__init__(self)\n", 1001 | " \n", 1002 | " def __str__(self):\n", 1003 | " self.db = sqlite3.connect('database.db')\n", 1004 | " self.cursor = self.db.cursor()\n", 1005 | " self.cursor.execute(\"SELECT fullname,email,mobile,salary,employment FROM person WHERE employment='Şirkət rəhbəri'\")\n", 1006 | " \n", 1007 | " self.data = self.cursor.fetchall()\n", 1008 | " for i in self.data:\n", 1009 | " print(i)\n", 1010 | " self.db.close()" 1011 | ] 1012 | }, 1013 | { 1014 | "cell_type": "code", 1015 | "execution_count": 8, 1016 | "metadata": {}, 1017 | "outputs": [], 1018 | "source": [ 1019 | "database = Database()" 1020 | ] 1021 | }, 1022 | { 1023 | "cell_type": "code", 1024 | "execution_count": 9, 1025 | "metadata": {}, 1026 | "outputs": [], 1027 | "source": [ 1028 | "manager = Manager()" 1029 | ] 1030 | }, 1031 | { 1032 | "cell_type": "code", 1033 | "execution_count": 10, 1034 | "metadata": {}, 1035 | "outputs": [ 1036 | { 1037 | "name": "stdout", 1038 | "output_type": "stream", 1039 | "text": [ 1040 | "['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_delete', '_update', 'add', 'cursor', 'db', 'email', 'employment', 'fullname', 'mobile', 'salary']\n" 1041 | ] 1042 | } 1043 | ], 1044 | "source": [ 1045 | "print(dir(database))" 1046 | ] 1047 | }, 1048 | { 1049 | "cell_type": "code", 1050 | "execution_count": 11, 1051 | "metadata": {}, 1052 | "outputs": [], 1053 | "source": [ 1054 | "database.__str__()" 1055 | ] 1056 | }, 1057 | { 1058 | "cell_type": "code", 1059 | "execution_count": 12, 1060 | "metadata": {}, 1061 | "outputs": [ 1062 | { 1063 | "name": "stdout", 1064 | "output_type": "stream", 1065 | "text": [ 1066 | "Ad və Soyad(exam. Rəşad Qarayev):Rəşad Qarayev\n", 1067 | "Poçt:garayevrashad@hotmail.com\n", 1068 | "Əlaqə nömrəsi:+994500\n", 1069 | "Maaş:4000\n", 1070 | "Məşğulluq (for exam: python):Python Developer\n", 1071 | "Məlumatlar bazaya əlavə olundu\n" 1072 | ] 1073 | } 1074 | ], 1075 | "source": [ 1076 | "database.add()" 1077 | ] 1078 | }, 1079 | { 1080 | "cell_type": "code", 1081 | "execution_count": 13, 1082 | "metadata": {}, 1083 | "outputs": [ 1084 | { 1085 | "name": "stdout", 1086 | "output_type": "stream", 1087 | "text": [ 1088 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n" 1089 | ] 1090 | } 1091 | ], 1092 | "source": [ 1093 | "database.__str__()" 1094 | ] 1095 | }, 1096 | { 1097 | "cell_type": "code", 1098 | "execution_count": 14, 1099 | "metadata": {}, 1100 | "outputs": [ 1101 | { 1102 | "name": "stdout", 1103 | "output_type": "stream", 1104 | "text": [ 1105 | "Ad və Soyad(exam. Rəşad Qarayev):Nigar Mahmudova\n", 1106 | "Poçt:ng@gmail.com\n", 1107 | "Əlaqə nömrəsi:+994600\n", 1108 | "Maaş:3800\n", 1109 | "Məşğulluq (for exam: python):Back-end Developer\n", 1110 | "Məlumatlar bazaya əlavə olundu\n" 1111 | ] 1112 | } 1113 | ], 1114 | "source": [ 1115 | "database.add()" 1116 | ] 1117 | }, 1118 | { 1119 | "cell_type": "code", 1120 | "execution_count": 15, 1121 | "metadata": {}, 1122 | "outputs": [ 1123 | { 1124 | "name": "stdout", 1125 | "output_type": "stream", 1126 | "text": [ 1127 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n", 1128 | "('Nigar Mahmudova', 'ng@gmail.com', '+994600', '3800', 'Back-end Developer')\n" 1129 | ] 1130 | } 1131 | ], 1132 | "source": [ 1133 | "database.__str__()" 1134 | ] 1135 | }, 1136 | { 1137 | "cell_type": "code", 1138 | "execution_count": 16, 1139 | "metadata": {}, 1140 | "outputs": [ 1141 | { 1142 | "name": "stdout", 1143 | "output_type": "stream", 1144 | "text": [ 1145 | "Ad və Soyad(exam. Rəşad Qarayev):Niyazi Əliyev\n", 1146 | "Poçt:na@hotmail.com\n", 1147 | "Əlaqə nömrəsi:+9945512\n", 1148 | "Maaş:3300\n", 1149 | "Məşğulluq (for exam: python):Qrafik Dizayner\n", 1150 | "Məlumatlar bazaya əlavə olundu\n", 1151 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n", 1152 | "('Nigar Mahmudova', 'ng@gmail.com', '+994600', '3800', 'Back-end Developer')\n", 1153 | "('Niyazi Əliyev', 'na@hotmail.com', '+9945512', '3300', 'Qrafik Dizayner')\n" 1154 | ] 1155 | } 1156 | ], 1157 | "source": [ 1158 | "database.add()\n", 1159 | "database.__str__()" 1160 | ] 1161 | }, 1162 | { 1163 | "cell_type": "code", 1164 | "execution_count": 17, 1165 | "metadata": {}, 1166 | "outputs": [ 1167 | { 1168 | "data": { 1169 | "text/plain": [ 1170 | "<__main__.Manager at 0x2dc56e04518>" 1171 | ] 1172 | }, 1173 | "execution_count": 17, 1174 | "metadata": {}, 1175 | "output_type": "execute_result" 1176 | } 1177 | ], 1178 | "source": [ 1179 | "manager" 1180 | ] 1181 | }, 1182 | { 1183 | "cell_type": "code", 1184 | "execution_count": 18, 1185 | "metadata": {}, 1186 | "outputs": [], 1187 | "source": [ 1188 | "manager.__str__()" 1189 | ] 1190 | }, 1191 | { 1192 | "cell_type": "code", 1193 | "execution_count": 19, 1194 | "metadata": {}, 1195 | "outputs": [ 1196 | { 1197 | "name": "stdout", 1198 | "output_type": "stream", 1199 | "text": [ 1200 | "Ad və Soyad(exam. Rəşad Qarayev):Vahid Ələkbərov\n", 1201 | "Poçt:vahid@gmail.com\n", 1202 | "Əlaqə nömrəsi:+9947023\n", 1203 | "Maaş:7800\n", 1204 | "Məşğulluq (for exam: python):Şirkət rəhbəri\n", 1205 | "Məlumatlar bazaya əlavə olundu\n" 1206 | ] 1207 | } 1208 | ], 1209 | "source": [ 1210 | "manager.add()" 1211 | ] 1212 | }, 1213 | { 1214 | "cell_type": "code", 1215 | "execution_count": 20, 1216 | "metadata": {}, 1217 | "outputs": [ 1218 | { 1219 | "name": "stdout", 1220 | "output_type": "stream", 1221 | "text": [ 1222 | "('Vahid Ələkbərov', 'vahid@gmail.com', '+9947023', '7800', 'Şirkət rəhbəri')\n" 1223 | ] 1224 | } 1225 | ], 1226 | "source": [ 1227 | "manager.__str__()" 1228 | ] 1229 | }, 1230 | { 1231 | "cell_type": "code", 1232 | "execution_count": 21, 1233 | "metadata": {}, 1234 | "outputs": [ 1235 | { 1236 | "name": "stdout", 1237 | "output_type": "stream", 1238 | "text": [ 1239 | "('Vahid Ələkbərov', 'vahid@gmail.com', '+9947023', '7800', 'Şirkət rəhbəri')\n", 1240 | "('Rəşad Qarayev', 'garayevrashad@hotmail.com', '+994500', '4000', 'Python Developer')\n", 1241 | "('Nigar Mahmudova', 'ng@gmail.com', '+994600', '3800', 'Back-end Developer')\n", 1242 | "('Niyazi Əliyev', 'na@hotmail.com', '+9945512', '3300', 'Qrafik Dizayner')\n" 1243 | ] 1244 | } 1245 | ], 1246 | "source": [ 1247 | "database.__str__()" 1248 | ] 1249 | }, 1250 | { 1251 | "cell_type": "code", 1252 | "execution_count": null, 1253 | "metadata": {}, 1254 | "outputs": [], 1255 | "source": [] 1256 | } 1257 | ], 1258 | "metadata": { 1259 | "kernelspec": { 1260 | "display_name": "Python 3", 1261 | "language": "python", 1262 | "name": "python3" 1263 | }, 1264 | "language_info": { 1265 | "codemirror_mode": { 1266 | "name": "ipython", 1267 | "version": 3 1268 | }, 1269 | "file_extension": ".py", 1270 | "mimetype": "text/x-python", 1271 | "name": "python", 1272 | "nbconvert_exporter": "python", 1273 | "pygments_lexer": "ipython3", 1274 | "version": "3.6.10" 1275 | } 1276 | }, 1277 | "nbformat": 4, 1278 | "nbformat_minor": 4 1279 | } 1280 | -------------------------------------------------------------------------------- /JupyterFile/Python-Sqlite/database.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/Python-Sqlite/database.db -------------------------------------------------------------------------------- /JupyterFile/image/ai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/ai.jpg -------------------------------------------------------------------------------- /JupyterFile/image/ai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/ai.png -------------------------------------------------------------------------------- /JupyterFile/image/anac1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/anac1.png -------------------------------------------------------------------------------- /JupyterFile/image/anac2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/anac2.png -------------------------------------------------------------------------------- /JupyterFile/image/anac3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/anac3.png -------------------------------------------------------------------------------- /JupyterFile/image/anaconda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/anaconda.png -------------------------------------------------------------------------------- /JupyterFile/image/bstart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/bstart.png -------------------------------------------------------------------------------- /JupyterFile/image/datatypes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/datatypes.png -------------------------------------------------------------------------------- /JupyterFile/image/diskrt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/diskrt.png -------------------------------------------------------------------------------- /JupyterFile/image/f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/f.png -------------------------------------------------------------------------------- /JupyterFile/image/ico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/ico.png -------------------------------------------------------------------------------- /JupyterFile/image/ieee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/ieee.jpg -------------------------------------------------------------------------------- /JupyterFile/image/inhert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/inhert.png -------------------------------------------------------------------------------- /JupyterFile/image/loop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/loop.jpg -------------------------------------------------------------------------------- /JupyterFile/image/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/map.png -------------------------------------------------------------------------------- /JupyterFile/image/moduls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/moduls.png -------------------------------------------------------------------------------- /JupyterFile/image/moduls1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/moduls1.png -------------------------------------------------------------------------------- /JupyterFile/image/operator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/operator.png -------------------------------------------------------------------------------- /JupyterFile/image/operators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/operators.png -------------------------------------------------------------------------------- /JupyterFile/image/pack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pack.png -------------------------------------------------------------------------------- /JupyterFile/image/pack1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pack1.png -------------------------------------------------------------------------------- /JupyterFile/image/package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/package.png -------------------------------------------------------------------------------- /JupyterFile/image/pyanp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pyanp.png -------------------------------------------------------------------------------- /JupyterFile/image/pyimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pyimg.jpg -------------------------------------------------------------------------------- /JupyterFile/image/pyqt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pyqt1.png -------------------------------------------------------------------------------- /JupyterFile/image/pyqt2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pyqt2.png -------------------------------------------------------------------------------- /JupyterFile/image/pyqt3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pyqt3.png -------------------------------------------------------------------------------- /JupyterFile/image/pyqt4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pyqt4.png -------------------------------------------------------------------------------- /JupyterFile/image/pyscript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pyscript.png -------------------------------------------------------------------------------- /JupyterFile/image/pytest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/pytest.png -------------------------------------------------------------------------------- /JupyterFile/image/qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/qrcode.png -------------------------------------------------------------------------------- /JupyterFile/image/qt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/qt.png -------------------------------------------------------------------------------- /JupyterFile/image/qt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/qt1.png -------------------------------------------------------------------------------- /JupyterFile/image/reduce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/reduce.png -------------------------------------------------------------------------------- /JupyterFile/image/rerunpy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/rerunpy.png -------------------------------------------------------------------------------- /JupyterFile/image/runpy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/runpy.png -------------------------------------------------------------------------------- /JupyterFile/image/savepy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/savepy.png -------------------------------------------------------------------------------- /JupyterFile/image/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/screen.png -------------------------------------------------------------------------------- /JupyterFile/image/stack (1).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/stack (1).jpg -------------------------------------------------------------------------------- /JupyterFile/image/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/start.png -------------------------------------------------------------------------------- /JupyterFile/image/strindex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/strindex.png -------------------------------------------------------------------------------- /JupyterFile/image/t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/t.png -------------------------------------------------------------------------------- /JupyterFile/image/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/JupyterFile/image/tv.png -------------------------------------------------------------------------------- /JupyterFile/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /JupyterFile/Əlavələr/data.txt: -------------------------------------------------------------------------------- 1 | Çıxartdın, Gərək Soxasan | ABŞ | ram, Kriminal, Detektiv, Komediya | IMDB: 8 2 | Sonatina | Yaponiya | Kəskin, Kriminal, Komediya | IMDB: 7.5 3 | Şaqqalama | ABŞ | Dram, Komediya, Qorxu | IMDB: 6.1 4 | Kimsəsiz | ABŞ | Kəskin, Dram, Kriminal | IMDB: 5.1 5 | Qorxu Gecəsi | ABŞ | Komediya, Qorxu | IMDB: 6.3 6 | Şən Səslər | ABŞ | Dram, Komediya, Musiqili | IMDB: 5.7 7 | Güvənc Yerim | ABŞ, Böyük Britaniya | Dram, Kriminal, Məhəbbət | IMDB: 6.1 8 | Lox Nessin Gizlinləri | ABŞ | Kəskin, Fantaziya, Macəra | IMDB: 3.2 9 | Qıza Nə Lazımdır | ABŞ | Dram, Ailəvi, Komediya | IMDB: 5.8 10 | Alovlar | Fransa, Kanada | Dram, Hərbi, Mistik | IMDB: 8.3 11 | Qatil Nindza | ABŞ, Almaniya | Kəskin, Triller | IMDB: 6.3 12 | Muzdlular | Böyük Britaniya | Kəskin, Dram | IMDB: 3.4 13 | Anadangəlmə Yarışçı | ABŞ | əskin, İdman | IMDB: 6 14 | Tələ .44 | ABŞ | Kəskin, Dram, Kriminal | IMDB: 4.6 15 | Ən Qatı Fırıldaqçılar | ABŞ | Kriminal, Komediya | IMDB: 7.4 16 | Məhəbbət Üç İl Yaşayır | Fransa, Belçika | Məhəbbət, Komediya | IMDB: 6.1 17 | "Arqo" Əməliyyatı | ABŞ, Böyük Britaniya | Dram, Triller, Bioqrafik | IMDB: 7.7 18 | Qəriblər | ABŞ, Kanada | Dram, Elmi-Fantastika, Mistik | IMDB: 6.7 19 | Toqo | ABŞ | Dram, Macəra, Bioqrafik | IMDB: 8.1 20 | Yerin Altı | ABŞ | Kəskin, Macəra, Komediya | IMDB: 6.1 21 | Saman Köpəklər | ABŞ | Kəskin, Dram, Triller | IMDB: 5.8 22 | Ölümcül Sadə | ABŞ, Kanada | Dram, Kriminal, Komediya | IMDB: 5.7 23 | İki Papa | Böyük Britaniya, İtaliya | Dram, Bioqrafik, Komediya | IMDB: 7.6 24 | Terminator: Qara Tale | ABŞ, Çin | Kəskin, Macəra, Elmi-Fantastika | IMDB: 6.3 25 | Hostel 3 | ABŞ | Qorxu, Saqa | IMDB: 4.6 26 | Uşaqlar Qaydasındadır | ABŞ | ram, Məhəbbət, Komediya | IMDB: 7 27 | Yalandan Ərim Ol | ABŞ | Kəskin, Kriminal, Komediya | IMDB: 5.4 28 | Əks-Səda Səsləri | ABŞ | riller, Qorxu, Mistik | IMDB: 7 29 | X Layihəsi | ABŞ | Komediya | IMDB: 6.6 30 | Məğlubedilməzlər 2 | ABŞ, Almaniya | Kəskin, Macəra, Triller | IMDB: 6.6 31 | Çıxartdın, Gərək Soxasan | ABŞ | ram, Kriminal, Detektiv, Komediya | IMDB: 8 32 | Sonatina | Yaponiya | Kəskin, Kriminal, Komediya | IMDB: 7.5 33 | Şaqqalama | ABŞ | Dram, Komediya, Qorxu | IMDB: 6.1 34 | Kimsəsiz | ABŞ | Kəskin, Dram, Kriminal | IMDB: 5.1 35 | Qorxu Gecəsi | ABŞ | Komediya, Qorxu | IMDB: 6.3 36 | Şən Səslər | ABŞ | Dram, Komediya, Musiqili | IMDB: 5.7 37 | Güvənc Yerim | ABŞ, Böyük Britaniya | Dram, Kriminal, Məhəbbət | IMDB: 6.1 38 | Lox Nessin Gizlinləri | ABŞ | Kəskin, Fantaziya, Macəra | IMDB: 3.2 39 | Qıza Nə Lazımdır | ABŞ | Dram, Ailəvi, Komediya | IMDB: 5.8 40 | Alovlar | Fransa, Kanada | Dram, Hərbi, Mistik | IMDB: 8.3 41 | Qatil Nindza | ABŞ, Almaniya | Kəskin, Triller | IMDB: 6.3 42 | Muzdlular | Böyük Britaniya | Kəskin, Dram | IMDB: 3.4 43 | Anadangəlmə Yarışçı | ABŞ | əskin, İdman | IMDB: 6 44 | Tələ .44 | ABŞ | Kəskin, Dram, Kriminal | IMDB: 4.6 45 | Ən Qatı Fırıldaqçılar | ABŞ | Kriminal, Komediya | IMDB: 7.4 46 | Məhəbbət Üç İl Yaşayır | Fransa, Belçika | Məhəbbət, Komediya | IMDB: 6.1 47 | "Arqo" Əməliyyatı | ABŞ, Böyük Britaniya | Dram, Triller, Bioqrafik | IMDB: 7.7 48 | Qəriblər | ABŞ, Kanada | Dram, Elmi-Fantastika, Mistik | IMDB: 6.7 49 | Toqo | ABŞ | Dram, Macəra, Bioqrafik | IMDB: 8.1 50 | Yerin Altı | ABŞ | Kəskin, Macəra, Komediya | IMDB: 6.1 51 | Saman Köpəklər | ABŞ | Kəskin, Dram, Triller | IMDB: 5.8 52 | Ölümcül Sadə | ABŞ, Kanada | Dram, Kriminal, Komediya | IMDB: 5.7 53 | İki Papa | Böyük Britaniya, İtaliya | Dram, Bioqrafik, Komediya | IMDB: 7.6 54 | Terminator: Qara Tale | ABŞ, Çin | Kəskin, Macəra, Elmi-Fantastika | IMDB: 6.3 55 | Hostel 3 | ABŞ | Qorxu, Saqa | IMDB: 4.6 56 | Uşaqlar Qaydasındadır | ABŞ | ram, Məhəbbət, Komediya | IMDB: 7 57 | Yalandan Ərim Ol | ABŞ | Kəskin, Kriminal, Komediya | IMDB: 5.4 58 | Əks-Səda Səsləri | ABŞ | riller, Qorxu, Mistik | IMDB: 7 59 | X Layihəsi | ABŞ | Komediya | IMDB: 6.6 60 | Məğlubedilməzlər 2 | ABŞ, Almaniya | Kəskin, Macəra, Triller | IMDB: 6.6 61 | -------------------------------------------------------------------------------- /Modules(Modullar).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Modules(Modullar).pdf -------------------------------------------------------------------------------- /Operators.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Operators.pdf -------------------------------------------------------------------------------- /Python Object Oriented Programming(Obyekt Yönümlü Proqramlaşdırma).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Python Object Oriented Programming(Obyekt Yönümlü Proqramlaşdırma).pdf -------------------------------------------------------------------------------- /PythonSqlite.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/PythonSqlite.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Python3 proqramlaşdırma dili # 3 | 4 | 5 | ------------------------------------------------------------------------------------------------------------------ 6 | ### Python proqramlaşdırma dilini,aşağıdakı mündəricat ardıcıllığı ilə öyrənin. ### 7 | 8 | 9 | ![](https://github.com/RashadGarayev/Python3-AZ/blob/master/image/pyimg.jpg) 10 | 11 | 12 | 13 | ---------- 14 | > (base) C:\Users\Admin>python -V 15 | > 16 | > Python 3.7.5 17 | 18 | 19 | [https://www.python.org/downloads/release/python-375/](https://www.python.org/downloads/release/python-375/) 20 | 21 | [https://www.anaconda.com/distribution/](https://www.anaconda.com/distribution/) 22 | 23 | 24 | 25 | Mündəricat 26 | 27 | 1. Python proqramlaşdırma dili haqqında 28 | 2. Anaconda Platformasının sistemə yüklənilməsi 29 | 3. Raspberry Pi 4B - Raspian Os python3 yüklənilməsi 30 | 4. Jupyter Notebook istifadə qaydası 31 | 5. Giriş 32 | 6. Dəyişənlər (Variables) 33 | 7. Operator və Operandlar 34 | 8. Riyazi Operatorlar(Arithmetic operators) 35 | 9. print() funksiyası 36 | ### Verilənlərin tipləri(Data types) ## 37 | 1. Tam Ədəd tipi (İnteger) 38 | 2. Həqiqi ədəd tipi (Float) 39 | 3. Qarışıq ədəd tipi (Complex) 40 | #### Təyinat Operatorları (Assignment Operators) ### 41 | #### Python müqayisə operatorları (Python Comparison Operators) ### 42 | #### Sətir tipi verilənlər (String) ### 43 | 1. Escape Sequences 44 | 2. len() - funksiyası 45 | 3. Pythonda tip çevirmələri (Type Conversion in Python) 46 | 4. Sətir tipi verilənlər - indeksləmə - dilimləmə (indexing Slicing) 47 | 5. Slicing - dilimləmə(parçalama) 48 | 6. Sətir tipi verilənlər. 49 | 7. Metodları 50 | #### Python Üzvlük Operatorları (Python Membership Operators) ### 51 | #### input() funksiyası ### 52 | #### Şərhlər (comments) ### 53 | #### boolean () verilən tipi ### 54 | #### Python məntiqi operatorları (Python Logical Operators) ### 55 | #### Pythonda şəxsiyyət operatorları (Python Identity Operators) ### 56 | #### format() metodu ### 57 | #### Siyahılar (Lists) verilən tipi ### 58 | 1. Siyahılar və metodları 59 | 2. append() metodu 60 | 3. clear() metodu 61 | 4. copy() metodu 62 | 5. count() metodu 63 | 6. extend() metodu 64 | 7. index() metodu 65 | 8. insert() metodu 66 | 9. pop() metodu 67 | 10. remove() metodu 68 | 11. reverse() metodu 69 | 12. sort() metodu 70 | ### Kortejlər (tuples) verilən tipi ### 71 | 1. Kortejlər. 72 | 2. Metodları 73 | 3. count() metodu 74 | 4. index() metodu 75 | 76 | 77 | ### Lüğətlər (Dictionaries) ### 78 | 1. Lüğətlər 79 | 2. Metodları 80 | 2. keys() metodu 81 | 3. values() metodu 82 | 4. copy() metodu 83 | 5. get() metodu 84 | 6. fromkey() metodu 85 | 7. clear() metodu 86 | 8. items() metodu 87 | 9. pop() metodu 88 | 10. popitem() metodu 89 | 11. setdefault() metodu 90 | 12. update() metodu 91 | 92 | ### Set (dəstlər) ### 93 | 1. Dəstlər 94 | 2. Metodları 95 | 2. add() metodu 96 | 3. clear() metodu 97 | 4. copy() metodu 98 | 5. difference() metodu 99 | 6. difference_update() metodu 100 | 7. discard() metodu 101 | 8. intersection() metodu 102 | 9. intersection_update() metodu 103 | 10. isdisjoint() metodu 104 | 11. issubset() metodu 105 | 12. issuperset() metodu 106 | 13. pop() metodu 107 | 14. remove() metodu 108 | 15. symmetric_difference() metodu 109 | 16. symmetric_difference_update() metodu 110 | 17. union() metodu 111 | 18. update() metodu 112 | 113 | ### Python Condition Operators and If statements (Python Şərt Operatorları və İf ifadəsi) ### 114 | 1. if Operatoru 115 | 2. else Operatoru 116 | 3. elif Operatoru 117 | 118 | ### Dövr Operatorları (Şərtli və Sayğaclı) ### 119 | 1. for Operatoru 120 | 2. range() Funksiyası 121 | 3. List comprehension 122 | 4. Dict comprehension 123 | 5. While Operatoru 124 | 6. Break , Continue və Pass ifadələri 125 | 126 | #### Functions (Funksiyalar) ### 127 | 1. Funksiyaları niyə istifadə edirik! 128 | 2. Yazılış qaydası 129 | 3. Nümunələr 130 | 4. *args və **args ifadələri 131 | 5. Return İfadəsi 132 | 6. Base Case və Recursive Case Funksiyalar 133 | 7. Nümunələr 134 | 8. Global və Lokal dəyişənlər(Global & Local) 135 | 9. Lambda ifadəsi 136 | 137 | #### Modules (Modullar) ### 138 | 1. Modullar nədir! 139 | 2. Şəxsi moulların hazırlanması 140 | 3. Nümunələr 141 | #### Decorators (dekorativ funksiyalar) #### 142 | 1. Nümunələr 143 | 144 | #### Errors_Exceptions(Xətalar və İstisnalar) #### 145 | 1. Nümunələr 146 | 147 | #### Python Object Oriented Programming(Obyekt Yönümlü Proqramlaşdırma) #### 148 | 1. Syntax(Sintaksisi) 149 | 2. Enkapsulyasiya (Encapsulation) 150 | 3. Varislik (İnheritance) Mexanizmi 151 | 4. Polimorfizm (Polymorphism) 152 | 5. Special Method(OOP-də xüsusi metodlar) 153 | #### Reading and Writing Files in Python (Python dilində faylların oxunması və yazılması) 154 | 1. File Types(Fayl tipləri) 155 | 2. Open() Function (Open funksiyası) 156 | 3. Mode (modlar) 157 | 4. Əlavələr 158 | 5. Create a text file (text faylların hazırlanması) 159 | 160 | #### Built-in Functions(Pythonda quraşdırılmış funksiyalar) #### 161 | 1. all() 162 | 2. any() 163 | 3. map() 164 | 4. dir() 165 | 5. enumerate() 166 | 6. zip() 167 | 7. filter() 168 | 8. reduce (from functools) 169 | 9. len() 170 | 10. abs() 171 | 11. min() və max() 172 | 12. round() 173 | 13. divmod() 174 | 14. pow() 175 | 15. sum() 176 | 16. isinstance() 177 | 17. reversed() 178 | 18. locals() və globals() 179 | 180 | #### Iterators and Generators(Silsilələr və törəmələr) #### 181 | 1. Silsilələr 182 | 2. __iter __ () və __next __ () metodları 183 | 3. iter() və next() funksiyaları 184 | 4. Generators(törəmələr) və yield ifadəsi 185 | 5. Generator ifadələr 186 | 187 | #### Python package(Pythonda paketlərin hazırlanması) #### 188 | 1. Nümunələr 189 | #### Advanced Modules(Pythonda qabaqcıl modullar) #### 190 | 1. os modulu 191 | 2. sys modulu 192 | 3. datetime modulu 193 | 4. time modulu 194 | 5. re modulu 195 | 6. random modulu 196 | #### Əlavələr #### 197 | 1. BeautifulSoup 198 | 2. Qrcode 199 | 200 | #### Python Sqlite3 #### 201 | 1. Nümunələr 202 | 2. OOP-sqlite3 203 | #### PyQt GUİ(Qrafik istifadəçi interfeysi) #### 204 | 1. for Unix/Linux 205 | 2. Windows 206 | 3. Nümunələr 207 | #### Kivy: Cross-platform Python Framework #### 208 | 209 | 1. for Unix/Linux 210 | 2. Windows 211 | 3. Nümunələr 212 | 213 | #### RaspBerry Pi Arduino #### 214 | -------------------------------------------------------------------------------- /Əlavələr.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RashadGarayev/Python3-AZ/8250a4a63da6e499cb2416137800c54eca9df5a1/Əlavələr.pdf --------------------------------------------------------------------------------