Skip to content

Latest commit

 

History

History
323 lines (230 loc) · 10.9 KB

File metadata and controls

323 lines (230 loc) · 10.9 KB

Пособие по изучению Python (МАШИННЫЙ ПЕРЕВОД)

Общая информация

  • Строки кода выполняются сверху вниз.
  • Всё, что идёт после #, Python игнорирует. Так можно писать комментарии для людей.

Типы данных

В Python есть разные типы данных:

  • Integer (целое число)

    5
  • String (строка, текст)

    "Hello World!"
    "123" # Это тоже строка, потому что она в "", даже если содержит только числа
    # Со строками нельзя выполнять математику.
  • Float (число с плавающей точкой, десятичное число)

    3.14
  • Boolean (логический тип: True или False)

    True
    False

Преобразование типов

Note

Всё, что идёт после #, Python игнорирует. Это просто заметка для людей.

Примеры:

int(x)   # Преобразовать в целое число (integer)
str(x)   # Преобразовать в строку (text)
float(x) # Преобразовать в число с плавающей точкой (decimal number)

age = "17" # Строка (text)
age_number = int(age) # Преобразовать в целое число (integer)

Присваивание переменных

Вы можете создавать переменные и присваивать им значения. Называть их можно как угодно, но лучше, чтобы имя отражало содержимое.

a = 5 # Integer (целое число)
b = 10
name = "Alex" # String (строка/текст), должна быть в "" или ''

Вычисления с переменными

Операторы:

  • + Сложение
  • - Вычитание
  • * Умножение
  • / Деление
  • % Modulo (остаток от деления)
c = a + b # c будет 15, потому что 5 + 10 = 15
c = a * b # c будет 50, потому что 5 * 10 = 50
a = a + 1 # a увеличивается на 1, значит a = 6

Оператор modulo возвращает остаток от деления:

10 % 2 # Возвращает 0. При делении 10 на 2 остаток 0.
23 % 2 # Возвращает 1. 23 / 2 это 11 и остаток 1.

Вывод/ввод в консоли

print("Hello World!") # Печатает "Hello World!" в консоль

Ввод пользователя

print("What is your name?: ")
name = input() # Пользователь должен ввести что-то в консоли, это сохранится в переменную 'name'
# Сокращённо:
name = input("What is your name?: ")

if-else (условия)

С помощью if, elif и else Python может принимать решения. Python читает условия сверху вниз и выполняет только первый подходящий блок.

Блок — это строки с отступом под условием. Поэтому нужно нажимать Tab, чтобы показать Python: "Этот код относится к этому условию."

if = "Если это условие верно, сделай это."
elif (необязательно) = "Иначе, если другое условие верно, сделай это."
else (необязательно) = "Иначе, если ни одно условие выше не было верным, сделай это."

Note

Всё, что идёт после #, Python игнорирует. Это просто заметка для людей, её не нужно переписывать.

if a < b: # Если a меньше b
    print("a is less than b")
elif a == b: # Если a равно b
    print("a is equal to b")
else: # Если ни одно из предыдущих условий не подходит
    print("a is greater than b")

Циклы

Циклы нужны, когда Python должен сделать что-то несколько раз. Есть 2 важных типа циклов: for и while.

Цикл for

Цикл for проходит по коллекции шаг за шагом. При каждом проходе Python берёт следующее значение из списка и временно сохраняет его в переменную.

fruits = ["Apple", "Banana", "Cherry", "Lemon"]
for fruit in fruits: # fruit всегда текущий фрукт
    print(fruit) # печатает текущий фрукт

Python примерно делает это:

  1. fruit равен "Apple", затем печатается "Apple".
  2. fruit равен "Banana", затем печатается "Banana".
  3. fruit равен "Cherry", затем печатается "Cherry".
  4. fruit равен "Lemon", затем печатается "Lemon".

Output:

Apple
Banana
Cherry
Lemon

Имя fruit можно выбрать свободно. Важно только использовать это же имя в блоке с отступом.

Если нужно сделать что-то определённое количество раз, можно использовать range():

for i in range(1, 10):
    print("Проход номер " + str(i))

range(1, 10) означает: начать с 1 и остановиться перед 10. То есть 10 уже не входит.

Output:

Проход номер 1
Проход номер 2
Проход номер 3
Проход номер 4
Проход номер 5
Проход номер 6
Проход номер 7
Проход номер 8
Проход номер 9

Цикл while

Цикл while работает, пока условие истинно. Python проверяет условие заново перед каждым проходом цикла.

a = 0
b = 5
while a < b: # Пока a меньше b
    print(a)
    a = a + 1 # a становится больше, чтобы цикл когда-нибудь закончился

Output:

0
1
2
3
4

Когда a достигает значения 5, условие a < b больше не истинно. Тогда цикл останавливается.

Чтобы сделать бесконечный цикл, можно написать while True:.

Получение ввода от пользователя

print("Please enter your name:")
name = input()

Важно: input() всегда возвращает строку (текст), поэтому с результатом нельзя сразу выполнять вычисления. Результат можно преобразовать в целое число с помощью int(...):

number = int(input("Enter a number: "))

Tip

Сокращённо: name = input("Please enter your name:")

Интерполяция строк (вставка переменных в строки/текст)

Есть 2 варианта:

print("Hello " + name + ", welcome!") # '+' соединяет строки

или

print(f"Hello {name}, welcome!") # Нужно добавить 'f' в начале, чтобы вставлять переменные через {}

Если переменная — число, её сначала нужно преобразовать в строку:

age = 17
print("I am " + str(age) + " years old.")
print(f"I am {age} years old.") # в варианте с f-string Python автоматически преобразует число в текст

Массивы / списки

Вместо одной переменной с одним значением можно определить массив (список) значений:

fruits = ["Apple", "Banana", "Cherry"]
print(fruits[0]) # печатает первое значение массива (нумерация начинается с 0) (Apple)
print(fruits[1]) # печатает второе значение массива (Banana)

new_fruit = "Orange"
fruits.append(new_fruit) # Добавляет 'Orange' в массив 'fruits'
# ["Apple", "Banana", "Cherry", "Orange"]

Преобразование строки в массив (list):

text = "Apple"
text_array = list(text)
# text_array -> ['A', 'p', 'p', 'l', 'e']

Сделать что-то, например, 10 раз:

for i in range(1, 10):
    print(i) # Печатает числа от 1 до 9 (1, 2, 3, 4, 5, 6, 7, 8, 9)
# 'range(1, 10)' создаст массив со значениями от 1 до 9 ([1, 2, 3, 4, 5, 6, 7, 8, 9]).

Подсчитать количество элементов в массиве:

fruits = ["Apple", "Banana", "Cherry"]
number_of_fruits = len(fruits) # Возвращает количество элементов в массиве 'fruits' (в этом случае 3)

Модули

Можно импортировать модули, чтобы использовать дополнительные функции.

Примеры:

import random
random_number = random.randint(1, 10) # Возвращает случайное число между 1 и 10

fruits = ["Apple", "Banana", "Cherry"]
random_fruit = random.choice(fruits) # Возвращает случайный фрукт из массива 'fruits'
print(random_fruit) # "Cherry" или "Banana" или "Apple"

Функции

Можно создавать собственные функции, чтобы выносить повторяющуюся логику и делать код понятнее.

def greeting(name): # Функция с одним параметром 'name'
    print(f"Hello {name}, welcome!") # Печатает приветствие

name = input("What is your name?: ")
greeting(name) # Вызывает функцию 'greeting' с параметром 'name'

def sum_numbers(number_one, number_two): # Функция с 2 параметрами 'number_one' и 'number_two'
    return number_one + number_two # Возвращает сумму number_one и number_two

a = 5
b = 10
result = sum_numbers(a, b) # a подставляется в 'number_one', b — в 'number_two'
print(f"The sum of {a} and {b} is {result}.") # Печатает сумму a и b

Мои примеры решений для некоторых более сложных задач