Skip to content

Введение в Python

Ввод-вывод данных

В Python можно вводить данные разными способами. Рассмотрим ввод/вывод "руками", то есть через консоль. Это делается с помощью функций input() и print() соответственно.

python
input()  # мы ввели данные, но они нигде не сохранены
python
a = input()  # теперь мы записали их в переменную и сможем вытащить из нее данные позже
print(a)

Если мы хотим, чтобы вместе с вводом в консоли было какое-то сообщение пользователю, можно сделать так:

python
a = input("Введите свое имя: ")
print("Привет,", a)  # тут можно просто передать несколько параметров - строку и число

Функция input() позволяет записать только 1 переменную.

У функции print(a, end='\n', sep=' ') есть некоторые параметры, которые установлены по умолчанию:

  • end='\n' - устанавливается символ, который выводим в конце строки. В данном случае это перевод строки.
  • sep=' ' - устанавливается символ, который выводим между разными параметрами.
python
a = input("Enter string:")
b = input("Enter another string:")

print(a, b)
print(a, b, sep='')
print(a, b, sep='', end=" ")
print(a, b)

Типы данных

Типов данных в Python много. Посмотрим на базовые.

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

int, float

int и float - это типы, которые представляют собой числа.

  • int - целое число.
  • float - число с точкой.
python
a = 5
b = 1.12
print(type(a), type(b))

С этими типами можно складывать, умножать, вычитать, делить и делать другие привычные операции.

python
a = 5
b = 2

print(a + b)    # сложение
print(a - b)    # вычитание
print(a * b)    # умножение
print(abs(-a))  # взятие модуля
print(a**b)     # возведение в степень

print(b / a, type(b / a))     # обычное деление
print(b // a, type(b // a))   # целочисленное деление
print(a % b, type(a % b))     # остаток от деления

Еще можно делить нацело даже если делитель float:

python
a = 5
b = 1.12
print(a // b)
print(a % b)  # это деление с остатком, результат - остаток от деления

Важно, что операция деления с остатком не определена для float.

Строки

Любой ввод по умолчанию является строкой. Если мы сами записываем в переменную строку, то делаем так:

python
a = "abba"
print(type(a))

Строки можно складывать:

python
print("eda" + "ami")

И даже умножать, но только на число:

python
print("a" * 3)

Полезные операции со строками:

  • len(s) - вывести длину строки.
  • s.count(ss) - посчитать число подстрок внутри строки.
  • s.find(ss), s.rfind(ss) - найти первое или последнее вхождение подстроки в строке.
  • s.isdigit() - проверить, являются ли все элементы в строке числами.
  • s.islower(), s.isupper() - проверить регистр букв.
  • join() - соединить список строк в одну строку.
  • s.strip(ss) - удалить символы из строки.
  • s.replace(s_a, s_b) - заменить подстроку s_a на s_b.
  • s.split(ss) - разбить строку по подстроке ss.
python
s = 'We love programming'
s_1 = '1234'

print(len(s))
print(len(s_1))

print(s.count('o'))
print(s.find("love"))
print(s.rfind('o'))
print(s.find('-'))
print(s.isdigit(), s_1.isdigit())
print(s.islower(), s.isupper())

full_s = ' '.join([s, s_1])
print(full_s)
print(full_s.split())

Кортеж

Кортеж - неизменяемый тип данных: каким его задали, таким он и остается.

python
a = (1, 2, 3)
print(a)

К элементам строк, кортежей и многих других типов данных можно обращаться по индексу. Индексация идет с 0.

python
print(a[1])

Также в Python поддерживается отрицательная индексация: смотрим на элементы с конца.

python
print(a[-1])

Есть такие методы для кортежей:

  • len(a) - узнать длину.
  • count() - посчитать, сколько раз элемент содержится в кортеже.
  • index() - получить индекс первого вхождения элемента.
python
a = (1, 2, 1, 3, 4)
print(len(a))
print(a.count(1))
print(a.index(3))

Списки

Списки - изменяемый упорядоченный набор элементов.

python
aba = [1, 2, 3, 4, 5, 3]

Помимо обращений по индексу еще можно делать срезы:

python
print(aba[::2])

Общая структура индексации:

a[i:j::k]

Это значит: возьми элементы с i-го включительно по j-ый невключительно с шагом k.

Логическая переменная (bool)

Этот тип данных бывает только двух видов: True и False.

python
a = True
print(a)

a = False
print(a)

Приведение типов

Некоторые типы данных можно приводить к другим типам.

python
a = "52"
print(a, type(a))

a = int(a)
print(a, type(a))
python
a = "3.1415"
print(a, type(a))

a = float(a)  # а к типу int не получится
print(a, type(a))

В обратную сторону это тоже работает:

python
a = 53
print(a, type(a))

a = str(a)
print(a, type(a))

a = float(a)
print(a, type(a))

Логические операторы

Отдельно стоит сказать про логические операторы, которые используются почти в любом питоновском скрипте.

Мы уже знаем про операторы умножения, сложения, целочисленного деления и деления с остатком. Рассмотрим операторы сравнения:

  • числа сравниваются обычным образом;
  • строки сравниваются с помощью лексикографического порядка;
  • списки сравниваются поэлементно, тоже с помощью лексикографического порядка.
python
a = 1
b = 2
c = 1

print(a > b)   # больше
print(a >= c)  # больше или равно
print(a < b)   # меньше
print(a <= c)  # меньше или равно
print(a == c)  # равенство
print(a != b)  # неравенство

Можно еще сравнивать несколько логических выражений:

python
print(a == c and 0 == 0)
print(a != c or a != b)
print(not a)