Прежде всего, что такое Python? По словам его создателя, Guido Van Rossum, Python – это:
Для меня первая причина учиться Python была то, что это, на самом деле, красивая язык программирования. Это было действительно естественно, чтобы кодировать в нем и выразить свои мысли.
Другая причина заключалась в том, что мы можем использовать кодирование в Python с несколькими способами: наука о данных, веб-разработке и машине, изучая все сияние здесь. Квора, Pinterest и Spotify все используют Python для их Backend Web Development. Так что давайте узнаем немного об этом.
Основы
1. Переменные
Вы можете подумать о переменных как слова, которые хранят значение. Просто как тот.
В Python очень легко определить переменную и установить его значение. Представьте, что вы хотите сохранить номер 1 в переменной под названием «One». Давай сделаем это:
one = 1
Насколько это было просто? Вы только что присваивали значение 1 к переменной «один».
two = 2 some_number = 10000
И вы можете назначить любой другой ценность к другому другому Переменные ты хочешь. Как вы видите в таблице выше, переменная « два » хранит целое число 2 и ” quote_number ” Магазины 10 000 Отказ
Помимо целых чисел, мы также можем использовать логические значения (True/False), строки, плавать и многие другие типы данных.
# booleans true_boolean = True false_boolean = False # string my_name = "Leandro Tk" # float book_price = 15.80
2. Поток управления: условные заявления
« Если » использует выражение для оценки того, является ли оператор TRUE или FALSE. Если это правда, он выполняет то, что находится внутри оператора «если». Например:
if True: print("Hello Python If") if 2 > 1: print("2 is greater than 1")
2 больше чем 1 Таким образом, код « Print » выполнен.
Заявление « else » будет выполнено, если выражение « если » является ложь Отказ
if 1 > 2: print("1 is greater than 2") else: print("1 is not greater than 2")
1 не больше чем 2 Так что код внутри « else » будет выполнен.
Вы также можете использовать заявление « ELIF »:
if 1 > 2: print("1 is greater than 2") elif 2 > 1: print("1 is not greater than 2") else: print("1 is equal to 2")
3. Структура/итератор
В Python мы можем итерации в разных формах. Я расскажу о двух: в то время как и для Отказ
В то время как Структура: Хотя утверждение верно, код внутри блока будет выполнен. Итак, этот код будет распечатать номер из 1 к 10 Отказ
num = 1 while num <= 10: print(num) num += 1
в то время как Структура нуждается в состоянии « условие петли. », если он остается правдой, он продолжает итерацию. В этом примере, когда Num
это 11
Условие петли равен Ложь
Отказ
Еще один базовый бит кода, чтобы лучше понять это:
loop_condition = True while loop_condition: print("Loop Condition keeps: %s" %(loop_condition)) loop_condition = False
Условие петли это Правда
Так что он держит итерацию – пока мы не установим его на Ложь
Отказ
Для петли : Вы применяете переменную « NUM » в блок, а « для » утверждают это для вас. Этот код будет напечатан так же, как в то время как код: из 1 к 10 Отказ
for i in range(1, 11): print(i)
Видеть? Это так просто. Диапазон начинается с 1
и идет до 11
Th Element ( 10
– это элемент 10
th).
Список: коллекция | Массив |. Структура данных
Представьте, что вы хотите хранить целое число 1 в переменной. Но, может быть, теперь вы хотите хранить 2. и 3, 4, 5 …
У меня есть еще один способ хранить все целые числа, которые я хочу, но не в Миллионы переменных ? Вы догадались – действительно еще один способ хранить их.
Список
это коллекция, которая может использоваться для хранения списка значений (например, эти целые числа, которые вы хотите). Так что давайте будем использовать это:
my_integers = [1, 2, 3, 4, 5]
Это действительно просто. Мы создали массив и сохранили его на my_integer Отказ
Но, может быть, вы спрашиваете: «Как я могу получить значение из этого массива?»
Отличный вопрос. Список
Имеет концепцию под названием индекс Отказ Первый элемент получает индекс 0 (ноль). Второй получает 1, и так далее. Вы получаете идею.
Чтобы сделать его более понятнее, мы можем представлять массив и каждый элемент с его индексом. Я могу нарисовать это:
Используя синтаксис Python, также просто понять:
my_integers = [5, 7, 1, 3, 4] print(my_integers[0]) # 5 print(my_integers[1]) # 7 print(my_integers[4]) # 4
Представьте, что вы не хотите хранить целые числа. Вы просто хотите хранить строки, как список имен ваших родственников. Мой будет выглядеть что-то подобное:
relatives_names = [ "Toshiaki", "Juliana", "Yuji", "Bruno", "Kaio" ] print(relatives_names[4]) # Kaio
Работает так же, как целые числа. Хороший.
Мы только что узнали, как Списки
Индексы работают. Но мне все еще нужно показать вам, как мы можем добавить элемент для Список
Структура данных (пункт в список).
Наиболее распространенный метод добавления нового значения для Список
это Добавить
Отказ Посмотрим, как это работает:
bookshelf = [] bookshelf.append("The Effective Engineer") bookshelf.append("The 4 Hour Work Week") print(bookshelf[0]) # The Effective Engineer print(bookshelf[1]) # The 4 Hour Work Week
Добавить
супер простой. Вам просто нужно применить элемент (например, » Эффективный инженер “) как Добавить
параметр.
Ну, достаточно о Списки
Отказ Давайте поговорим о другой структуре данных.
Словарь: Структура данных о значении ключей
Теперь мы знаем, что Списки
индексируются с целочисленными номерами. Но что, если мы не хотим использовать целочисленные номера в качестве показателей? Некоторые структуры данных, которые мы можем использовать, являются числовыми, строчными или другими типами индексов.
Давайте узнаем о Словарь
структура данных. Словарь
это коллекция пар клавишных ценностей. Вот что похоже:
dictionary_example = { "key1": "value1", "key2": "value2", "key3": "value3" }
ключ Является ли индекс, указывающий на ценность Отказ Как добраться до Словарь
ценность ? Вы догадались, используя ключ Отказ Давай попробуем:
dictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian" } print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk print("And by the way I'm %s" %(dictionary_tk["nationality"])) # And by the way I'm Brazilian
Я создал Словарь
обо мне. Мое имя, прозвище и национальность. Эти атрибуты являются Словарь
Ключи Отказ
Как мы узнали, как получить доступ к Список
Используя индекс, мы также используем индексы ( ключевые ключи в словаре Словарь
контекст) для доступа к ценность хранится в Словарь
Отказ
В этом примере я напечатал фразу вокруг меня, используя все значения, хранящиеся в Словарь
Отказ Довольно просто, верно?
Еще одна прохладная вещь о Словарь
Это то, что мы можем использовать все, что и значение. В Словарь
Я создал, я хочу добавить ключ «Возраст» и мой настоящий целочисленный возраст в этом:
dictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian", "age": 24 } print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk print("And by the way I'm %i and %s" %(dictionary_tk["age"], dictionary_tk["nationality"])) # And by the way I'm Brazilian
Здесь у нас есть ключ (возраст) ценность (24) Пара, используя строку как ключ и целое число как ценность Отказ
Как мы сделали с Списки
Давайте узнаем, как добавлять элементы на Словарь
Отказ ключ указывая на ценность это большая часть того, что Словарь
является. Это также верно, когда мы говорим о добавлении элементов к нему:
dictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian" } dictionary_tk['age'] = 24 print(dictionary_tk) # {'nationality': 'Brazilian', 'age': 24, 'nickname': 'Tk', 'name': 'Leandro'}
Нам просто нужно назначить ценность к Словарь
ключ Отказ Здесь ничего не сложно, верно?
Итерация: зацикливание по структурам данных
Как мы узнали в Основы Python , Список
Итерация очень проста. Мы Python
Разработчики обычно используют Для
цикл. Давай сделаем это:
bookshelf = [ "The Effective Engineer", "The 4-hour Workweek", "Zero to One", "Lean Startup", "Hooked" ] for book in bookshelf: print(book)
Таким образом, для каждой книги на книжной полке мы ( Можем все с ним делать ) Распечатайте его. Довольно простые и интуитивно понятные. Это питон.
Для структуры хеш-данных мы также можем использовать для
петля, но мы применяем ключ
:
dictionary = { "some_key": "some_value" } for key in dictionary: print("%s --> %s" %(key, dictionary[key])) # some_key --> some_value
Это пример, как его использовать. Для каждого ключ
В Словарь
Мы Печать
ключ
и его соответствующие ценность
Отказ
Еще один способ сделать это – использовать Iteritems
метод.
dictionary = { "some_key": "some_value" } for key, value in dictionary.items(): print("%s --> %s" %(key, value)) # some_key --> some_value
Мы назвали два параметра как ключ
и ценность
, но это не нужно. Мы можем назвать их что-нибудь. Давай увидим это:
dictionary_tk = { "name": "Leandro", "nickname": "Tk", "nationality": "Brazilian", "age": 24 } for attribute, value in dictionary_tk.items(): print("My %s is %s" %(attribute, value)) # My name is Leandro # My nickname is Tk # My nationality is Brazilian # My age is 24
Мы можем видеть, что мы использовали атрибут в качестве параметра для Словарь
ключ
и это работает должным образом. Большой!
Классы и объекты
Немного теории:
Объекты Представлены представление реальных объектов мира, таких как автомобили, собаки или велосипеды. Объекты разделяют две основные характеристики: данные и поведение Отказ
Автомобили имеют данные, Как количество колес, количество дверей и сидения, они также выставляют поведение : Они могут ускорить, остановить, показать, сколько топлива осталось, и так много других вещей.
Мы определяем данные как атрибуты и поведение как Методы в объектно-ориентированном программировании. Очередной раз:
Данные → Атрибуты и поведение → Методы
И а Класс Является ли план, из которого создаются отдельные объекты. В реальном мире мы часто находим много объектов с тем же типом. Как автомобили. Все таки делают и модель (и у всех есть двигатель, колеса, двери и т. Д.). Каждый автомобиль был построен из того же набора чертежей и имеет те же компоненты.
Режим программирования объектно-ориентированного на Python: ON
Python, как объектно-ориентированный язык программирования, имеет эти концепции: Класс и объект Отказ
Класс – это план, модель для его объектов.
Так что опять же класс это просто модель или способ определить атрибуты и поведение (Как мы говорили в разделе теории). В качестве примера автомобиль Класс имеет свой атрибуты которые определяют, что Объекты это транспортные средства. Количество колес, тип резервуара, сидения и максимальная скорость – это все атрибуты автомобиля.
С этим в виду, давайте посмотрим на синтаксис Python для Классы :
class Vehicle: pass
Мы определяем классы с классное утверждение – вот и все. Легко, не так ли?
Объекты Есть случаи A Класс Отказ Мы создаем экземпляр, назвав класс.
car = Vehicle() print(car) # <__main__.Vehicle instance at 0x7fb1de6c2638>
Здесь Автомобиль
это объект (или экземпляр) Класс Автомобиль
Отказ
Помните, что наше транспортное средство Класс имеет четыре атрибуты : Количество колес, тип резервуара, сидения и максимальная скорость. Мы устанавливаем все эти атрибуты При создании автомобиля объект Отказ Итак, мы определяем нашу Класс Получать данные, когда он инициирует это:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity
Мы используем init
Метод Отказ Мы называем это методом конструктора. Итак, когда мы создаем автомобиль объект мы можем определить эти атрибуты Отказ Представь, что мы любим Tesla Model S, И мы хотим создать этот вид объект Отказ Имеет четыре колеса, бегит на электрической энергии, имеет место на пять мест, а максимальная скорость составляет 250 км/час (155 миль в час). Давайте создадим это объект:
tesla_model_s = Vehicle(4, 'electric', 5, 250)
Четыре колеса + электрические «тип резервуара» + пять мест + 250 км/час максимальной скорости.
Все атрибуты устанавливаются. Но как мы можем получить доступ к значениям этих атрибутов? Мы Отправьте сообщение объекту, спрашивающему о них Отказ Мы называем это Метод Отказ Это Поведение объекта Отказ Давайте реализуем это:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity def number_of_wheels(self): return self.number_of_wheels def set_number_of_wheels(self, number): self.number_of_wheels = number
Это реализация двух методов: number_of_wheels и set_number_of_wheels Отказ Мы называем это Добрать
& Сеттер
Отказ Поскольку первое получает значение атрибута, а второе устанавливает новое значение для атрибута.
В Python мы можем сделать это, используя @Property
( Декораторы
) определить Геттерс
и Соседниты
Отказ Давайте увидимся с кодом:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity @property def number_of_wheels(self): return self.__number_of_wheels @number_of_wheels.setter def number_of_wheels(self, number): self.__number_of_wheels = number
И мы можем использовать эти методы в качестве атрибутов:
tesla_model_s = Vehicle(4, 'electric', 5, 250) print(tesla_model_s.number_of_wheels) # 4 tesla_model_s.number_of_wheels = 2 # setting number of wheels to 2 print(tesla_model_s.number_of_wheels) # 2
Это немного отличается от определения методов. Методы работают как атрибуты. Например, когда мы устанавливаем новое количество колес, мы не применяем два в качестве параметра, но установите значение 2 на number_of_wheels
Отказ Это один из способов написать Питон
Добрать
и Сеттер
код.
Но мы также можем использовать методы для других вещей, таких как метод « make_noise ». Давай увидим это:
class Vehicle: def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.type_of_tank = type_of_tank self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity def make_noise(self): print('VRUUUUUUUM')
Когда мы называем этот метод, он просто возвращает строку “ vrrrruruuum. “
tesla_model_s = Vehicle(4, 'electric', 5, 250) tesla_model_s.make_noise() # VRUUUUUUUM
Инкапсуляция: скрывая информация
Инкапсуляция – это механизм, который ограничивает прямой доступ к данным и методам объектов. Но в то же время он облегчает работу в этих данных («объекты»).
Все внутреннее представление объекта скрыто снаружи. Только объект может взаимодействовать со своими внутренними данными.
Во-первых, нам нужно понять, как публичный
и непубличный
Переменные и методы экземпляра работают.
Переменные публичных экземпляров
Для класса Python мы можем инициализировать Открытый экземпляр переменной
в пределах нашего метода конструктора. Посмотрим это:
В рамках метода конструктора:
class Person: def __init__(self, first_name): self.first_name = first_name
Здесь мы применяем first_name
значение как аргумент для Открытый экземпляр переменной
Отказ
tk = Person('TK') print(tk.first_name) # => TK
В классе:
class Person: first_name = 'TK'
Здесь нам не нужно применять first_name
Как аргумент, и все объекты экземпляра будут иметь Атрибут класса
инициализирован с TK
Отказ
tk = Person() print(tk.first_name) # => TK
Прохладный. Теперь мы узнали, что мы можем использовать Переменные публичных экземпляров
и Атрибуты класса
Отказ Еще одна интересная вещь о публичный
Часть заключается в том, что мы можем управлять значением переменной. Что я имею в виду под этим? Наше объект
Можно управлять его вариантом: Получить
и Установить
Вариабельные значения.
Держать Человек
в виду класс, мы хотим установить еще одно значение для его first_name
Переменная:
tk = Person('TK') tk.first_name = 'Kaio' print(tk.first_name) # => Kaio
Там мы идем. Мы просто устанавливаем другое значение ( Kaio
) к first_name
Переменная экземпляра и обновлена значение. Просто как тот. Так как это публичный
Переменная, мы можем сделать это.
Непубличная переменная экземпляра
Как Открытый экземпляр переменной
мы можем определить Нет публичной переменной экземпляра
как внутри метода конструктора или в классе. Разница синтаксиса: для Переменные непублики непублики
Используйте подчеркивание ( _
) до Переменная
название.
Вот пример:
class Person: def __init__(self, first_name, email): self.first_name = first_name self._email = email
Вы видели Email
Переменная? Вот как мы определяем непубличная переменная
:
tk = Person('TK', 'tk@mail.com') print(tk._email) # tk@mail.com
Таким образом, мы используем метод, который позволяет нам делать это внутри нашего определения класса. Давайте реализуем два метода ( Email
и update_email
) Чтобы понять это:
class Person: def __init__(self, first_name, email): self.first_name = first_name self._email = email def update_email(self, new_email): self._email = new_email def email(self): return self._email
Теперь мы можем обновить и получить доступ к непубличные переменные
используя эти методы. Посмотрим:
tk = Person('TK', 'tk@mail.com') print(tk.email()) # => tk@mail.com # tk._email = 'new_tk@mail.com' -- treat as a non-public part of the class API print(tk.email()) # => tk@mail.com tk.update_email('new_tk@mail.com') print(tk.email()) # => new_tk@mail.com
- Мы начали новый объект с
first_name
TK иEmail
tk@mail.com. - Напечатали электронную почту, доступа к
непубличная переменная
с методом - Пытался установить новый
Email
из нашего класса - Нам нужно лечить
непубличная переменная
какнепубличный
часть API - Обновлено
непубличная переменная
С нашим методом экземпляра - Успех! Мы можем обновить его внутри нашего класса с помощью метода помощника
Общественный метод
С Общественные методы
, мы также можем использовать их из нашего класса:
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def show_age(self): return self._age
Давайте тестируем это:
tk = Person('TK', 25) print(tk.show_age()) # => 25
Отлично – мы можем использовать его без проблем.
Непубличный метод
Но с Непубличные методы
Мы не можем это сделать. Давайте реализовать то же самое Человек
класс, но теперь с show_age
Непубличный метод
Использование подчеркивания ( _
).
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def _show_age(self): return self._age
И теперь мы постараемся назвать это Непубличный метод
С нашим объектом:
tk = Person('TK', 25) print(tk._show_age()) # => 25
Вот пример того, как мы можем использовать это:
class Person: def __init__(self, first_name, age): self.first_name = first_name self._age = age def show_age(self): return self._get_age() def _get_age(self): return self._age tk = Person('TK', 25) print(tk.show_age()) # => 25
Здесь у нас есть _get_age
Непубличный метод
и а show_age
Общественный метод
Отказ show_age
Может использоваться нашим объектом (из нашего класса) и _get_age
Используется только внутри нашего определения класса (внутри Show_age
Метод). Но опять же: как вопрос Конвенции.
Сводка инкапсуляции
С помощью инкапсуляции мы можем гарантировать, что внутреннее представление объекта скрыто снаружи.
Наследование: поведение и характеристики
Некоторые объекты имеют некоторые вещи общего: их поведение и характеристики.
Например, я унаследовал некоторые характеристики и поведение от моего отца. Я унаследовал глаза и волосы как характеристики, и его нетерпение и интроверсию как поведение.
В объектно-ориентированном программировании классы могут наследовать общие характеристики (данные) и поведение (методы) из другого класса.
Давайте посмотрим другой пример и внедрим его в Python.
Представьте себе машину. Количество колес, сидения и максимальная скорость – все атрибуты автомобиля. Мы можем сказать, что Электрический экран Класс наследует эти же атрибуты из обычного Автомобиль класс.
class Car: def __init__(self, number_of_wheels, seating_capacity, maximum_velocity): self.number_of_wheels = number_of_wheels self.seating_capacity = seating_capacity self.maximum_velocity = maximum_velocity
Наше Автомобиль Класс реализован:
my_car = Car(4, 5, 250) print(my_car.number_of_wheels) print(my_car.seating_capacity) print(my_car.maximum_velocity)
После инициированного, мы можем использовать все Переменные экземпляра
созданный. Хороший.
В Python мы применяем родительский класс
к Детский класс
как параметр. Электрический экран Класс может наследовать от наших Автомобиль класс.
class ElectricCar(Car): def __init__(self, number_of_wheels, seating_capacity, maximum_velocity): Car.__init__(self, number_of_wheels, seating_capacity, maximum_velocity)
Просто как тот. Нам не нужно реализовывать какой-либо другой метод, потому что этот класс уже имеет его (унаследовано от Car класс). Давайте докажем это:
my_electric_car = ElectricCar(4, 5, 250) print(my_electric_car.number_of_wheels) # => 4 print(my_electric_car.seating_capacity) # => 5 print(my_electric_car.maximum_velocity) # => 250
Красивый.
Это оно!
Мы узнали много вещей о основах Python:
- Как работают переменные Python
- Как работают условные заявления Python
- Как работает Python (Woman & for) работает
- Как использовать списки: коллекция | Множество
- Словарь Ключ-Значение Коллекция
- Как мы можем проиграть через эти структуры данных
- Объекты и классы
- Атрибуты как данные объектов
- Методы как поведение объектов
- Использование Python Getter и Getters & Property Decorator
- Инкапсуляция: скрывая информация
- Наследование: поведение и характеристики
Поздравляю! Вы завершили эту густую часть содержания о Python.
Если вы хотите полный курс Python, узнаете больше навыков кодирования в реальном мире и строить проекты, попробуйте Один месяц Python Bootcamp Отказ Увидимся там ☺
Для получения дополнительных историй и постов о моем путешествии, обучении и овладении программирования, следуйте за моим публикацией Разработчик Renaissance Отказ
Веселитесь, продолжайте учиться и всегда держать кодирование.