Коллекция основ для изучения Python, включая некоторые основные концепции, от типов данных до анализа JSON.
Примечание. Этот пост во многом повторяет Ускоренный курс Python Брэда Трэверси
Переменные
Контейнеры для ценностей
- Нет команды для объявления переменной (например, var / const / let), вместо этого переменная создается, когда ей присваивается значение →
x = 10
- Переменные чувствительны к регистру.
- Переменные должны начинаться с буквы или подчеркивания.
- Переменные могут содержать числа, но не могут начинаться с числа.
Типы данных
Строки - в кавычках
Вставить переменную в строку (т. е. объединить):
state = 'Pennsylvania' print('I live in ' + state) # returns I live in Pennsylvania
С помощью этого метода мы можем вставить только переменную строкового типа данных (таким образом нельзя вставить число в строку).
Форматирование строк с помощью F-строк
Чтобы вставить разные типы данных в строку, используйте F-строки (** доступно только в Python 3.6+)
state = 'Pennsylvania' population = 13000000 print(f'I live in {state} where the population is {population}') # directly inserting variables into F-string # returns I live in Pennsylvania where the population is 13000000
Строковые методы
Все строки имеют прикрепленные к ним методы. Чтобы получить к ним доступ, установите строку в переменную и вызовите метод для этой переменной, то есть:
string = 'hello world' s.capitalize() # capitalizes the first letter and returns Hello world
- Сделайте все символы прописными:
upper()
- Сделайте все символы строчными:
lower()
- Получить длину / количество символов в строке:
len()
- Подсчитайте количество подстрок в строке:
count()
- Проверить, начинается ли строка с определенной подстроки:
startswith()
(возвращает истину или ложь) - Проверить, заканчивается ли строка определенной подстрокой:
endswith()
(возвращает истину или ложь) - Возьмите строку и преобразуйте ее в список:
split()
- Ищите позицию буквы / подстроки в строке:
find()
Списки - это упорядоченная и изменяемая коллекция, допускающая дублирование членов.
Создайте список
states = ['Pennsylvania', 'New York'] # or use a constructor states = list(('Pennsylvania', 'New York'))
Распространенные методы:
- Получить значение из индекса элемента:
states[1]
→ возвращает New York - Получить длину списка:
len(states)
→ возвращает 2 (2 элемента в списке) - Добавить элемент в список:
states.append(‘Colorado’)
→states
теперь[‘Pennsylvania’, ‘New York’, ‘Colorado’]
- Удалить элемент из списка:
states.remove(‘New York’)
→ теперь состояние[‘Pennsylvania’, ‘Colorado’]
- Вставьте элемент в позицию, передав индекс и новый элемент:
states.insert(2, ‘California’)
→ Калифорния теперь находится в индексе 2:[‘Pennsylvania’, ‘New York’, 'California', ‘Colorado’]
- Удалить элемент из позиции с помощью метода pop:
states.pop(2)
→ удаляет элемент с индексом 2 - Перевернуть список:
states.reverse()
- Сортировать список по алфавиту:
states.sort()
- Измените значение:
states[0] = ‘Georgia’
→ заменяет исходный первый элемент в списке новым значением
Кортеж - это упорядоченная и неизменяемая коллекция, в которой допускаются повторяющиеся элементы.
- Коллекция обернута в (), вот так:
states = (‘Pennsylvania’, ‘Texas’, ‘New York’)
- Можно определить с помощью конструктора:
states2 = tuple(('Colorado', 'Wyoming'))
- Одно значение требует завершающей запятой, иначе оно будет распознано как строка, а не как кортеж:
states = (‘Pennsylvania’,)
- Может доступ к позиции значений с помощью индекса, например списка
states = (‘Pennsylvania’, ‘Texas’, ‘New York’)
- удалить значение:
del states[0]
- получить длину:
len(states)
Set - неупорядоченная и неиндексированная коллекция без повторяющихся элементов.
- Создано с помощью фигурных скобок: States =
{'Pennsylvania’, ‘Texas’, ‘New York’}
- После попытки добавить повторяющийся член ошибка не будет напечатана, и набор останется без изменений.
- Проверить, есть ли значение в наборе:
print(‘Pennsylvania’ in states)
- вернет истину или ложь - Добавить в набор:
states.add(‘Colorado’)
- будет добавлено в конец набора - Удалить из набора:
states.remove(‘Texas’)
- Очистить набор:
states.clear()
- наборstates
все еще существует, но он пуст. - Удалить набор:
del states
Словарь - неупорядоченная, изменяемая и проиндексированная коллекция.
Создайте словарь:
state = { 'name': 'New York', 'location': 'Northeast' }
Создайте словарь с помощью конструктора:
state = dict('name': 'New York', 'location': 'Northeast')
- Доступ к значению с помощью ключа:
state['name']
→ вернет 'New York'
ИЛИ state.get(‘name’)
→ также вернет ‘New York’
- Добавить ключ / значение:
state[‘capital_city’] = ‘Harrisburg’
- Получить ключи словаря:
state.keys()
→ возвращает все ключи - Получить элементы словаря:
state.items()
→ возвращает все элементы - Скопируйте словарь:
state2 = state.copy()
→ можете добавлять ключи / значения в эту копию - Удалить элемент:
del(state[‘location’])
ORstate.pop(‘location’)
- Очистить словарь:
state.clear()
→ словарь пуст - Получите длину словаря:
len(state)
- Список словарей:
states = [ {'name': 'California', 'location': 'West Coast'}, {'name': 'Washington', 'location': 'Pacific Northwest'} ]
Функции
- Блок кода, который запускается при вызове
- Используйте
def
для определения функции - Никаких фигурных скобок, вместо двоеточия и отступа
Создание функции:
def printState(state): print(f'I live in {state}') # call the function: printState('Pennsylvania') # returns I live in Pennsylvania
Аргументы по умолчанию:
def printState(state='Pennsylvania'): print(f'I live in {state}') # call the function: printState()
- Может вызывать функцию без передачи аргумента
Лямбда-функции:
- может принимать любое количество аргументов, но может иметь только одно выражение
- неявно возвращает то, что выражение равно
getTotal = lambda num1 num2 : num1 + num2
Условные
- Используется с операциями сравнения:
==, !=, >, <, ≥, ≤
Заявление If:
x = 20 y = 15 if x > y: # indent the next line print(f'{x} is greater than {y}')
Оператор If / else:
x = 20 y = 15 if x > y: # indent the next line print(f'{x} is greater than {y}') else: # indent the next line print(f'{y} is greater than {x}')
Иначе, если (elif):
x = 20 y = 15 if x > y: # indent the next line print(f'{x} is greater than {y}') elif x == y: # indent the next line print(f'{x} is equal to {y}') else: # indent the next line print(f'{y} is greater than {x}')
Объедините операторы if (т.е. вложенные) с логическими операторами - и, или, не:
if x > 10 and x < 30: print(f'{x} is greater than 10 and less than 30')
Операторы членства - не в, не в:
Используется для проверки наличия или отсутствия значения в другом наборе данных:
x = 20 integers = [5, 10, 15, 20] if x in integers: print(x in integers) # returns true if x not in integers: print(x not in integers) # returns nothing
Операторы идентификации - есть, нет
Используется для проверки того, совпадает ли значение или не совпадает с ним в другом наборе данных:
x = 19 y = 20 if x is not y: print(x is not y) # returns True
Петли
Используется для перебора последовательности, которая представляет собой список, словарь, кортеж, набор или строку.
Для цикла:
states = ['Pennsylvania', 'Texas‘, ‘New York’]
for state in states:
print(f'Current state: {state}')
# prints 'Current state: ' and state for each item
Прерывание цикла for:
states = ['Pennsylvania', 'Texas‘, ‘New York’]
for state in states:
if state == 'Texas':
break
print(f'Current state: {state}')
# broke out of the loop for Texas and all the values after
Продолжить:
states = ['Pennsylvania', 'Texas‘, ‘New York’]
for state in states:
if state == 'Texas':
continue
print(f'Current state: {state}')
# continued printing items in the loop after skipping Texas (did not stop loop, like break)
Диапазон (аналогично классическому циклу for):
states = ['Pennsylvania', 'Texas‘, ‘New York’]
for i in range(len(states)):
print(states[i])
# prints all the states in the list
Пользовательские диапазоны.
for i in range(0, 12): print(f'Number: {i}') # prints all numbers starting with 0 up to but not including 12
Циклы пока
count = 0 while count <= 10 print(count) count +=1 # prints all numbers starting with 0 through 10
Модули
В самом фундаментальном смысле модуль - это файл, содержащий код Python, содержащий набор функций для включения в приложение. Их можно установить с помощью ключевого слова import
.
Основные модули - доступны по умолчанию в Python. Некоторые включают datetime
, math
и т. Д. Этот документ содержит подробную ссылку.
Пользовательские модули - импортируйте другой файл модуля / Python, содержащий одну или несколько функций, для доступа к функциям в другом файле / модуле.
- Чтобы получить доступ к функции из импортированного модуля, укажите имя этого модуля с добавлением
.
и именем функции:
# example is some file example.py, and inside is a function called sayHello import example example.sayHello()
- Также можно изначально получить функцию из модуля и напрямую ссылаться на нее:
# example is some file example.py, and inside is a function called sayHello from example import sayHello # now can use function sayHello
Модули из диспетчера пакетов Pip:
- Используется для установки внешних модулей или программ в приложение Python
- Django (веб-фреймворк) - это пример модулей, устанавливаемых через диспетчер пакетов pip.
Классы
Используется для создания объектов, у которых есть свойства и методы. В Python почти все является объектом (т.е. строкой, списком и т. Д.)
Создайте класс:
class Person: # Constructor (function that runs when object is instantiated) def __init__(self, name, age): self.name = name self.age = age def introduction(self) print(f'My name is {self.name} and I am {self.age}') # to access properties from any method within the class, need to use self keyword sara = User('Sara', 25) # this will instantiate the object # can access each property by sara.age # to call a method on an object: sara.introduction()
JSON и Python
При работе с API мы обрабатываем данные в конечном итоге в формате JSON, и нам необходимо преобразовать JSON в словарь Python, чтобы работать с этими данными и манипулировать ими.
- не называйте файл
json.py
- возникнет конфликт, так как это имя модуля. Назовите его, например,py_json.py
, вместо этого - используйте
import json
в верхней части файла
import json # example JSON data stateJSON = '{'name': 'New York', 'location': 'Northeast'}' state = json.loads(stateJSON) # state is now in dictionary form, i.e. {'name': 'New York', 'location': 'Northeast'} # can now access key/values state['name'] --> would return New York
Больше контента на plainenglish.io