Python 3
Разветвления программистов
Сейчас мы разберем профессии программистов. Задания вы найдете в конце главы.
Программисты разделяются по деятельности на направления:
1) Web - разработчик; можно разделить на:
1. Backend - разработк
2. frontend - разработчик
3. Fullstack - девелопер
2) desktop - разработчик
3) Разработчик серверных приложений
4) Разработчик мобильных приложений
5) Программисты встраиваемых систем
6) Системное программирование
7) Разработчик игр
8) Олимпиадное программирование и решение задач
9) Программирование для бухгалтерских и финансовых продуктов
10) Программирование баз данных
11) Science
Как можно заметить, жизни не хватит все перепробовать. Нужно определиться не только с направлением, но и языком программирования.
Вы должны научится искать информацию самостоятельно и эффективно, а я просто один из ваших источников информации. Поэтому, я вас немного подтолкну. Самое главное, что нужно сделать для поиска первого языка, это:
- Узнать о направлениях программирования; Чем в них занимаются и на каких языках.
- Попробовать основы языков из этого направления(можно попробовать их, не скачивая); Узнать о преимуществах и недостатках каждого из них.
- Послушать мнение программистов.
Я обещал вам задания. Изначально, думал не делать его, но решил дать вам пару тем.
Задание на практику: Присмотреть для себя направление и пару языков; Ответить на вопрос - "Кто для вас программист", но сами; Найти определения каждого пункта.
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
1. Hello World и переменные
Для программирования на Python, как не странно, нужно скачать его. Также, можно делать это через интернет. Где именно писать код, выберите сами.
Иногда, я работаю тут:https://replit.com/
Hello World - это первая программа, которую пишет каждый. Она выводит на экран "Hello Word ".
Она пишется очень просто. Нам нужно напечатать 1 строчку кода.
Создайте новый проект и напишите:
print("Hello World")
*Текст нужно печатать в кавычках*
В скобки мы помещаем данные - с которыми нужно совершить работу. Также, можно помещать другие команды/функции/переменные и т. Д. Пример:
print(int("28"))
Переменные
Самое лучшее объяснение из тех, что я слышал: "Переменные можно сравнить с коробками. В коробку можно поместить какой-то предмет, а в переменную какое-то значение.
Мы создадим переменную number и присвоим ей значение 5:
number = 5
Создадим переменную str и присвоим ей значение "строка":
str ="строка"
Внутри переменной можно - умножать, делить, складывать, вычитать, соединять. В Python можно это делать почти везде.
Пример 1:
str1 ="При"
str2 ="вет"
str3 ="!"
str4 = str2 + str3
print(str1 + str4)
print(str1, str4)
Вывод:
Привет!
При вет!
В первом примере - все переменные типа string.
Пример 2:
int1 =2
int2 =3
int3 = int1 + int2
int2 = int2 * 3
print(int1, int2, int3)
print(int1 + int2 + int3)
Вывод:
2 9 5
16
Во втором примере - все переменные типа int.
*Если поставить знак " + ", то данные складываются или соединяются . Если поставить знак " , " (запятая) , то данные соединяются через пробел.*
Пример 3:
print(5 + "ваз.")
В этом случае - будет ошибка.
Если поменять код, то он будет работать.
Пример 4:
print("5" + "ваз.")
Вывод: 5ваз
Или через запятую.
print(5, "ваз")
Вывод: 5 ваз
*Можно использовать любое имя для переменной. Главное это: первый знак - это буква; без пробелов. *
Пример 5:
print("Пти" + 'ца')
Вывод: Птица
Пример 6:
print(-3 * 2)
Вывод: -6
print(-2 * -4)
Вывод: 8
Пример 7 :
а, b, c = 7, 90, 4
print( a )
print( b )
print( c )
Вывод:
7
90
4
Основные типы переменных
int - числа (a =5)
string - текст (a ="Розовый узел")
Остальные будем проходить походу дела.(int и string были в этой славе)
Меняем тип переменных
str1 ="5"
print(int(str1) + 3)
number = 4
print(str(number), "стула.")
Перепишите и запустите код.
int( ) - меняет тип на int.
str( ) - меняет тип на string.
Задания на практику
Перепишите и запустите каждый код. ( поможет лучше запомнить )
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
2. Тип float
Тип float
Тип float - отрицательные и положительные числа с плавающей точкой. Его нельзя нельзя использовать с типом string.
Пример 1 (int + float):
int_1 =9
float_1 =2.1
print(int_1 + float_1)
Вывод: 11.1
Пример 2 (string + float):
string_1 = "1.5"
float_1 =2.5
print(float(string_1) + float_1)
Вывод: 4.0
float( ) - меняет тип на float. (из "1.5" в 1.5)
Есть две бутылки по 1.5 литра. Вывести на экран - "В бутылках ... литра воды".
Пример 3:
liters =1.5
bottles =2
summa = int(liters * bottles)
print("В бутылках " + str(summa) + " литра воды.")
Вывод: В бутылках 3 литра воды.
Если написать команду "print(1.5 * 2)" , то Python выведет - "3.0".
Мы добавили команду int( ). (меняет тип на int - целые числа ) ( из 3.0 в 3 )
Пример 4:
summa =1.2 + 1.1 ( тут 2.3)
print(int(summa)) (тут 2)
Вывод: 2
Мы добавили команду int( ). ( из 2.3 в 2 )
Пример 5:
print(-5.3 * 2)
Вывод: -10.6
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
3. Алгебраические операции и приоритет их выполнения в Python.
Алгебраические операции
Сложение - "+".
Вычитание - "-".
Умножение - "*".
Деление - "/". (ответом всегда будет - float)
Возведение в степень - "**".
print(5**2)
Вывод: 25
print(10** -2)
Вывод: 0.01
Остаток от деления - "%":
print(8%3)
Вывод: 2
print(8%2)
Вывод: 0
Целая часть от деления - "//":
print(8 //3)
Вывод: 2
Присваивание - "=".
Равно - "==".
Не равно - "!=".
Больше - ">".
Меньше - "<".
Меньше или равно - "<=".
Больше или равно - ">=".
Приоритет выполнения операций:
1)Скобки
2)Возведение в степень **
3) * / // %
4)+ -
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
4. Списки
Списки
Это последовательности чисел, строк или каких-то ещё значений.
Мы уже присваивали переменным числовые и строковые значения, точно так же создаются списки.
list_1 = [элемент, элемент, элемент, ... , элемент]
list_1 = [34, 'hi', "2", 78.3, 43]
Можно хранить списки в списках.
Пример 1:
int_1 =34
list_1 = [78.4, "роза", int_1, 44, 'полка']
list_2 = [list_1, 23]
print(list_2)
Вывод: [[78.4, 'роза', 33, 44, 'полка'], 23]
Разбор:
Во второй строке: int_1 имеет значение 34 => int_1 заменяется на 34.
В третей строке: list_1 имеет значение [78.4, "роза", int_1, 44, 'полка'], а точнее ровна [78.4, "роза", 33, 44, 'полка'] => list_1 заменяется на [78.4, "роза", 33, 44, 'полка'].
В четвертой строке: list_2 имеет значение [list_1, 23], а точнее ровна [[78.4, "роза", 33, 44, 'полка'], 23] => list_2 заменяется на [[78.4, "роза", 33, 44, 'полка'], 23].
Названия переменных(пример: int_1, list_1, list_2) - как ссылки.
В выводе: [[78.4, "роза", 33, 44, 'полка'], 23] (это то, что мы хотели вывести) заменяется на [[78.4, 'роза', 33, 44, 'полка'], 23] (итоговый вывод). При выводе " заменяется на ' .
* => - из этого следует*
Пример 2:
print([67, 'p', 883])
Вывод: [67, 'p', 883]
Индекс - порядковый номер элемента в списке.
Обратится к определенному элементу:
Имя списка[индекс элемента]
Счёт в списках начинается с нуля.
Пример 3:
list_1 = [56, 7, "h", 78, 0, 'p']
print(list_1[0]) (Вывести элемент с индексом 0 из списка list_1)
print(list_1[1]) (Вывести элемент с индексом 1 из списка list_1)
print(list_1[2]) (Вывести элемент с индексом 2 из списка list_1)
print(list_1[3]) (Вывести элемент с индексом 3 из списка list_1)
print(list_1[4]) (Вывести элемент с индексом 4 из списка list_1)
print(list_1[5]) (Вывести элемент с индексом 5 из списка list_1)
Вывод:
56
7
h
78
0
p
Пример 4:
list_1 = [56, 7, "h", 78, 0, 'p']
index = 3
print( list_1[ index ] )
Вывод: 78
Разбор:
В третей строке: index имеет значение 3 => list_1[index] заменяется на list_1[3].
Можно проводить вычисления, вложив их в список.
Пример 5:
list_1 = [2 + 3, 8 * 2, 8 / 4, 4 ** 2, 8 // 3, 8 % 3, "в" + 'о']
print(list_1)
Вывод: [5, 16, 2.0, 16, 2, 2, 'во']
Можно объединить.
Пример 6:
list_1 = [4, 8, 0]
list_2 = [6, 0, 9]
print(list_1 + list_2 + [7])
Вывод: [4, 8, 0, 6, 0, 9, 7]
Элементы могут повторяться
Пример 7:
print([3, 5] + [7, 9])
Вывод: [3, 5, 7, 9]
Меняем тип на list:
print(list(34))
Вывод:
ошибка
print(list(67.9))
Вывод:
ошибка
print(list("море"))
Вывод:
['м', 'о', 'р', 'е']
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
5. len() - вычеслить длину.
len() - вычислить длину.
Len() и списки.
Пример 1:
list_1 = [78, "k", "L", 4, 89, 'hi']
length = len(list_1)
print("В списке", length, "элементов.")
Вывод: В списке 6 элементов.
Разбор:
Во второй строке: len() выдает число 6 (длину списка) => length =6 , а точнее length = int .
В третей строке: string, int, string работает, а string + int + string выводит ошибку. (разные типы)
len() и тип int.
Пример 2:
Print(len(500))
Вывод: ошибка
len() и тип string.
Пример 4 :
print(len("белый снег"))
Вывод: 10
len() учитывает пробел.
len() и тип float.
Пример 5:
print(len(87.4))
Вывод: ошибка
Но у меня есть лайфхак.
Пример 6:
string =str(7.34)
length = len(string)
Print(length - 1)
Вывод: 3
Разбор:
1) Меняем тип на string. Из 7.34 в "7.34".
2) Считываем длину с "7.34". (будет 4) len() - учитывает точку .
3) Если нужно не учитывать точку то, вычетам один.
Ответ - 3 числа.
Это был пример, а я пишу так:
print( len( str( 7.34 ) ) - 1 )
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
6. input() - Ввод с клавиатуры
(Для удобства: ">>" - написано в консоли(место, куда print() выводит данные))
input() - Пользовательский ввод
inout() получает вводные данные, обрабатывает их и выдает результат.
input("текст")
Пример 1:
name = input("Ваше имя?: ")
print("Привет, " + name)
Вывод :
>> Ваше имя?: Максим (вывод - "Ваше имя?: ")(мы ввели - "Максим")
>> Привет, Максим (print() вывел - "Привет, Максим")
Обратите внимание:
1) Код: Доходит до input(), выводит текст - "Выше имя?: ", делает паузу и ждёт.
2) Вы: Пишете текст - "Максим".
3) Код: Ждёт.
4) Вы: Нажимаете на Enter.
5) Код: Считывает текст, присваивает его переменной name, продолжает работу.
input() всегда возвращает текст (тип string)
пример 2:
age =input("Сколько вам лет?: ")
print(type(age))
>> Сколько вам лет?: 15 (Мы ввели)
>> <class 'str'> (print() вывел)
Разбор:
1) Вы: Ввели "15" в консоль.
2) Код: Считывает его с консоли. (в виде типа str)
3) Код: Говорит, что что переменная age имеет тип str. (<class 'str'>)
type() - Узнает тип.
Оставим скобки пустыми.
Пример 3:
a = input()
print("Вывод:", a)
>> 5 сот
>> Вывод: 5 сот
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
7. type() - узнаёт тип.
type() возвращает тип объекта, который мы ей передаём.
Всё очень просто.
type(объект)
Пример 1:
str_1 ="кот"
t =type(str_1)
print(t)
>> <class 'str'>
Пример 2:
int_1 =56
print(type(int_1))
>> <class 'int'>
Пример 3:
float_1 =8.2
qwe = type(float_1)
print(qwe)
>> <class 'float'>
Возьмём тип:
Пример 4:
print(type(int))
print(type(str))
print(type(float))
>> <class 'type'>
>> <class 'type'>
>> <class 'type'>
Зайдём ещё дальше и возьмём type:
Пример 5:
print(type(type))
>> <class 'type'>
Ну... вы поняли.
type() и списки:
Пример 6:
list_1 = [89, "o", 3, "ok"]
print(type(list_1))
print(type(list_1[1])) (элемент под индексом 1("o"))
>> <class 'list'>
>> <class 'str'>
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
8. isinstance() и тип bool
Тип bool
boolean может принимать только одно из двух значений:
- True ( Истина )
- False ( ложь )
type( ) - Какой тип у объекта. Возвращает str ( string ).
isinstance( ) - Принадлежит ли объект данному типу. Возвращает bool ( boolean ).
isinstance( элемент, тип )
Пример 1:
str_1 ="blue"
print( isinstance( str_1, str ) )
print( isinstance( str_1, int ) )
print( isinstance( str_1, float ) )
print( isinstance( str_1, bool ) )
print( isinstance( str_1, type ) )
print( isinstance( str_1, list ) )
>> True
>> False
>> False
>> False
>> False
>> False
Разбор:
( 1 строка ) Переменная str_1 имеет значение "blue".
( 2 строка ) isinstance : "blue" имеет тип str.
( 3 строка ) isinstance : "blue" не имеет тип int.
( 4 строка ) isinstance : "blue" не имеет тип float.
( 5 строка ) isinstance : "blue" не имеет тип bool.
( 6 строка ) isinstance : "blue" не имеет тип type.
( 7 строка ) isinstance : "blue" не имеет тип list.
Пример 2 :
int_1 =34
print( isinstance( int_1, str ) )
print( isinstance( int_1, int ) )
print( isinstance( int_1, float ) )
print( isinstance( int_1, bool ) )
print( isinstance( int_1, type ) )
print( isinstance( int_1, list ) )
>> False
>> True
>> False
>> False
>> False
>> False
Разбор :
( 1 строка ) Переменная int_1 имеет значение 34.
( 2 строка ) isinstance : 34 не имеет тип str.
( 3 строка ) isinstance : 34 имеет тип int.
( 4 строка ) isinstance : 34 не имеет тип float.
( 5 строка ) isinstance : 34 не имеет тип bool.
( 6 строка ) isinstance : 34 не имеет тип type.
( 7 строка ) isinstance : 34 не имеет тип list.
Пример 3 :
print( isinstance( 45.2, str ) )
print( isinstance( 45.2, int ) )
print( isinstance( 45.2, float ) )
print( isinstance( 45.2, bool ) )
print( isinstance( 45.2, type ) )
print( isinstance( 45.2, list ) )
>> False
>> False
>> True
>> False
>> False
>> False
Разбор :
( 1 строка ) isinstance : 45.2 не имеет тип str.
( 2 строка ) isinstance : 45.2 не имеет тип int.
( 3 строка ) isinstance : 45.2 имеет тип float.
( 4 строка ) isinstance : 45.2 не имеет тип bool.
( 5 строка ) isinstance : 45.2 не имеет тип type.
( 6 строка ) isinstance : 45.2 не имеет тип list.
Пример 4 :
t = True
print( isinstance( t, str ) )
print( isinstance( t, int ) )
print( isinstance( t, float ) )
print( isinstance( t, bool ) )
print( isinstance( t, type ) )
print( isinstance( t, list ) )
>> False
>> True
>> False
>> True
>> False
>> False
Разбор :
( 1 строка ) Переменная t имеет значение True.
( 2 строка ) isinstance : True не имеет тип str.
( 3 строка ) isinstance : True имеет тип int. ( Обратите внимание! )
( 4 строка ) isinstance : True не имеет тип float.
( 5 строка ) isinstance : True имеет тип bool.
( 6 строка ) isinstance : True не имеет тип type.
( 7 строка ) isinstance : True не имеет тип list.
Пример 5 :
f = False
print( isinstance( f, str ) )
print( isinstance( f, int ) )
print( isinstance( f, float ) )
print( isinstance( f, bool ) )
print( isinstance( f, type ) )
print( isinstance( f, list ) )
>> False
>> True
>> False
>> True
>> False
>> False
Разбор :
( 1 строка ) Переменная f имеет значение False.
( 2 строка ) isinstance : False не имеет тип str.
( 3 строка ) isinstance : False имеет тип int. ( Обратите внимание! )
( 4 строка ) isinstance : False не имеет тип float.
( 5 строка ) isinstance : False имеет тип bool.
( 6 строка ) isinstance : False не имеет тип type.
( 7 строка ) isinstance : False не имеет тип list.
Пример 4 : True имеет тип int и тип bool.
Пример 5 : False имеет тип int и тип bool.
Пример 6 :
t = True
print( type( t ) )
>> <class 'bool'>
Пример 7 :
print( type( False ) )
>> <class 'bool'>
Пример 6 : True имеет тип bool ( не тип int ).
Пример 7 : False имеет тип bool ( не тип int ).
Но! True и False имеют тип bool который является подтипом int. ( примеры 4 и 5 )
True= 1
False =0
При этом :
Пример 8 :
b = bool
t =type( b )
print( t )
>> <class 'type'>
Пример 9 :
List_1 = [90, "f", " ", 0]
print( isinstance( List_1, str ) )
print( isinstance( List_1, int ) )
print( isinstance( List_1, float ) )
print( isinstance( List_1, bool ) )
print( isinstance( List_1, type ) )
print( isinstance( List_1, list ) )
>> False
>> False
>> False
>> False
>> False
>> True
Разбор :
( 1 строка ) Переменная list_1 имеет значение [90, "f", " ", 0] ( список ).
( 2 строка ) isinstance : список не имеет тип str.
( 3 строка ) isinstance : список не имеет тип int.
( 4 строка ) isinstance : список не имеет тип float.
( 5 строка ) isinstance : список не имеет тип bool.
( 6 строка ) isinstance : список не имеет тип type.
( 7 строка ) isinstance : список имеет тип list. ( ! )
Пример 10 :
type1 = type
print( isinstance( type1, str ) )
print( isinstance( type1, int ) )
print( isinstance( type1, float ) )
print( isinstance( type1, bool ) )
print( isinstance( type1, type ) )
print( isinstance( type1, list ) )
>> False
>> False
>> False
>> False
>> True
>> False
Разбор :
( 1 строка ) Переменная type1 имеет значение type.
( 2 строка ) isinstance : type не имеет тип str.
( 3 строка ) isinstance : type не имеет тип int.
( 4 строка ) isinstance : type не имеет тип float.
( 5 строка ) isinstance : type не имеет тип bool.
( 6 строка ) isinstance : type имеет тип type.
( 7 строка ) isinstance : type не имеет тип list.
Попробуем типы.
Пример 11 :
list2 = list
print( isinstance( list2, str ) )
print( isinstance( list2, int ) )
print( isinstance( list2, float ) )
print( isinstance( list2, bool ) )
print( isinstance( list2, type ) )
print( isinstance( list2, list ) )
>> False
>> False
>> False
>> False
>> True
>> False
Разбор :
( 1 строка ) Переменная list2 имеет значение list.
( 2 строка ) isinstance : list не имеет тип str.
( 3 строка ) isinstance : list не имеет тип int.
( 4 строка ) isinstance : list не имеет тип float.
( 5 строка ) isinstance : list не имеет тип bool.
( 6 строка ) isinstance : list имеет тип type.
( 7 строка ) isinstance : list не имеет тип list. ( ! )
Пример 12 :
bool_1 = bool
print( isinstance( bool_1, str ) )
print( isinstance( bool_1, int ) )
print( isinstance( bool_1, float ) )
print( isinstance( bool_1, bool ) )
print( isinstance( bool_1, type ) )
print( isinstance( bool_1, list ) )
>> False
>> False
>> False
>> False
>> True
>> False
Разбор :
( 1 строка ) Переменная bool_1 имеет значение bool.
( 2 строка ) isinstance : bool не имеет тип str.
( 3 строка ) isinstance : bool не имеет тип int. ( ! )
( 4 строка ) isinstance : bool не имеет тип float.
( 5 строка ) isinstance : bool не имеет тип bool. ( ! )
( 6 строка ) isinstance : bool имеет тип type.
( 7 строка ) isinstance : bool не имеет тип list.
Пример 13 :
float_1 = float
print( isinstance( float_1, str ) )
print( isinstance( float_1, int ) )
print( isinstance( float_1, float ) )
print( isinstance( float_1, bool ) )
print( isinstance( float_1, type ) )
print( isinstance( float_1, list ) )
>> False
>> False
>> False
>> False
>> True
>> False
Разбор :
( 1 строка ) Переменная float_1 имеет значение float.
( 2 строка ) isinstance : float не имеет тип str.
( 3 строка ) isinstance : float не имеет тип int.
( 4 строка ) isinstance : float не имеет тип float. ( ! )
( 5 строка ) isinstance : float не имеет тип bool.
( 6 строка ) isinstance : float имеет тип type.
( 7 строка ) isinstance : float не имеет тип list.
Пример 14 :
str_1 = str
print( isinstance( str_1, str ) )
print( isinstance( str_1, int ) )
print( isinstance( str_1, float ) )
print( isinstance( str_1, bool ) )
print( isinstance( str_1, type ) )
print( isinstance( str_1, list ) )
>> False
>> False
>> False
>> False
>> True
>> False
Разбор :
( 1 строка ) Переменная str_1 имеет значение str.
( 2 строка ) isinstance : str не имеет тип str. ( ! )
( 3 строка ) isinstance : str не имеет тип int.
( 4 строка ) isinstance : str не имеет тип float.
( 5 строка ) isinstance : str не имеет тип bool.
( 6 строка ) isinstance : str имеет тип type.
( 7 строка ) isinstance : str не имеет тип list.
Пример 15 :
int_1 = int
print( isinstance( int_1, str ) )
print( isinstance( int_1, int ) )
print( isinstance( int_1, float ) )
print( isinstance( int_1, bool ) )
print( isinstance( int_1, type ) )
print( isinstance( int_1, list ) )
>> False
>> False
>> False
>> False
>> True
>> False
Разбор :
( 1 строка ) Переменная int_1 имеет значение int.
( 2 строка ) isinstance : int не имеет тип int.
( 3 строка ) isinstance : int не имеет тип int. ( ! )
( 4 строка ) isinstance : int не имеет тип float.
( 5 строка ) isinstance : int не имеет тип bool.
( 6 строка ) isinstance : int имеет тип type.
( 7 строка ) isinstance : int не имеет тип list.
Тип bool
bool и int
Пример 16 :
print( True + 4 )
>> 5 ( True=1 )
Пример 17 :
print( False * True )
>> 0
Разбор :
False=0 , а True=1 . => False * True=0 * 1=0
Пример 18 :
print( int( True ) )
print( int( False ) )
>> 1
>> 0
bool и str
Пример 18 :
print( True, "равен 1" )
>> True равен 1
Пример 19 :
print( False + " равен 0" )
>> Ошибка
print( str( False ) + " равен 0" )
>> False равен 0
Меняем тип на bool
bool( ) - меняет тип на bool
bool( ) вернет True :
- непустая строка ( в том числе если это один или несколько пробелов )
- числа не равные нулю ( 10, -89, -3, 56, 0.1 )
- непустой список ( даже если он содержит один пустой элемент, например пустой список )
bool( ) вернет False :
- пустая строка
- пустой список
- 0 или 0.0
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
9. if / elif / else
Знак "| - - " - 1 отступ в коде
Задача 1. Если число больше 7, то вывести список.
if - если
if условие:
| - - код
Код внутри оператора if, пишется с отступом ( кнопка с двумя стрелками или с надписью Tab ) .
Условие возвращает тип bool.
Пример 1 :
list_1 = [90, "dog", 6.89, 'g']
if10 > 7 :
| - - print( list_1 )
print( "Конец" )
>> [90, 'dog', 6.89, 'g']
>> Конец
Разбор :
1) Условие ( 10>7 ) говорит оператору if, что оно верное =>True
2) Если условие равно True, то if выполняет код, который мы в него вложили ( print( ) выводит список ) .
3) Второй print( ) не входит в if ( это заметно так, как перед ним нет отступа ) и будет работать в любом случае.
Пример 2 :
list_1 = [90, "dog", 6.89, 'g']
if5>7 :
| - - print( list_1 )
print( "Конец" )
>> Конец
Разбор :
1 ) Условие ( 5>7 ) говорит оператору if, что оно не верное => False
2 ) Если условие равно False, то if не выполняет код.
3 ) Второй print( ) не входит в if ( это заметно так, как перед ним нет отступа ) и будет работать в любом случае.
Задача 2. Если длина списка ровна 4, то вывести текст - "Условие верное". Если нет, то вывести текст - "Длина списка не ровна 4".
else - иначе
if условия :
| - - код
else :
| - - код
else работает вместе с if или if / elif, но не в одиночку.
Пример 3 :
else :
| - - print( 7 )
>>ошибка
Пример 4 :
list_2 = [78, 0, "op", 9]
if len( list_2 ) ==4 :
| - - print( "Условие верное" )
else :
| - - print( "Длина списка не ровна 4" )
>> Условие верное
Разбор :
1 ) условие ( len( list_2 ) ==4 ) равно True.
== оператор сравнения.
len( list_2 ) , длина списка, равен 4.
Сравниваем длину и 4 ( 4==4 ) . 4 ровна 4.
2 ) Если условие ровно True, то if выполняет свой код, а else пропускается.
Пример 5 :
list_2 = [78, 0, "op"]
if len( list_2 ) == 4 :
| - - print( "Условие верное" )
else :
| - - print( "Длина списка не ровна 4" )
>> Длина списка не ровна 4
Разбор :
1 ) условие ( len( list_2 ) ==4 ) равно False.
== оператор сравнения.
len( list_2 ), длина списка, равен 3.
Сравниваем длину и 4 ( 3==4 ) . 3 не ровна 4.
2 ) Если условие ровно False, то if не выполняет свой код, а else выполняет свой код.
Задача 3. Дима, Катя, Миша и Рома были участниками в велогонке, в котором 3 выигрышных места.
Если 1 место списка лидеров занимает Миша, то вывести текст - "Миша первый". Если он занимает второе место, то вывести текст - "Миша второй". Если он занимает третье место, то вывести текст - "Миша худший из лучших". Если он занял 4 место, то вывести текст - "ещё чуть-чуть". Если не 1, не 2, не 3 и не 4, то вывести текст - "В следующий раз".
elif - иначе, если.
if условие1 :
| - - Код
elifусловие2 :
| - - Код
elif работает вместе с if.
Пример 6 :
elif7==2 :
| - - print( 90 )
>>ошибка
Пример 7 :
list1 = ["Миша", "Катя", "Миша", "Рома", "Никита", "Вика", "Дима", "Слава", "Маша"]
name = "Миша"
if list1 [ 0 ] == name :
| - - print( "Миша первый" )
elif list1[ 1 ] == name :
| - - print( "Миша второй" )
elif list1[ 2 ] == name :
| - - print( "Миша худший из лучших" )
elif list1[ 3 ] == name :
| - - print( "ещё чуть-чуть" )
else :
| - - print( "В следующий раз" )
>> Миша первый
Имя Миша на 1 и 3 месте, но говорят только о 1.
elif - иначе, если.
Условие, записанное в if, равно True. Это значит, что иного случая быть не может.
Поменяйте значение name и повторите.
Можно, не использовать elif :
Пример 8 :
list1 = ["Миша", "Катя", "Миша", "Рома", "Никита", "Вика", "Дима", "Слава", "Маша"]
name = "Миша"
if list1[ 0 ] == name :
| - - print( "Миша первый" )
else :
| - - if list1[ 1 ] == name :
| - - | - - print( "Миша второй" )
| - - else :
| - - | - - if list1[ 2 ] == name :
| - - | - - | - - print( "Миша худший из лучших" )
| - - | - - else :
| - - | - - | - - if list1[ 3 ] == name :
| - - | - - | - - | - - print( "ещё чуть-чуть" )
| - - | - - | - - else :
| - - | - - | - - | - - print( "В следующий раз" )
>> Миша первый
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
10. Цикл for
Цикл for - перебирает элементы данного ему объекта.
Форма записи:
for переменная in объект :
| - - код
Задача 1 :
Есть список с датами дней недели. ( вторник - 12 число )
Была обнаружена ошибка - между записанными датами и настоящими разница в два дня.
Исправьте ошибку, прибавив к каждому элемента списка число 2.
Вы можете использовать индексы.
Пример 1 :
List_1 = [ 11, 12, 13, 14, 15, 16, 17 ]
List_1 [ 0 ] +=2
List_1 [ 1 ] +=2
List_1 [ 2 ] +=2
List_1 [ 3 ] +=2
List_1 [ 4 ] +=2
List_1 [ 5 ] += 2
List_1 [ 6 ] +=2
print( List_1 )
Вывод:
>>> [13, 14, 15, 16, 17, 18, 19 ]
a =4
a += 2 ( прибавить к a число 2 )
Но! Что вы будете делать, если вы не знаете, что в списке 7 дней?
Пример 2 :
List_1 = [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
list_2 = [ ]
for day in List_1 :
| - - day +=2
| - - list_2.append(day)
print( list_2 )
Вывод:
>>>[ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 ]
Разбор :
Цикл for по очереди берёт элементы списка, а затем присваивает переменной day, выполняя код внутри.
Задача 2 :
Есть список с буквами алфавита.
Выведите их по очереди в виде :
> > > " Е " - 6 буква алфавита.
Задача 3 :
Есть 2 списка. В первом все буквы алфавита большие ( А Б В ), а во втором маленькие ( а б в ).
Выведите каждую букву по очереди в виде :
> > > " Е е " - 6 буква алфавита.
В задачах 2 и 3:
- Все буквы в алфавитном порядке.
- Вы решаете сами.
- Моё решение будет в следующей главе.
- На тему этой главы.
Задание 3 на оригинальность.
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
11. range()
Задачи 2 и 3 ( из прошлой главы ) будут ближе к концу главы.
Раз уж рассказал о цикле for, то упомяну и про range( ).
range( ) - диапазон.
Задача 1 :
Выведите все числа <100.
Вы уже можете решить эту задачу способами из 1 и 2 примера.
Пример 1 :
print( 0 )
print( 1 )
print( 2 )
. . .
print( 99 )
Пример 2 :
list_1 = [ 0, 1, 2, . . . , 99]
for namber in list_1 :
| - - print( namber )
range( ) упростит нам задачу.
Пример 3 :
for namber in range( 100 ) :
| - - print( namber )
Вывод :
>>> 0
>>> 1
>>> 2
. . .
>>> 99
range( ) принимает 2 основных числа.
Пример 4 :
for namber in range( 3, 5 ) :
| - - print( namber )
Вывод :
>>> 3
>>> 4
Разбор :
3 - первое число. 5 - второе число.
Представь, что range( ) создаёт диапазон, основываясь на этих числах.
Диапазон начинается с 3 и все числа в нём меньше 5.
Пример 5 :
for namber in range( 5 ) :
| - - print( namber )
Вывод :
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
Разбор :
Если мы передадим только одно число, то range( ) примет его за второе.
5 - второе число.
Представь, что range( ) создаёт диапазон, основываясь на этих числах.
Диапазон состоит из чисел, которые меньше 5.
Задача 2 :
2<= X <13
При каком значении X, неравенство будет верным, а каждый X будет на 4 больше предыдущего.
Пример 7 :
for namber inrange( 2, 13, 4 ) :
| - - print( namber )
Вывод :
> > > 2
> > > 6
> > > 10
Я подчеркнул, что range( ) принимает 2 основных числа, а 3 будет расстоянием.
3 число, может быть, отрицательным и положительным.
Задача 3 :
Создайте список чисел с разницей в 3.
Пример 8 :
List_1 = list( range( 4, 20, 3 ) )
print( List_1 )
Вывод :
> > > [ 4, 7, 10, 13, 16, 19 ]
list( ) меняет тип на list ( создаёт список ) .
Пример 9 :
List_1 =list( range( -4, 20, 3 ) )
print( List_1 )
Вывод :
> > > [ -4, -1, 2, 5, 8, 11, 14, 17 ]
Пример 10 :
List_1 =list( range( -20, -4, 3 ) )
print( List_1 )
Вывод :
> > > [ -20, -17, -14, -11, -8, -5 ]
Пример 11 :
List_1 =list( range( -4, -20, 3 ) )
print( List_1 )
Вывод :
> > > [ ]
Задача 4 :
Создайте список чисел с разницей в -3.
Пример 12 :
List_1 = list( range( -6, -30, -3 ) )
print( List_1 )
Вывод :
> > > [ -6, -9, -12, -15, -18, -21, -24, -27 ]
Пример 13 :
List_1 = list( range( 6, -30, -3 ) )
print( List_1 )
Вывод :
> > > [ 6, 3, 0, -3, -6, -9, -12, -15, -18, -21, -24, -27 ]
Пример 14 :
List_1 = list( range( 30, 6, -3 ) )
print( List_1 )
Вывод :
> > > [ 30, 27, 24, 21, 18, 15, 12, 9 ]
Пример 15 :
List_1 = list( range( -6, 30, -3 ) )
print( List_1 )
Вывод :
> > > [ ]
range( ) и тип str.
Пример 16 :
Ran =range( "а", "ь" )
print( Ran )
Вывод :
> > > Error - ошибка
range( ) и тип float.
Пример 17 :
Float_1 =range( 9.0, 5.4, -1.3 )
print( Float_1 )
Вывод :
> > >Error - ошибка
Пример 18 :
Ran =range( 3, 6 )
print( Ran )
Вывод :
> > >range( 3, 6 )
Разберём задачи № 2 и №3 из прошлой главы :
Задача 2 :
Есть список с буквами алфавита.
Выведите их по очереди в виде :
> > > " Е " - 6 буква алфавита.
Решение 1 :
List_1 = [ " А ", " Б ", " В ", " Г ", . . . , " Я " ]
namber =1
for letter in List_1 :
| - - print( ' " '+ letter +' " - ' + str( namber ) +' буква алфавита. ' )
| - - namber +=1
Вывод :
> > > " А " - 1 буква алфавита.
> > > " Б " - 2 буква алфавита.
> > > " В " - 3 буква алфавита.
> > > " Г " - 4 буква алфавита.
. . .
. . .
> > > " Я " - 33 буква алфавита.
Добавим range( ).
Решение 2:
List_1 = [ " А ", " Б ", " В ", " Г ", . . . , " Я " ]
for namber inrange( 33 ) :
| - - letter = List_1[ namber ]
| - - print( ' " '+ letter +' " - '+str( namber +1 ) + ' буква алфавита. ' )
Вывод :
> > > " А " - 1 буква алфавита.
> > > " Б " - 2 буква алфавита.
> > > " В " - 3 буква алфавита.
> > > " Г " - 4 буква алфавита.
. . .
. . .
> > > " Я " - 33 буква алфавита.
Разбор :
range( 33 ) - создать диапазон от 0 до 32 ( индексы всех элементов списка List_1 ).
Задача 3 ( На оригинальность ) :
Есть 2 списка. В первом все буквы алфавита большие ( А Б В ), а во втором маленькие ( а б в ).
Выведите каждую букву по очереди в виде :
> > > " Е е " - 6 буква алфавита.
Решение 1 :
List_1 = [ " А ", " Б ", " В ", " Г ", . . . , " Я " ]
list_2 = [ " а ", " б ", " в ", " г ", . . . , " я " ]
namber =0
for LETTER in List_1 :
| - - letter = list_2[ namber ]
| - - print( ' " '+ LETTER + letter +' " - '+str( namber +1 ) +' буква алфавита. ' )
| - - namber +=1
Вывод :
> > > " А а " - 1 буква алфавита.
> > > " Б б " - 2 буква алфавита.
> > > " В в " - 3 буква алфавита.
> > > " Г г " - 4 буква алфавита.
. . .
. . .
> > > " Я я " - 33 буква алфавита.
Добавим range( ).
Решение 2 :
List_1 = [ " А ", " Б ", " В ", " Г ", . . . , " Я " ]
list_2 = [ " а ", " б ", " в ", " г ", . . . , " я " ]
for namber inrange( 33 ) :
| - - LETTER = List_1[ namber ]
| - - letter = list_2[ namber ]
| - - print( ' " '+ LETTER + letter +' " - '+str( namber +1 ) + ' буква алфавита. ' )
Вывод :
> > > " А а " - 1 буква алфавита.
> > > " Б б " - 2 буква алфавита.
> > > " В в " - 3 буква алфавита.
> > > " Г г " - 4 буква алфавита.
. . .
. . .
> > > " Я я " - 5 буква алфавита.
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
12. Цикл while
Цикл while - цикл, который выполняет код пока условие остаётся верным ( True ).
while - пока
Форма записи :
whileусловие :
| - - код
Пример 1 :
namber =0
while namber <3 :
| - - print( namber )
| - - namber +=1
Вывод :
> > > 0
> > > 1
> > > 2
Разбор :
1) namber =0.
2) 0<3=> условие =True=> код выполняется => теперь namber =1
3) 1<3=> условие =True=> код выполняется => теперь namber =2
4) 2<3=> условие =True=> код выполняется => теперь namber =3
5) 3 не меньше 3=> условие =False=> код не выполняется => конец цикла
Пример 2 :
namber =10
while namber <3 :
| - - print( namber )
| - - namber +=1
Вывод :
> > >
Разбор :
1) 10 не меньше 3=> код не выполняется => конец цикла
Вечный цикл while :
Пример 3 :
namber = 1
while namber == 1 :
| - - name =input( "Как вас зовут : " )
| - - print( name )
Вывод :
> > > Как вас зовут: Эд
> > > Эд
> > > Как вас зовут: Аня
> > > Аня
> > > Как вас зовут: Максим
. . .
. . .
Разбор :
1) namber =1
2) namber ==1 - сравнение => условие =True=> код выполняется
3) мы не меняли значение переменной namber => условие вечно ровно True=> конец цикла не наступит
Пример 4 :
while True :
| - - name =input( "Как вас зовут : " )
| - - print( name )
Вывод :
> > > Как вас зовут: Эд
> > > Эд
> > > Как вас зовут: Аня
> > > Аня
> > > Как вас зовут: Максим
. . .
. . .
Разбор :
1) True на месте условия => код выполняется => конец цикла не наступит ( True не может превратится в False )
Пример 5 :
bool_1 = True
while bool_1 :
| - - a = input( "Ведите слово : " )
| - - print( a )
| - - if a == "пока" :
| - - | - - print( "Конец" )
| - - | - - bool_1 =False
Вывод :
> > > Ведите слово : два
> > > два
> > > Ведите слово : ёж
> > > ёж
> > > Ведите слово : пока
> > > пока
> > > Конец
Разбор :
Если a ="пока" , то значение bool_1 меняется на False=> цикл закончится
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
13. break - прерывает цикл.
break - прерывает цикл.
Вспомните пример 5 из прошлой главы:
bool_1 =True
while bool_1 :
| - - a = input( "Ведите слово : " )
| - - print( a )
| - - if a == "пока" :
| - - | - - print( "Конец" )
| - - | - - bool_1 = False
Добавим break.
Пример 1 :
while True:
| - - a = input( "Ведите слово : " )
| - - print( a )
| - - if a == "пока" :
| - - | - - print( "Конец" )
| - - | - - break
Вывод :
> > > Ведите слово : h
> > > h
> > > Ведите слово : jj
> > > jj
> > > Ведите слово : пока
> > > пока
> > > Конец
Задача 1 :
Пользователь введёт строку и знак, на котором нужно её обрезать.
Пример 2 :
string = input( "Введите строку : " )
sign = input( "Введите знак : " )
itog = ""
for letter in string :
| - - if letter == sign :
| - - | - - break
| - - else :
| - - | - - itog += letter
print( itog )
Вывод :
> > > Введите строку : Python - язык программирования
> > > Введите знак : -
> > > Python
Мы упростим этот код, но в будущем.
else можно не добавлять.
Пример 3 :
string = input( "Введите строку : " )
sign = input( "Введите знак : " )
itog = ""
for letter in string :
| - - if letter == sign :
| - - | - - break
| - - itog += letter
print( itog )
Вывод :
> > > Введите строку : Python - язык программирования
> > > Введите знак : -
> > > Python
Разбор :
1) Если letter = sign, то код дойдёт до break.
2) break заканчивает цикл => конец цикла => код после break, внутри цикла, пропускается
Нужно рассмотреть пример по нагляднее.
Пример 4 :
while True :
| - - print( 1 )
| - - print( 2 )
| - - break
| - - print( 3 )
| - - print( 4 )
| - - print( 5 )
Вывод :
> > > 1
> > > 2
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
14. continue
continue - начинает следующий проход цикла, минуя оставшееся тело цикла.
Задача 1 :
Пользователь введёт строку и знак, который нужно убрать из строки.
Пример 1 :
string = input( "Введите строку : " )
sign = input( "Введите знак : " )
itog = ""
for letter in string :
| - - if letter == sign :
| - - | - - continue
| - - itog += letter
print( itog )
Вывод :
> > > Введите строку : Hello world
> > > Введите знак : l
> > > Heo word
Нужно рассмотреть пример по нагляднее.
Пример 2 :
namber = 0
while namber < 2 :
| - - namber += 1
| - - print( 1 )
| - - print( 2 )
| - - continue
| - - print( 3 )
| - - print( 4 )
| - - print( 5 )
Вывод :
> > > 1
> > > 2
> > > 1
> > > 2
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
15. Циклы + else
В 10 главе мы разбиралиif / else . В 11 главе познакомились с циклом for. В 13 главе познакомились с циклом while.
Сегодня мы разберём for / else и while / else .
Если условие цикла окажется неверным, то else выполнит код, который мы записали в него.
Пример 1 :
List_1 = [ 55, "34gf", { } ]
for element in List_1 :
| - - print( element )
else :
| - - print( "Конец списка" )
Вывод :
> > > 55
> > > 34gf
> > > { }
> > > Конец списка
Пример 2 :
namber =0
while namber <3 :
| - - print( "namber < 3" )
| - - namber += 1
else :
| - - print( "not namber < 3" )
Вывод :
> > > namber < 3
> > > namber < 3
> > > namber < 3
> > > not namber < 3
Ты скажешь : " Святой питон, зачем оно надо?! Уберёте else и ничего не сумеете поменять! ", и будешь прав, но только на половину. Не всегда в след за циклом можно тупо написать print( ).
Пример 3 :
List_1 = [ 55, "34gf", { } ]
for element in List_1 :
| - - print( element )
print( "Конец списка" )
Вывод :
> > > 55
> > > 34gf
> > > { }
> > > Конец списка
Пример 4 :
namber =0
while namber <3 :
| - - print( "namber < 3" )
| - - namber +=1
else :
| - - print( "not namber < 3" )
Вывод :
> > > namber < 3
> > > namber < 3
> > > namber < 3
> > > not namber < 3
Ты прав только на половину. У этого есть смысл.
Задача 1. Вывести элементы списков по отдельности. Если в первом списке встретится число 0, то обрезать его без ноля и вывести оба списка как один.
Пример 5 :
List_1 = [ 89, 'uio', 0, 9088, "p" ]
List_2 = [ 'hi', 34, "7" ]
for element in List_1 :
| - - if element ==0 :
| - - | - - break
| - - print( element )
else :
| - - print( "Конец списка" )
for element in List_2 :
| - - print( element )
print( "Конец списка" )
Вывод :
> > > 89
> > >> uio
> > > hi
> > > 34
> > > 7
> > > Конец списка
break пропускает и else.
С else вывод смотрится так, словно это 1 список ( Задача решена ). Если else убрать, то вывод будет другой.
Пример 6 :
List_1 = [ 89, 'uio', 0, 9088, "p" ]
List_2 = [ 'hi', 34, "7" ]
for element in List_1 :
| - - if element ==0 :
| - - | - - break
| - - print( element )
print( "Конец списка" )
for element in List_2 :
| - - print( element )
print( "Конец списка" )
Вывод :
> > > 89
> > >> uio
> > > Конец списка
> > > hi
> > > 34
> > > 7
> > > Конец списка
Без else вывод смотрится так, словно это 2 списка, а нам нужен один.
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
16. Словари
Словарь ( тип dict ) - это структура данных, которая позволяет хранить в себе пары "ключ : значение".
Форма записи :
Переменная= {
ключ : значение ,
ключ : значение ,
. . .
ключ : значение }
или
Переменная= { ключ : значение , . . . , ключ : значение }
Правила ключей :
- ключам нельзя повторяться.
- в качестве ключей можно использовать : тип int , тип float , тип str , тип bool , тип tuple , тип type , функции...
- В качестве ключей нельзя использовать : тип list , тип dict...
Все выводы в том же порядке, что и print, который его выводит.
Пример 1 :
print( { 89 : ' hi ' } )
print( { str : ' hi ' } )
print( { print : ' hi ' } )
print( { int( ) : ' hi ' } )
print( { " yu " : " p " } )
Вывод :
> > > { 89 : ' hi ' }
> > > { < class 'str' > : ' hi ' }
> > > { <built-in function print> : ' hi ' }
> > > { 0 : ' hi ' }
> > > {' yu ': ' p '}
Правила значений :
- значением ключа может быть всё, что угодно.
Пример 2 :
print( { " p " : [ 8 ] } )
print( { " p " : input } )
print( { " p " : str } )
print( { " p " : 89.0 } )
print( { " p " : False } )
print( { " p " : { 89 : 89 } } )
Вывод :
> > > { ' p ' : [ 8 ] }
> > > { ' p ' : < built-in function input > }
> > > { ' p ' : < class 'str' > }
> > > { ' p ' : 89.0 }
> > > { ' p ' : False }
> > > { ' p ' : { 89 : 89 } }
Как обратиться к значению ключа?
Словарь [ ключ ]
Пример 3 :
Dict_1 = { " A " : 1, " В " : 2, " С " : 3, " Я " : 4 }
print( Dict_1[ " А " ] )
print( Dict_1[ " В " ] )
print( Dict_1[ " С " ] )
print( Dict_1[ " Я " ] )
Вывод :
> > > 1
> > > 2
> > > 3
> > > 4
Как добавлять что-то в словарь?
Словарь [ ключ ] =значение
Пример 4 :
Dict_1 = { 'q' : 'q q' }
Dict_1[ 'w' ] ='w w'
print( Dict_1 )
Вывод :
> > > { 'q' : 'q q', 'w' : 'w w'}
Задания на практику.
Задача 1 :
Помните задачу 3 из главы for?
Если нет, то напоминаю : Есть 2 списка. В первом все буквы алфавита большие ( А Б В ), а во втором маленькие ( а б в ). Выведите каждую букву по очереди в виде : " Е е " - 6 буква алфавита.
Сделайте это снова, но добавьте словарь.
Усложнённая версия : Используйте только словарь и только один.
Подсказка : Используйте for.
Задача 2 :
Создать программу регистрации и входа в аккаунт.
Задача 3 ( долго думать ) :
Есть словари, хранящие по три первых буквы алфавита( "В" - ключ, а "в" - значение ). В каждом словаре свой алфавит. Все словари хранятся в другом словаре.
Вывести их в таком виде :
> > > Русский язык
> > > A a - 1 буква
> > > Б б - 2 буква
К стати, тесты будут появляться через каждые 20 глав. Я могу затрагивать детали которые не упоминал. Поэтому издевайтесь над кодом, меняя его, карапузики.
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
17. Кортежи
Кортежи ( тип tuple ) - ещё один вид последовательностей в Python, которые похожи на список.
Формы записи :
переменная= ( элемент, элемент, . . . , элемент )
или
переменная=элемент, элемент, . . . , элемент
Чтобы вам было понятней, я буду использовать 1 способ.
В отличие от списков, кортежи не изменяются. Как только вы создали кортеж, значение какого‑либо его элемента уже нельзя изменить( примеры 1 и 2 ), как нельзя добавлять и удалять элементы, ...
Пример 1 :
List_1 = [ 89, 'y', "89c" ]
List_1[ 0 ] +=11
print( List_1 )
Вывод :
> > > [ 100, 'y', '89c' ]
Пример 2 :
Tuple_1 = ( 89, 'x', "5kg" )
Tuple_1[ 0 ] += -78
print( Tuple_1 )
Вывод :
Error - ошибка
, ... но можно удалить его целиком и полностью.
Пример 3 :
Tuple_1 = ( 89, 'x', "5kg" )
del Tuple_1
print( Tuple_1 )
Вывод :
> > > NameError: name 'Tuple_1' is not defined
Теперь переменной Tuple_1 не существует.
del встретится нам в будущих темах.
Разберёмся со способами создания кортежей.
Пример 4 :
sposob_1 = ( 1, )
sposob_2 =2,
print( sposob_1 )
print( type( sposob_1 ) )
print( sposob_2 )
print( type( sposob_2 ) )
Вывод :
> > > ( 1, )
> > > < class 'tuple' >
> > > ( 2, )
> > > < class 'tuple' >
Да, со скобками или без скобок, неважно, всегда ставится запятая, абсолютно всегда. Если не сделаете так, то случится следующее :
Пример 5 :
sposob_1 = ( 1 )
sposob_2 =2
print( sposob_1 )
print( type( sposob_1 ) )
print( sposob_2 )
print( type( sposob_2 ) )
Вывод :
> > > 1
> > > < class 'int' >
> > > 2
> > > < class 'int' >
Списки можно изменять, но и у кортежей есть свои преимущества :
- кортежи работают быстрее списков.
Менять элементы в кортеже нельзя, но можно их достать:
Пример 6 :
tuple_1 =34, 'ok', 90, 43
print( tuple_1[ 2 ] )
Вывод :
> > > 90
Если в кортеже есть список, то его можно изменить.
Пример 7 :
tuple_1 = 34, 'ok', [ 90, 43 ]
tuple_1[ 2 ][ 1 ] +=9
print( tuple_1 )
Вывод :
> > > 34, 'ok', [ 90, 52 ]
Разбор :
Во второй строке я использовал квадратные скобки. Первыми я обратился к элементу кортежа, а вторыми я обратился к элементу списка.
Объединим два кортежа, создав новый :
Пример 8 :
Tuple_1 = ( 90, 4 )
Tuple_2 =7, 'w'
print( Tuple_1 + Tuple_2 + ( 8, ) )
Вывод :
> > > ( 90, 4, 7, 'w', 8 )
В главе про переменные я показал подобный код:
Пример 9 :
a, b, c =8, 'g', 0
print( a )
print( b )
print( c )
Вывод :
> > > 8
> > > g
> > > 0
Теперь вы знаете, что справа от знака присваивания кортеж, но так можно делать не только с ними.
Задание на практику : повторите код из примера 9, заменив кортеж на список, а затем на словарь.
Разберёмся с задачами из прошлой главы.
Задача 1 :
Помните задачу 3 из главы for?
Если нет, то напоминаю : Есть 2 списка. В первом все буквы алфавита большие ( А Б В ), а во втором маленькие ( а б в ). Выведите каждую букву по очереди в виде : " Е е " - 6 буква алфавита.
Сделайте это снова, но добавьте словарь.
Усложнённая версия : Используйте только словарь и только один.
Подсказка : Используйте for.
Решение 1 :
Dict_1 = { "А" : "а", "Б" : "б", "В" : "в", . . . , "Я" : "я" }
namber = 1
for LEETTER in Dict_1 :
| - - print( ' " ', LEETTER, Dict_1[ LETTER ], ' " -', namber, 'буква алфавита. ' )
| - - namber +=1
Вывод :
> > > " А а " - 1 буква алфавита.
> > > " Б б " - 2 буква алфавита.
> > > " В в " - 3 буква алфавита.
. . .
> > > "Я я " - 32 буква алфавита.
Решение 2 :
Dict_1 = { 0 : "А", 1 : "Б", 2 : "В", . . . , 32 : "Я" }
List_1 = [ "а", "б", "в", . . . , "я" ]
for namber in Dict_1 :
| - - print( ' " ', Dict_1[ namber ], List_1[ namber ], ' " -', namber +=1, 'буква алфавита. ' )
Вывод :
> > > " А а " - 1 буква алфавита.
> > > " Б б " - 2 буква алфавита.
> > > " В в " - 3 буква алфавита.
. . .
> > > "Я я " - 32 буква алфавита.
Решение 3 :
Dict_1 = { 1 : "А", 2 : "Б", 3 : "В", . . . , 33 : "Я" }
Dict_2 = { 1 : "а", 2 : "б", 3 : "в", . . . , 33 : "я" }
for namber in Dict_1 :
| - - print( ' " ', Dict_1[ namber ], Dict_2[ namber ], ' " -', namber +=1, 'буква алфавита. ' )
Вывод :
> > > " А а " - 1 буква алфавита.
> > > " Б б " - 2 буква алфавита.
> > > " В в " - 3 буква алфавита.
. . .
> > > " Я я " - 32 буква алфавита.
Разбор :
Цикл for присваивает переменной ключи.
Задача 2 :
Создать программу регистрации и входа в аккаунт.
Эта задача была не столько на практику, сколько на оригинальность. Из-за этого я не буду сильно заострять на нём внимание. У многих получится примерно такой код :
Ререние 1 :
Dict_user = { }
print( "Вход" )
name = input( "Ник : " )
cod = input( "Пароль : " )
if name in Dict_user :
| - - if Dict_user[ name ] == cod :
| - - | - - print( "Добро пожаловать" )
| - - else :
| - - | - - print( "Пороль не подходит" )
else :
| - - print( "Пользователь ещё не зарегестрировался" )
| - - print( "Регистрация" )
| - - print( "Ник : ", name )
| - - cod_registracia =input( "Придумайте пароль : " )
| - - Dict_user[ name ] = cod_registracia
| - - print( "Welcome" )
Вывод :
> > > Вход
> > > Ник : Эд
> > > Пароль : Питон
> > > Пользователь ещё не зарегестрировался
> > > Регистрация
> > > Ник : Эд
> > > Придумайте пароль : Питон
> > > Welcome
Задание 3 :
Есть словари, хранящие по три первых буквы алфавита( "В" - ключ, а "в" - значение ). В каждом словаре свой алфавит. Все словари хранятся в другом словаре.
Вывести их в таком виде :
> > > Русский язык
> > > A a - 1 буква
> > > Б б - 2 буква
Решение 1 :
Dict = { "Русский язык" : { "А" : "а", "Б" : "б", "В" : "в" } ,
"Английский язак" : {"А" : "а", "В" : "b", "C" : "c" }
}
for language in Dict :
| - - namber = 1
| - - print( language )
| - - for leetter in Dict[ language ] :
| - - | - - print( ' " ', leetter, Dict[ language ][ leetter ], ' " -', namber, 'буква алфавита. ' )
| - - | - - namber += 1
Вывод :
> > > Русский язык
> > > " А а " - 1 буква алфавита.
> > > " Б б " - 2 буква алфавита.
> > > " В в " - 3 буква алфавита.
> > > Английский язык
> > > " А а " - 1 буква алфавита.
> > > " В b " - 2 буква алфавита.
> > > " C c " - 3 буква алфавита.
Телеграмм канал по программированию с уроками для начинающих, тестами и мемасами - https://t.me/+lnPXM7hfC3FkNGVi
18.Функции
Функции помогают программистом не печатать одинаковый код много раз.
Создание функции :
def название( аргумент, аргумент, . . . , аргумент ) :
| - - код
Призыв функции :
название( аргумент )
Задача 1 :
У 1 куба рёбра по 5 метров. У 2 куба рёбра по 20 метров. У 3 куба рёбра по 0.5 метра. Найдите периметр каждого куба
Решение 1 :
P1 =12* 5
print( "Периметр 1 куба -", P1, "метров." )
P2 =12*20
print( "Периметр 2 куба -", P2, "метров." )
P3 =int( 12*0.5 )
print( "Периметр 3 куба -", P3, "метров." )
Вывод :
> > > Периметр 1 куба - 60 метров.
> > > Периметр 2 куба - 240 метров.
> > > Периметр 3 куба - 6 метров.
Создадим функцию, которая выводит периметр куба, упростив нам задачу.
Пример 2 :
def perimetr( side, cube ) :
| - - P = side *12
| - - print( "Периметр", cube, "куба -", P, "метров." )
perimetr( 5, 1 )
perimetr( 20, 2 )
perimetr( 0.5, 3 )
Вывод :
> > > Периметр 1 куба - 60 метров.
> > > Периметр 2 куба - 240 метров.
> > > Периметр 3 куба - 6.0 метров.
Разбор :
Мы передаём функции 2 значения, а она присваивает их переменным side и cube.
side присваивали значения 5, 20 и 0.5, а cube присваивали значения 1, 2 и 3.
Конечно, это не полноценные переменные. Если вы передадите список, то новый список, привязанный к переменной side или cube, не будет создаваться. Действия в функции будут происходить именно с тем списком, что мы ей передали, а переменные по типу side или cube только показывают функции: какой аргумент из переданных сейчас используется.
Пример 3 :
def dog( List ) :
| - -List[ 0 ] ="dog"
List_cat = [ 'cat', 'book', "if" ]
dog( List_cat )
print( List_cat )
Вывод :
> > > [ 'dog', 'book', 'if' ]
Функции могут вызывать другие функции.
Пример 4 :
def cat( List_1 ) :
| - - List_1[ 0 ] ="cat"
def dog( List_2 ) :
| - - List_2[ 1 ] ="dog"
| - - cat( List_2 )
List = [ 1, 2, 8 ]
dog( List )
print( List )
Вывод :
> > > [ 'cat', 'dog', 8 ]
Вложенные функции.
Пример 5 :
def cat( name ) :
| - - print( "cat" )
| - - def dog( cod ) :
| - - | - - print( "dog" )
| - - | - -print( cod )
| - -dog( name )
cat( 'Python' )
Вывод :
> > > cat
> > > dog
> > > Python
Разбор :
1) Мы вызываем функцию cat( ) .
2) Функция cat( ) выводит строку "cat" .
3) Функция cat( ) вызывает функцию, которую мы в неё вложили - dog( ) .
4) Функция dog( ) выводит строку "dog", а затем "Python".
5) Код завершается.
Сегодня без задач.
телеграмм канал - https://t.me/+lnPXM7hfC3FkNGVi
Там я иногда делюсь полезными ссылками. Сейчас мы разбираем там проект Эйлера.
19. return
Продолжаем знакомиться с Функциями.
return - оператор возврата.
Форма записи :
return элемент
Вспомним первую задачу из 18 главы :
У 1 куба рёбра по 5 метров. У 2 куба рёбра по 20 метров. У 3 куба рёбра по 0.5 метра. Найдите периметр каждого куба.
Пример 1 :
def perimetr( side, cube ) :
| - - P = side *12
| - - print( "Периметр", cube, "куба -", P, "метров." )
perimetr( 5, 1 )
perimetr( 20, 2 )
perimetr( 0.5, 3 )
Вывод :
> > > Периметр 1 куба - 60 метров.
> > > Периметр 2 куба - 240 метров.
> > > Периметр 3 куба - 6.0 метров.
Созданная нами функция сама вызывает print( ).
Задача 2 :
Найдите периметры и площади всех кубов из 1 задачи, записав их в словарь перед выводов.
Пример 2 :
def perimetr( side ) :
| - - P = side * 12
| - - return P
def area( side ) :
| - - S = side **3
| - - return S
Dict_1 = {1: [perimetr(5), area(5)], 2: [perimetr(20), area(20)], 3: [perimetr(0.5), area(0.5)]}
print( Dict_1 )
for cube in Dict_1 :
| - - print("Куб", cube, ": P =", Dict_1[cube][0], ", S =", Dict_1[cube][1])
Вывод :
> > > {1: [60, 125], 2: [240, 8000], 3: [6.0, 0.125]}
> > > Куб 1 : P = 60 , S = 125
> > > Куб 2 : P = 240 , S = 8000
> > > Куб 3 : P = 6.0 , S = 0.125
Пример 3 :
def summa( a, b ) :
| - - return a + b
print( summa( 5, 6 ) )
Вывод :
>>> 11
return похожа на break
Пример 4 :
def a( ) :
| - - print( 1 )
| - - print( 2 )
| - - return"Конец"
| - - print( 6 )
print( a( ) )
Вывод :
> > > 1
> > > 2
> > > "Конец"
Либо...
Пример 5 :
def a( ) :
| - - print( 1 )
| - - print( 2 )
| - - return
| - - print( 6 )
a( )
Вывод :
> > > 1
> > > 2
Задание на подумать : Создайте какую-нибудь функцию. Попробуйте её "зациклить".
телеграмм канал - https://t.me/+lnPXM7hfC3FkNGVi
20. Функция sum( )
sum( ) - сумма всех элементов в множестве.
sum( множество )
Пример 1 :
List_1 = [ 10, 0.1, True ]
print( sum( List_1 ) )
Вывод :
> > > 11.1
sum( ) не объединяет строки и сами множества.
Пример 2 :
List_1 = [ 10, "hi", 0 ]
print( sum( List_1 ) )
Вывод :
> > >TypeError : unsupported operand type ( s ) for + : 'int' and 'str'
Пример 3 :
List_1 = [ 10, 5, [ 0.1, 0 ] ]
print( sum( List_1 ) )
Вывод :
> > >TypeError : unsupported operand type( s ) for + : 'int' and 'list'
Пример 4 :
Dict = { 1 : 7, 2 : 1, 1.1 : 6, 4 : 1 }
print( sum( Dict ) )
Tuple = ( 7, 1, 6, 1 )
print( sum( Tuple ) )
List = [ ]
print( sum( List ) )
Вывод :
> > > 8.1
> > > 15
> > > 0
Задача 1 : В коробке 10 монет. Каждый день добавляли какое-то количество монет. В списке сказано по сколько добавляли каждый раз. Сколько монет стало в коробке через неделю.
Можно использовать цыкал for.
Пример 5 :
List_coins = [ 3, 7, 5, 1, 6, 2, 4 ]
summa =10
for coins in List_coins :
| - - summa += coins
print( summa )
Вывод :
> > > Ответ : 28 монет будет в коробке через неделю.
Но для функции sum( ) можно указать начальное число. Как с переменной summa в 4 примере.
sum( множество, число )
Пример 6 :
List_coins = [ 3, 7, 5, 1, 6, 2, 4 ]
summa =sum( List_coins, 10 )
print( "Ответ :", summa, "монет будет в коробке через неделю." )
Вывод :
> > > Ответ : 28 монет будет в коробке через неделю.
Пример 7 :
List_1 = [ ]
print( sum( List_1, 15 ) )
Вывод :
> > > 15
Задание из 19 главы : Создайте какую-нибудь функцию. Попробуйте её "зациклить".
Решение 1 :
defdog( a, b ) :
| - - print( a + b )
| - - dog( a, b )
dog( 5, 7 )
Вывод :
> > > 12
> > > 12
> > > 12
. . .
Разбор : функция вызывает саму себя.
Решение 2 :
def dog( a, b ) :
| - - whileTrue :
| - - | - - print( a + b )
dog( 5, 7 )
Вывод :
> > > 12
> > > 12
> > > 12
. . .
Разбор : внутри функции бесконечный цыкл.
Решение 3 :
defdog( a, b ) :
| - - print( a + b )
whileTrue :
| - - dog( 5, 7 )
Вывод :
> > > 12
> > > 12
> > > 12
. . .
Разбор : бесконечный цыкл вечно призывает.
Задания на практику :
Задача 2 : сложите все цифры в числе. ( без sum( ) )
Задача 3 : сложите все цифры в числе. ( c sum( ) )
телеграмм канал - https://t.me/+lnPXM7hfC3FkNGVi
Тест № 1. 36 Вопросов
Тест на темы с 1 по 20 главы.
Этот тест составлен для того, чтобы вы могли оценить свои знания.
Вопрос № 1. Выберите правильный способ создания переменной в Python.
1) int a =78 ;
2) a =78
3) a ==78 ;
4) 78 a; int
Вопрос № 2. Напишите короткие названия типов.
1) Integer.
2) Boolean.
3) String.
Вопрос № 3. Определите типы исходя из данных определений (на обоих языках).
1) Целые числа.
2) Числа с плавающей запятой.
3) Строки.
4) Упорядоченные и изменяемые множества с объектами, разделённых запятыми, любых типов.
5) Имеет только два значения.
6) Упорядоченные и изменяемые множества, которые позволяют хранить в себе пары "ключ : значение", разделённых запятыми.
7) Упорядоченные и неизменяемые множества элементов, разделённых запятыми.
Вопрос № 4. Определите типы по коду.
1) a =5
2) a ="uu"
3) a = [ 4, '_' ]
4) a = { m : ' ', n : 6 }
5) a ='00'
6) a =True, False
7) a = ( 1, 3 )
8) a =True
9) a =0.0
Вопрос № 5. Какой вывод вызовет ошибку?
1) print( '5'+"0" )
2) print( '5', "0" )
3) print( 5+0 )
4) print( 5, 0 )
5) print( '5' +0 )
6) print( 5, "0" )
Вопрос № 6. Что делает каждый из операторов?
1) + , -
2) * , **
3) = , != , ==
4) / , // , %
5) > , <
6) >= , <=
Вопрос № 7. Перед вами список приоритета выполнения математических операций. Расставите цифры в правильном порядке.
1) Возведение в степень **
2) * / // %
3) Скобки
4) + -
Вопрос № 8. Какие типы можно хранить в списках, а какие нельзя?
Вопрос № 9. Что такое индекс?
Вопрос № 10. Какой будет вывод?
List_1 = [ 7, 'o', 0 + 0, bool( [ ] ) ]
print( List_1[ 2 ] )
print( List_1[ 3 ] )
Вопрос № 11. Что делает каждая из функций?
1) print( ) , input( )
2) str( ) , int( ) , bool( ) , float( )
3) list( ) , dict( ) , tuple( )
4) sum( )
5) type( ) , isinstance( )
6) len( )
7) range( )
8) sum( )
Вопрос № 12. Покажите призыв каждой функции из вопроса № 11. Пример : range( начало, конец, шаг ).
Вопрос № 13. Что делают эти команды?
1) break
2) continue
3) return
Вопрос № 14. С какими типами может работать функцияlen( ), а с какими нет?
Вопрос № 15. Какой тип возвращает функция input( )?
Вопрос № 16. Какой будет вывод?
print( type( "hi !" ) )
1) < class "str" >
2) class "str"
3) str
4) True
5) < class 'str' >
Вопрос № 17. Какой будет вывод?
print( type( type ) )
Вопрос № 18. Какой будет вывод?
print( list( "Hello" ) )
Вопрос № 19. Какой будет вывод?
print( "Hi" )
1) "Hi"
2) 'hi'
3) Hi
4) hi
Вопрос № 20. С какими типами может работать функция int( ), а с какими нет?
Вопрос № 21. С какими типами может работать функция str( ), а с какими нет?
Вопрос № 22. С какими типами может работать функция float( ), а с какими нет?
Вопрос № 23. При каких условиях функция bool( ) возвращает True, а при каких False?
Вопрос № 24. Какой будет вывод?
print( isinstance( True, int ) )
print(isinstance( False, int ) )
print(isinstance( True, bool ) )
print(isinstance( False, bool ) )
Вопрос № 25. Какой будет вывод?
print(isinstance( bool, bool ) )
print(isinstance( bool, type ) )
Вопрос № 26. Какой будет вывод?
print( 5*3 )
print( ":"*3 )
print( True*False*3 )
print( [ 1, 2 ] *3 )
print( ( 1, 2 ) *3 )
print( { 1 : "one", 2 : "two", 3 : "three" } *3 )
Вопрос №27. Какой будет вывод?
a =10
if a >5 :
| - - print( a )
| - - a +=1
elif a >6 :
| - - print( a )
| - - a +=1
else :
| - - print( a )
Вопрос № 28. Какой будет вывод?
print( range( 9, 1, -3 ) )
print( list( range( 9, 1, -3 ) ) )
print( list( range( 10, 5, 2 ) ) )
print( list( range( 3, 4 ) ) )
Вопрос № 29. Какой будет вывод?
a = [ ]
for i in a :
| - - print( a )
| - - a +=1
while bool( a ) == True :
| - - print( "0_0" )
Вопрос№ 30. Какой будет вывод?
for i in [ 1, 2, 3, 5 ] :
| - - print( i )
| - - break
| - - print( i )
else :
| - - print( 0 )
Вопрос№ 31. Какой будет вывод?
for i in [ 1, 2, 3, 5 ] :
| - - print( i )
| - - comtinue
| - - print( i )
else :
| - - print( 0 )
Вопрос № 32. Назовите правила ключей и значений в словарях.
Вопрос№ 33. Какой будет вывод?
dict_1 = { 1 : 2, 3 : 4, 5 : 6 }
for i in dict_1 :
| - - print( i )
| - - print( i )
Вопрос № 34. Какой будет вывод?
qwe = ( 67, 90, 7 )
qwe [ 1 ] += -30
print( qwe )
Вопрос № 35. Какой будет вывод?
qwe = ( 67, [ 90 ], 7 )
qwe [ 1 ][ 0 ] += -30
print( qwe )
Вопрос № 36.1 Какой будет вывод? ( Этот вопрос я сделал по приколу )
def perimetr( side ) :
| - - P = side * 12
| - - return P
def area( side ) :
| - - S = side **3
| - - return S
Dict_1 = {1: [perimetr(5), area(5)], 2: [perimetr(20), area(20)], 3: [perimetr(0.5), area(0.5)]}
print( Dict_1 )
for cube in Dict_1 :
| - - print("Куб", cube, ": P =", Dict_1[cube][0], ", S =", Dict_1[cube][1])
Вопрос № 36.2 Какой будет вывод?
List_1 = [ "k"+" k' " ]
print( sum( List_1 ) )
21. Операторы присваивания
Вы уже знакомы с оператором присвоения = :
Пример 1 :
print( "Я Маша." )
name = "Эдже"
print( "Я", name )
Вывод :
> > > Я Маша
> > > Я Эдже
Мы присвоили переменной name значение "Эдже". Я не ошибся, написав "Эдже" ( Это такое имя, а не мой ник "Эджи" ).
Есть и другие операторы присваивания, которые немного упрощают работу.
Пример 2 :
namber = 10
namber = namber + 2
print( namber )
nam = 5
nam += 3
print( nam )
Вывод :
> > > 12
> > > 8
Оператор += присваивает переменной nam значение, которое на 3 больше предыдущего.
Пример 3 :
namber = 5
namber -= 2
print( namber )
Вывод :
> > > 3
Пример 4 :
namber = 5
namber /= 2
print( namber )
nam = 7
nam //= 2
print( nam )
Вывод :
> > > 2.5
> > > 3
Пример 5 :
namber = 5
namber *= 2
print( namber )
nam = 7
nam **= 2
print( nam )
Вывод :
> > > 10
> > > 49
Пример 6 :
namber = 70
namber %= 20
print( namber )
Вывод :
> > > 10
22.Логические оперпторы
1) and ( и ) : если оба утверждения верны, то выдает True.
Пример № 1 :
print( 2 > 1 and 9 < 1 )
print( 2 > 1 and 9 > 1 )
Вывод :
> > > False
> > > True
2) or ( или ) : если оба утверждения неверны, то выдает False.
Пример № 2 :
print( True or True )
print( True or False )
print( False or True )
print( False or False )
Вывод :
> > > True
> > > True
> > > True
> > > False
3) not ( не ) : меняет True на False и False на True.
Пример № 3 :
print( not 0 , not 1 )
print( not 5 > 2 )
Вывод :
> > > True False
> > > False
4) in ( в ) : проверяет, если ли значение в последовательности.
Пример № 4 :
LIST = [ "o", 89, "not" ]
print( "not" in LIST )
print( 228 in LIST )
Вывод :
> > > True
> > > False
5) not in ( нет в ) : проверяет, если нет ли значения в последовательности.
Пример № 5 :
LIST = [ "o", 89, "or" ]
print( "or" not in LIST )
print( 228 not in LIST )
Вывод :
> > > False
> > > True
6) is ( это ) : примерно как оператор ==.
Пример № 6 :
print( 3 is 78 )
print( "23" is '23' )
Вывод :
> > > False
> > > True
7) is not ( это не ) : примерно как оператор !=.
Пример № 7 :
print( "23" is not '23' )
print( 3 is not '78' )
print( "23" is not 23 )
Вывод :
> > > False
> > > True
> > > True
23.Срезы
В Python, кроме индексов, существуют ещё и срезы.
Запись:
множество[ начало : конец ]
множество[ начало : конец : шаг ]
Пример 1:
List_1 = [ "q", "w", "e", "r", "t", "y", "u", "i" ]
print( List_1[ 3 : 6 ] )
Вывод:
> > > [ 'r', 't', 'y' ]
Разбор:
1) [ 3 : 6 ] - от 3 до 5
2) List_1[ 3 ], List_1[ 4 ], List_1[ 5 ] - 'r', 't', 'y'
Если не указать начало\конец, то им будет начало\конец списка.
Пример 2:
List_1 = [ "q", "w", "e", "r", "t", "y", "u", "i" ]
print( List_1[ : ] )
print( List_1[ 3 : ] )
print( List_1[ : 6 ] )
Вывод:
> > > [ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i' ]
> > > [ 'r', 't', 'y', 'u', 'i' ]
> > > [ 'q', 'w', 'e', 'r', 't', 'y' ]
Шаг - это разница между элементами.
Пример 3:
List_1 = [ "q", "w", "e", "r", "t", "y", "u", "i" ]
print( List_1[ 2 : : 2 ] )
print( List_1[ : : 3 ] )
print( List_1[ : : ] )
print( List_1[ : : 1 ] )
Вывод:
> > > [ 't', 'u' ]
> > > [ 'q', 'r', 'u' ]
> > > [ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i' ]
> > > [ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i' ]
Можно их использовать для замены целой части множества.
Пример 4:
List_1 = [ "q", "w", "e", "r", "t", "y", "u", "i" ]
print( List_1 )
List_1[ 2 : 5 ] = [ "(*=*)", "dog" ]
print( List_1 )
List_1[ 6 : ] = "Y_Y"
print( List_1 )
Вывод:
> > > [ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i' ]
> > > [ 'q', 'w', '(*=*)', 'dog', 'y', 'u', 'i' ]
> > > [ 'q', 'w', '(*=*)', 'dog', 'y', 'u', 'Y', '_', 'Y' ]
Пример 5:
S = "Hello, Python"
print( S[ 7 : ] )
Вывод:
> > > Python
Задание на практику:
1) Превратить строку "Hello, Python" в "Hello, world"(использовать срезы для замещения в str не выйдет).
24.max( )
Мы отклонимся от плана и пройдем пару функций, которые планировылись для других глав.
Однажды, я смотрел всеми любимый ютубчик, где наткнулся на отрывок из одной дорамы. Гг мужского пола является одним из лучших программистов в учебном заведении. Он отказывается сдавать домашнее задание, поэтому гг женского пола обвиняет его в полном неумении программировать. Один из лучших программистов не умеет программировать?...(-_- )
Допустим, на такое можно забить, если бы не продолжение.
Парень спрашивает: "Хорошо, что нам задавали?"
Мадам отвечает: "Найти большее из 3-х чисел."
Ок... ладно, конечно, в фильмах печатают, не касаясь клавиш, но такого я еще не видывал.
Кх-кхм. Готовы приблизиться к его мастерству?
Когда продолжим работу с функциями, буду бомбить про global.
Функция max( ) возвращает наибольшее из данных ее значение.
Способ записи:
max( множество\куча элементов )
max( множество\куча элементов , key = критерий(функция) )
Пример №1 :
List_nambers = 0, 5, 7, 30, 67
print( max( List_nambers ) )
print( max( 7, 60, 37 ) )
Вывод :
> > > 67
> > > 60
Если числа не даны, то добавляем input( ).
Пример №2 :
List_str = "cat", "for", "coffee", "eeffoc"
print( max( List_str, key = len ) )
print( max( [ 5, 6 ], [ 9, 0 ], [ 6, 5 ], key = sum ) )
Вывод :
> > > coffee
> > > [ 5, 6 ]
( если результаты будут схожи, то вернется первое из них )
Пример №3 :
l = [ 4, 8, 2 ]
e = [ 7, 9, 1 ]
n = [ -4, 0, 1 ]
otvet = max( l, e, n, key = max )
print( otvet )
Вывод :
> > > [ 7, 9, 1 ]
( список с самым большим числом )
Задания на практику:
1) Найти максимальное из 3 чисел, которые будет вводить пользователь, без max( ).
2) Написать код из примера №3 без max( ).
3) Изменить код из примера №3 так, чтобы он искал минимальное.
Спасибо за чтение
Вернуться к книге
