Коллекция основ для изучения 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’]) OR state.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