Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Python Overview Installation, Data types, Control flow structures, Loops, Functions, Strings, OOP, Data Structures, Tuples, Destructuring Assignments Python Overview Telerik Academy Plus http://academy.telerik.com Table of Contents Python Overview Installing Python Python IDEs Data types Control flow structures Loops Data Structures and comprehensions Lists, sets, dictionaries and tuples Destructuring assignments Table of Contents Functions Lambda functions Modules Object-oriented programming Creating classes Properties, instance and class methods Inheritance Best Practices The Zen of Python Python Overview What is Python? What can be used for? Python Overview Python is a widely used general-purpose, high- level programming language Its design philosophy emphasizes code readability Its syntax allows programmers to express concepts in fewer lines of code The language provides constructs intended to enable clear programs on both a small and large scale Python Overview Python supports multiple programming paradigms, including Object-oriented Imperative and functional programming It features a dynamic type system and automatic memory management Python is widely used for: Web applications development: Django, Pyramid Games with PyGame Automations scripts, Sikuli And more Installing Python On MAC, Linux and Windows Installing Python On MAC Homebrew can be used $ brew install python On Linux Part of Linux is built with Python, so it comes outof-the-box On Windows Download the installer from https://www.python.org/ Add the installation path to System Variables $PATH Installing Python on Windows and MAC Live Demo Running Python in REPL Open the CMD/Terminal and run: You can run python code: Print the numbers from 0 to 4 for i in range(5): print(i) Sum the numbers from 5 to 9 sum = 0 for i in range(5, 10): sum += i print(sum) $ python Running Python Open the CMD/Terminal and run: You can run python code: Print the numbers from 0 to 4 for i in range(5): print(i) Sum the numbers from 5 to 9 sum = 0 for i in range(5, 10): sum += i print(sum) Significant whitespace matters a lot $ python Significant Whitespace Significant whitespace is a way to write code in python This is actually the indentation Significant whitespace creates blocks in python code It is the equivalent of curly brackets ({}) in other languages Good practices say "Use four spaces for indent" Python IDEs Sublime Text, PyCharm, REPL Python IDEs Python is quite popular and there are my IDEs: PyCharm Commercial and Community editions Ready-to-use Sublime Text Free, open-source Needs plugins and some setup to work properly LiClipse Free, based on Eclipse Ready-to-use Python IDEs Live Demo Data types in Python int, float, etc Data types in Python Python supports all the primary data types: int – integer numbers int(intAsString) parses a string to int float – floating-point numbers float(floatAsString) parses a string to float None – like null bool – Boolean values (True and False) str – string values (sequence of characters) Data Types Live Demo Control Flow Structures If-elif-else Control Flow Structures Python supports conditionals: if conditionOne: # run code if conditionOne is True elif conditionTwo: # run code if conditionOne is False # but conditionTwo is True else # run code if conditionOne and # conditionTwo are False The conditions are True-like and False-like ""(empty string), 0, None are evaluated to False Non-empty strings, any number or object are evaluated to True Conditional Statements Live Demo Loops for and while Loops There are two types of loops in Python for loop for i in range(5): # run code with values of i: 0, 1, 2, 3 and 4 names = ['Doncho', 'Asya', 'Evlogi', 'Nikolay', 'Ivaylo'] for i in range(len(names)): print('Hi! I am %s!'%names[i]); while loop number = 1024 binNumber = ''; while number >= 1: binNumber += '%i'%(number%2) number /= 2 print(binNumber[::-1]) Loops Live Demo Data Structures Lists, Dictionaries, Sets Data Structures in Python Python has three primary data structures List Keep a collection of objects Objects can be accessed and changed by index Objects can be appended/removed dynamically Dictionary Keep a collection of key-value pairs Values are accessed by key The key can be of any type Sets Keep a collection of unique objects Lists in Python Collections of objects Lists in Python Lists are created using square brackets ('[' and ']'): numbers = [1, 2, 3, 4, 5, 6, 7] names = ["Doncho", "Niki", "Ivo", "Evlogi"] Print a list of items: Object by object for name in names: print(name) Or by index: for index in len(names): print(names[index]) Add new object to the list: names.append("Asya") Lists in Python Live Demo List Comprehensions List comprehensions are a easier way to create lists with values They use the square brackets ('[' and ']') and an expression inside even = [number for number in numbers if not number % 2] longerNames = [name for name in names if len(name) > 6] kNames = [name for name in names if name.startswith("K")] [eat(food) for food in foods if food is not "banana"] List Comprehensions Live Demo Sets in Python Collections of unique values Sets in Python Sets are created like lists, but using curly brackets instead of square They contain unique values i.e. each value can be contained only once __eq__(other) methods is called for each object names = {"Doncho", "Nikolay"} names.add("Ivaylo") names.add("Evlogi") names.add("Doncho") print(names) # the result is {'Nikolay', 'Ivaylo', 'Evlogi', 'Doncho'} # 'Doncho' is contained only once Sets in Python Live Demo Set Comprehensions Set comprehensions are exactly like list comprehensions But contain only unique values sentence = "Hello! My name is Doncho Minkov and …" parts = re.split("[,!. ]", sentence) words = {word.lower() for word in parts if word is not ""} Set Comprehensions Live Demo Dictionaries in Python Key-value pairs Dictionaries in Python Dictionary is a collection of key-value pairs The key can be of any type For custom types, the methods __hash__() and __eq__(other) must be overloaded Values can be of any type Even other dictionaries or lists musicPreferences = { "Rock": ["Peter", "Georgi"], "Pop Folk": ["Maria", "Teodor"], "Blues and Jazz": ["Alex", "Todor"], "Pop": ["Nikolay", "Ivan", "Elena"] } Dictionaries in Python Live Demo Dictionary Comprehensions Dictionary comprehensions follow pretty much the same structure as list comprehensions Just use curly brackets {} instead of square [] Provide the pair in the format key: value names = {trainer.name for trainer in trainers} trainersSkills = { name: [] for name in names} {trainersSkills[trainer.name].append(trainer.skill) for trainer in trainers} Dictionary Comprehensions Live Demo Tuples Tuples in Python A tuple is a sequence of immutable objects Much like lists, but their values cannot be changed Use parenthesis instead of square brackets languages = ("Python", "JavaScript", "Swift") for lang in languages: print(lang) print("Number of languages: {0}".format(len(languages)) Tuples Live Demo Operations with Tuples The following operations are supported for tuples: Get the length of the tuple: len((-1, 5, 11)) # returns 3 Concatenate tuples: (1, 2) + (7, 8, 9) # returns (1, 2, 7, 8, 9) Multiply by number: (1,)*5 # returns (1, 1, 1, 1, 1) Check for value: 3 in (1, 2, 3) # returns True Operations with Tuples Live Demo Destructuring Assignments Destructuring Assignments Destructuring assignments (bind) allow easier extracting of values With tuples x, y = 1, 5 # equivalent to x = 1 and y = 5 x, y = y, x # swap the values With arrays numbers = [1, 2] [one, two] = numbers numbers = list(range(1, 10)) [first, *middle, last] = numbers Destructuring Assignments Live Demo Functions in Python Separate the code in smaller and reusable pieces Functions in Python Functions in Python: Are defined using the keyword "def" Have an identifier A list of parameters A return type def toBin(number): bin = '' while number >= 1: bin += '%i'%(number%2) number /= 2 return bin[::-1] Functions in Python Live Demo Anonymous Functions Python allows the creation of anonymous functions (lambda functions) Using the keyword lambda and a special syntax: printMsg = lambda msg: print('Message: {0}'.format(msg)) Same as: def printMsg2(msg): print('Message: {0}'.format(msg)) Mostly used for data structures manipulation evenNumbers = filter(lambda n: not n%2, numbers) Lambda Functions Live Demo Modules in Python How to separate the code in different modules Modules in Python Python applications are separated into modules These module represent just a list of functions and/or classes To use all functions from a module numeralSystems: import numeralSystems print(numeralSystems.toBin(1023)) print(numeralSystems.toHex(1023)) A single function: from numeralSystems import toBin as bin Or some functions from numeralSystems import toBin as bin, toHex as hex Modules in Python Live Demo Object-oriented Programming With Python Object-oriented Programming with Python Python is an object-oriented language Support for classes, inheritance, method overloading, etc… To create a class: Use the keyword class Give the class a name Define __init__ method and other methods Attributes (fields) are defined inside the contructor (__init__) method class Presentation: def __init__(self, title, duration): self.title = title self.duration = duration Creating Classes with Python Live Demo Properties in Python Python has a concept for providing properties for class attributes Properties are used for data hiding and validation of the input values class Presentation: def __init__(self, title, duration): self.title = title self.duration = duration @property def duration(self): return self._duration @duration.setter def duration(self, value): if(0 < duration and duration <= 4): self._duration = value Classes with Properties Live Demo Instance methods Instance methods are methods that are used on a concrete instance of the class To create an instance method, provide self as first parameter to the method: class Trainer(Person): # … def deliver(self, presentation): print("{0} is delivering presentation about {1}" .format(self.name, presentation.title)) Instance methods Instance methods are methods that are used on a concrete instance of the class To create an instance method, provide self as first parameter to the method: class Trainer(Person): # … def deliver(self, presentation): print("{0} is delivering presentation about {1}" .format(self.name, presentation.title)) self is like this for other languages Instance Methods Live Demo Class Methods Class methods are shared between all instances of the class, and other objects They are used on the class, instead of on concrete object Defined as regular functions But inside the class Without self as parameter class Person: # … def validate_person_age(age): return 0 < age and age < 150 Class Methods Live Demo Class Inheritance in Python Extend classes Class Inheritance in Python Class inheritance is the process of creating a class that extends the state and behavior of other class Functions and attributes are inherited New functions and attributes can be added class Person: def __init__(self, name, age): self.name = name self.age = age class Trainer(Person): def __init__(self, name, age, speciality): super().__init__(name, age) self.speciality = speciality def deliver(self, presentation): print("{0} is delivering presentation about {1}" .format(self.name, presentation.title)) Class Inheritance in Python Class inheritance is the process of creating a class that extends the state and behavior of other class Functions and attributes are inherited New functions and attributes can be added class Person: def __init__(self, name, age): self.name = name self.age = age Trainer inherits Person class Trainer(Person): def __init__(self, name, age, speciality): super().__init__(name, age) self.speciality = speciality def deliver(self, presentation): print("{0} is delivering presentation about {1}" .format(self.name, presentation.title)) Class Inheritance in Python Class inheritance is the process of creating a class that extends the state and behavior of other class Functions and attributes are inherited New functions and attributes can be added class Person: def __init__(self, name, age): self.name = name self.age = age class Trainer(Person): def __init__(self, name, age, speciality): super().__init__(name, age) super() calls self.speciality = speciality the parent def deliver(self, presentation): print("{0} is delivering presentation about {1}" .format(self.name, presentation.title)) Class Inheritance in Python Live Demo Best Practices How to write readable Python code? Best Practices Use 4-space indentation, and no tabs Wrap lines so that they don’t exceed 79 characters Use blank lines to separate functions and classes Use docstrings Use spaces around operators and after commas Name your classes and functions consistently PascalCase for classes lower_case_with_underscores for functions and methods The Zen of Python Python Overview курсове и уроци по програмиране, уеб дизайн – безплатно курсове и уроци по програмиране – Телерик академия уроци по програмиране и уеб дизайн за ученици програмиране за деца – безплатни курсове и уроци безплатен SEO курс - оптимизация за търсачки курсове и уроци по програмиране, книги – безплатно от Наков уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop free C# book, безплатна книга C#, книга Java, книга C# безплатен курс "Качествен програмен код" безплатен курс "Разработка на софтуер в cloud среда" BG Coder - онлайн състезателна система - online judge форум програмиране, форум уеб дизайн ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET ASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC алго академия – състезателно програмиране, състезания курс мобилни приложения с iPhone, Android, WP7, PhoneGap Дончо Минков - сайт за програмиране Николай Костов - блог за програмиране C# курс, програмиране, безплатно http://academy.telerik.com