lucky_number = 96 Базовые конструкции языка Python
6.1 Переменные
Одна из самых основных концепций программирования это переменные. Переменные - поименнованные логические ячейки памяти. Помним, что программа - это алгоритм работы с нашими данные. Так вот, переменные это и есть наши данные. Часто разные авторы любят проводить аналогию, что переменные это некоторые коробки, которые имеют ярлыки с подписями. Переменная имеет имя и значение. Пользуясь этим знанием, создадим переменную.
Синтаксис очень простой: имя_переменной = значение. Символ ‘=’ называется оператором присваивания. Разберем, какие быввают имена и какие бывают значения
6.1.1 Имена
Имена могут состоять из любой последовательности символов из алфавита латинских букв, цифр и символа нижнего подчеркивания, хотя есть некоторые ограничения.
Имя не должно начинаться с цифры
Имя не должно быть зарезервированным словом
Зарезервированные слова - специальные конструкции для обозначения элементов синтаксиса. Полный их перечень можно посмотреть в литературе.
Примеры подходящих имен:
cat = 6
meow_meow = "meow"
_dog = FalseПримеры неправильных имен:
# строки, начинающиеся с решетки, это комментарии
# они игнорируются интерпретатором и служат подсказками для программистов
# старайтесь писать комментарии!
56ghf = False # имя начинается с цифры
True = 1 # имя зарезервированное слово
dfdf$qw@ = 1 #Содержит недопустимые символыИмена в Python регистрозависимы, т.е. имена cat и Cat это разные имена.
Старайтесь давать осмысленные имена! Помните, программист прежде всего читатель, а не писатель, и он должен понимать, что лежит в какой переменной и для чего она нужна.
Существуют несколько нотаций (соглашений) о написании имён. В Python чаще всего используются змеиная нотация: имена переменных пишут с маленькой буквы, разделяя слова знаком нижнего подчеркивания (snake_case).
6.1.2 Типы переменных
Кроме имени переменной важно её значение. Python язык с динамической типизацией, т.е. тип переменной определяется по присваемому значению в момент присваивания. Если мы существующей переменной, присвоим значение другого типа, она изменит свой тип автоматически.
| Тип переменной | Пример |
|---|---|
| int | a = 5 |
| float | a = 5.5 |
| str | a = “5.5” |
| bool | a = True |
Количество памяти, выделяемое на одну переменную, может отличаться от вида используемого интерпретатора: CPython (общепринятая), Jython, IronPython. К тому же, в зависимости от значения, интерпретатор может выделить автоматически необходимое количество памяти.
Переменные можно из одного типа приводить к другому. Такая операция называется операцией приведения типов (type cast). Правила преобразования типов:
- Любой тип можно преобразовать в строку
- Любой тип можно преобразовать в логический тип: 0 или пустая строка будет False, остальные значения будут True
- Строку можно преобразовать в число, если она представляет из себя число и не содержит посторонних символов.
a = 5
type(a) # Проверка типа переменнойint
b = str(a) # type cast, аналогичные операции int(), float(), bool()
type(b)str
Кроме перечисленных типов существует специальное значение - None, которое обозначает пустоту, когда переменная не должна иметь какое-либо значение и тип.
6.2 Функции
Другой важный концепт - функции. Так называют логически отделенную часть кода, имеющую имя и выполняющую определенные, заданные программистом операции. О том, как создавать функции поговорим на будущих занятиях. Сейчас важно знать, что у функции существует определение, где мы прописываем выполняемые операции, и вызовы, где мы выполняем эти операции. Функции призваны уменьшить дублирование кода, когда одним и тем же стандартным операциям присвоить имя.
Синтаксис вызова функции простой: имя_функции (значение_параметра1, значение_параметра2). Т.е. имя функции и в круглых скобках значения параметров функции - переменные внутри функции, от которых зависят выполняемые операции. Параметров может быть от 0 до очень большого неопределенного переменного количества. Вы уже вызывали встроенные функции print и type.
6.3 Арифметические операции
Арифметические операции осуществляются над числами.
a = 5
b = 7
a + b12
Чтобы не потерять результат, сохраните его в переменную
c = a + b| Операция | Значение |
|---|---|
| a + b | Сложение |
| a - b | Вычитание |
| a * b | Умножение |
| a / b | Деление |
| a // b | Деление нацело |
| a % b | Получение остатка от деления |
| a ** b | Возведение в степень |
Сложные трансцедентные операции содержаться в модуле math. Модулям у нас будет посвящено отдельное занятие. Сейчас важно знать, что модуль - это цельный код. который за вас написали другие программисты и которым можно воспользоваться, импортировав себе этот модуль.
import math
print(math.sqrt(9)) # Имя_модуля.имя_функции(значение_параметра) - sqrt - square root - квадратный корень3.0
В Python не существует понятие констант. Есть соглашение об именах: переменные, которые не должны изменяться должны называться целиком в верхнем регистре (капсом)
PI = 3.14166.4 Логические операции
Логические операции осуществляются над логическими переменными или логическими высказываниями. Логическое высказывание можно получить путем сравнения значений.
| Операция | Значение |
|---|---|
| a and b | Конъюнкция |
| a or b | Дизъюнкция |
| not a | Инверсия |
| Операция | Значение |
|---|---|
| a == b | Равенство |
| a != b | Неравенство |
| a < b | Строго меньше |
| a <= b | Меньше или равно |
| a > b | Строго больше |
| a >= b | Больше или равно |
Пример
a = 5
b = 6
c = a > 10 or b < 5
print(c)False
Нельзя проверить на равенство или неравенство с None. Для проверки служит специальная конструкции is и is not.
a = None
b = a is not None
print(b)False
Приоритет операций как в математике и его можно изменять с помощью заключения выражения в скобки. Как в математике.
6.5 Строки
Обратите внимание: для определения строки, её значения надо заключить в кавычки. Кавычки могут быть одинарными или двойными. Важно, чтобы значение обрамляли однотипные кавычки.
a = "Hello world!"
b = 'Привет, мир!'
print(a)
print(b)Hello world!
Привет, мир!
Строки могут быть многострочными. Для этого надо значение заключить в три пары однотипных кавычек
multiline = '''Привет.
Я многострочная строка
Как поживаешь? '''
print(multiline)Привет.
Я многострочная строка
Как поживаешь?
Строки можно объединять. Такая операция называется сложением строк или конкатенацией.
s = "Привет" + " мир"
print(s)Привет мир
Строки можно умножать на число - тогда строка повторится заданное количество раз.
s = "ХА"*10
print(s)ХАХАХАХАХАХАХАХАХАХА
Для строк существуют специальные символы, которые записываются с обратного слэша. Тогда 2 символа на печати интерпретируются как один особый, что может вносить сумятицу.
| Символ | Значение |
|---|---|
| “\n” | Перенос строки |
| “\t” | Табуляция (особый вид пробела) |
| “\r” | Возврат каретки |
| “\”” | Кавычка |
| “\\” | Обратный слэш |
Чтобы избежать коллизий, можно использовать r-строки. Они могут быть полезны для обозначения путей к файлам в Windows.
asis_str = r"C:\Users\numbers" #\n не интерпертируется как символ переноса строкиКроме r-строк существуют f-строки, которые позволяют удобно подставлять в строку значения переменных и выражений.
square = 10
print(f"Площадь фигура равна {square}")Площадь фигура равна 10
У строк можно выбирать подстроки. Нумерация начинается с 0. Позиции перечисляются в квадратных скобках. Индексация возможна в трех режимах.
[start] - выбирает 1 символ с позиции start
[start:end] - выбирает подстроку с позиции start до end, не включая end
[start:end:step] - выбирает подстроку с позиции start до end, не включая end, с шагом step
Возможна отрицательная индексация, тогда нумерация символов начинается с конца строки. -1 - последний символ строки.
ИнтервалыPython всегда работает с полуоткрытыми интервалами, чтобы при последовательной работе с ними не возникало пересечений.
s = "Мама мыла раму."
print(s[0])
print(s[1:5])
print(s[0:7:2])
print(s[-2])М
ама
Мм ы
у
Для работы с переменными существуют ряд встроенных функций. Одна из таких - получение длины. В случае строки - количества символов в строке.
print(len("Мама мыла раму."))15
6.6 Дополнительно
Можно вводить данные с клавиатуры. Для этого есть функция input. Она возращает строку. Если функция возвращает какое-то значение, следовательно, его можно записать в переменную.
a = input("Введите значение: ")# Параметр здесь для красоты - приглашение ввести значение6.7 Подведение итогов
У переменных должно быть “говорящее” имя
Тип переменной зависит от её значения
В Python есть функционал для выполнения любых арифметических и логических операций.
Строки бывают разные: однострочные, многострочные, r-строки, f-строки.
6.8 Задание
Не используйте решения, которые основываются на следующие темы (циклы, условия и т.п.). Они не будут зачтены. Если желаете действительно научиться, то старайтесь использовать интернет по-минимуму. Максимум литературу или документацию.
Конвертер температуры Напишите программу, которая переводит температуру из градусов Цельсия в Фаренгейты по формуле: F = (C × 9/5) + 32.
Конкатенация строк Попросите пользователя ввести имя и фамилию, затем выведите их в одной строке через пробел.
Площадь прямоугольника Запросите у пользователя длину и ширину прямоугольника, затем вычислите и выведите его площадь.
Операции с числами Даны две переменные: a = 10 b = 3 Выведите результаты сложения, вычитания, умножения, деления и возведения в степень.
Длина строки Попросите пользователя ввести любое слово и выведите количество букв в нём.
Четное или нечетное Попросите пользователя ввести число и определите, является ли оно четным (используйте %).
Повторение строки Попросите пользователя ввести слово и число n, затем выведите это слово n раз подряд.
Конвертер минут в часы Попросите пользователя ввести количество минут, затем переведите их в часы и минуты (например, 125 мин = 2 ч 5 мин).
Напишите программу, соверщающую следующие действия:
- принимает с клавиатуры 3 числа
- рассчитывает значение по формуле Герона \(S = \sqrt{p(p-a)(p-b)(p-c)}, p = a + b +c\)
- выводит на экран полученное значение
- выводит, является ли оно чётным.
Задачи со строками
Первые и последние символы
Попросите пользователя ввести строку, затем выведите:
Первые 3 символа
Последние 3 символа
Пример:
Ввод:"Программирование"
Вывод:Первые 3 символа: 'Про' Последние 3 символа: 'ние'
2. Переворот строки
Напишите программу, которая переворачивает строку.
Пример:
Ввод:"привет"
Вывод:"тевирп"
3. Поиск подстроки
Попросите пользователя ввести строку и подстроку, затем проверьте, содержится ли подстрока в строке.
Пример:
Ввод:Строка: "Hello, world!" Подстрока: "world"Вывод:
"Да, подстрока найдена!"
4. Замена подстроки
Дана строка:
"Я люблю Python, Python — лучший!"
Замените все вхождения"Python"на"JavaScript"и выведите результат.Вывод:
"Я люблю JavaScript, JavaScript — лучший!"
5. Разделение строки
Дана строка:
"apple,banana,orange,grape".
Разделите её по запятым и выведите каждый фрукт с новой строки.Вывод:
apple banana orange grape
6. Подсчёт вхождений символа
Попросите пользователя ввести строку и символ, затем подсчитайте, сколько раз символ встречается в строке.
Пример:
Ввод:Строка: "abracadabra" Символ: "a"Вывод:
"Символ 'a' встречается 5 раз"
7. Удаление пробелов
Дана строка:
" Hello, world! ".
Удалите лишние пробелы в начале, конце и между словами (оставьте только по одному пробелу между словами).Вывод:
"Hello, world!"
8. Извлечение цифр из строки
Дана строка:
"abc123def45gh6".
Извлеките все цифры и выведите их как одно число.Вывод:
123456
9. Форматирование номера телефона
Дана строка:
"+71234567890".
Преобразуйте её в формат:"+7 (123) 456-78-90".Вывод:
"+7 (123) 456-78-90"
10. Шифр Цезаря (простой сдвиг букв)
Напишите программу, которая сдвигает каждую букву в строке на 1 вперёд по алфавиту.
Пример:
Ввод:"abc"
Вывод:"bcd"Усложнение: Сделайте сдвиг на любое число (например, +3).
6.9 Вопросы
- Понятие переменной
- Соглашения об именах
- Типы данных
- Арифметические и логические операции
- Строки и операции над ними.