okpython.net
Все для начинающих

Курс для начинающих
«Python за час»

Python :: Курс для начинающих Наш ознакомительный курс для начинающих «Python за час» рассчитан на быстрое стартовое знакомство с основами синтаксиса Пайтона. Его можно считать первым шагом на пути полноценного освоения этого замечательного языка программирования. Курс состоит из последовательности примеров учебника, сопровождаемых подробными комментариями, что позволит вам быстрее погрузиться в атмосферу ядра языка. При этом вовсе необязательно стремиться пройти весь курс за час или за день. Занимайтесь с той скоростью, с которой позволяют вам ваши способности и время, не забывая набирать исходный код в редакторе и стараясь приступать к прохождению очередного примера лишь тогда, когда будет закончен полный разбор предыдущего. Однако, если какой-то пример вызовет у вас затруднения, можете смело пропускать его и двигаться дальше, т.к. позже он наверняка будет рассмотрен в учебнике более подробно. В любом случае, даже простое чтение курса позволит вам получить достаточно первичных навыков для эффективного чтения учебника и решения задач нашего сборника на втором этапе учебного процесса.

  • Чтобы посмотреть результат выполнения исходного кода примеров курса, используйте кнопку «Результат».
  • Чтобы окно консоли после выполнения скрипта сразу не закрывалось, дописывайте в конец скрипта инструкцию input().
  • Если в ходе прохождения курса у вас возникнут трудности или будут обнаружены какие-либо ошибки пишите мне в соцсети (в первую очередь стараюсь отвечать подписчикам).
Код Результат pythonCodes
# Ф-ция print выводит значения на экран,
# приводя их перед выводом к строкам.
print('Привет, мир!')

# В Python предусмотрены только однострочные 
# комментарии. Пишем их после решетки через 
# пробел и стараемся завершать точкой.

# Нажмите кнопку «Результат»
Привет, мир!







 

Код Результат pythonCodes
# Выводим через запятую сразу несколько значений.
# 5 плюс 0.7 (по умол. использ. пробел, т.е. sep=' ').
print(5, 'плюс', 0.7)	

# Выводим значения, разделяя их запятой с пробелом и 
# закончив вывод двойным переходом на новую строку.
print('a', 'b', 'c', sep=', ', end='\n\n')    

# Выводим значения, разделяя их звездочкой и 
# закончив вывод строкой ' = ?'.
print('a', 'b', 'c', sep='*', end=' = ?')

# Аргумент sep задает разделитель выводимых значений,
# а end - символы в конце вывода (по умол. end='\n'). 

# Нажмите кнопку «Результат»
5 плюс 0.7
a, b, c

a*b*c = ?











 

Код Результат pythonCodes
# Для ввода используется ф-ция input().
# Я ввел 'Привет, мир!'
s = input('Введите строку: ')	

# А для вывода  print().
print('\nВы ввели:', s)
Введите строку: Привет, мир!
Вы ввели: Привет, мир!.



 

Код Результат pythonCodes
# В переменных мы храним значения. В именах можно 
# использовать буквы в любом регистре, _ и цифры, 
# но с цифр имена начинать запрещено.

# Сохранили в переменной целое число.
num_1 = 7
# Сохранили в переменной вещественное число.
num_2 = 7.45    

# Вывели их сумму на экран.
print('7 + 7.45 =', num_1 + num_2) 
7 + 7.45 = 14.45
			
			
			
			
			
			
			
			
			
 

Код Результат pythonCodes
# Еще примеры имен с ошибками и без.

# Начинается со знака подчеркивания.
_f = 7

# Начинается со знака подчеркивания и включает 
# русские буквы, одна из которых заглавная.
_Чаво = 'А ничаво!'

# Начинается с заглавной буквы.    
St123 = {1, 2, 3}

# Смешивать буквы не рекомендуется.
set_имя = 'Никто'

# Змеиная нотация (для переменных и функций).
go_to_str = True
    
# Верблюжья нотация.
goToStr = True

# Стиль CupWords (для классов).
GoToStr = True  

# Смешивать нотации можно, но не рекомендуется.
goTo_str = False
    
# Эти имена содержат недопустимые компбинации 
# символов: 15var_1, $Var2 или var 3. 

			
			
			


















			
			
			
			
			
			
 

Код Результат pythonCodes
# Кстати, имена в Python регистрозависимы.
var_1 = 1
Var_1 = 2
VAR_1 = 3

# Выведем и посмотрим.
print('var_1 хранит ', var_1, end='\n\n')
print('Var_1 хранит ', Var_1, end='\n\n')    
print('VAR_1 хранит ', VAR_1) 
var_1 хранит  1

Var_1 хранит  2

VAR_1 хранит  3
			
		
			
 

Код Результат pythonCodes
# Python - язык с динамической типизацией, поэтому
# в переменных можно хранить объекты любых типов:
# сперва один, затем другой, меняя их по необходимости.

# Присвоим переменной целое число. 
d = 33
# Проверим тип с помощью ф-ции type(obj).
print('Тип переменной d: ', type(d))
  
# Теперь присвоим той же переменной словарь.	
d = {1: 'red', 2: 'green'}
# Тип по-прежнему int? (Выведет False).
print("Тип d все еще int?: ", isinstance(d, int))
# А какой тогда?
print("Новый тип переменной d: ", type(d)) 
Тип переменной d:  <class 'int'>
Тип d все еще int?:  False
Новый тип переменной d:  <class 'dict'>
			
		








			
 

Код Результат pythonCodes
# За типами следим сами, иначе получим ошибку.

# Присвоим переменной число с плавающей точкой.
d = 33.47
# Присвоим переменной строку. 
s = '33.47'	

# Попробуем сложить
res = d + s
# и затем вывести результат на экран.
print(res)

# Получили вполне ожидаемую ошибку. 
unsupported operand type(s) for +: 'float' and 'str'
			
		








			
 

Код Результат pythonCodes
# Просим ввести 1-е число с плавающей точкой. 
d = input('Введите 1-е вещественное число: ')
# Просим ввести 2-е число с плавающей точкой. 
s = input('Введите 2-е вещественное число: ')

# Я ввел 2.44 и 3.27 (см. Результат).
# Самостоятельно преобразуем строки в вещ-ные числа. 
d = float(d)
s = float(s)		

# А вот теперь сложим
res = d + s
# и выведем результат на экран.
print('d + s =', res) 
Введите 1-е вещественное число: 2.44
Введите 2-е вещественное число: 3.27			
d + s = 5.71	
			
			
			

			
			
			
			
			
			
 

Код Результат pythonCodes
# В Python для разделения инструкций в основном
# используются переводы строк. Поэтому в каждой
# строке стараются писать по одной инструкции.

# Имеем 4 инструкции по одной на каждой строке.
# Точку с запятой нигде не ставим.

a = 3.7

b = 5.2

c = a + b

# Выведет 8.9
print(c)

# -------------------------

# Конечно, точки с запятой ошибок не вызовут, 
# но в Python так поступать не принято!!!

a = 3.7;

b = 5.2;

c = a + b;

# Опять же выведет 8.9
print(c);  
8.9
8.9
			
			
















			

			
			
			
			
			
			
 

Код Результат pythonCodes
# Математические операции с числами.

# Сложение и вычитание чисел.
res_1 = 3.46 + 1.22 - 35
# Получим -30.32 (вещ-ный рез-т).
print('3.46 + 1.22 - 35 =', res_1, end='\n\n')

# Деление и умножение  чисел.
res_2 = 3.4/1.7 + 5*10
# Получим 52.0 (вещ-ный рез-т).
print('3.4/1.7 + 5*10 =', res_2, end='\n\n')	

# Возведение в степень.
res_3 = 0.5**3
# Получим 0.125.
print('0.5**3 =', res_3, end='\n\n')

# Деление с округлением вниз.
res_4 = 5//2
# Получим 2.
print('5//2 =', res_4)
res_5 = -5//2
# Получим -3.
print('-5//2 =', res_5, end='\n\n')  

# Остаток от деления.
res_6 = 5%3
# Получим 1.
print('5%3 =', res_6) 
3.46 + 1.22 - 35 = -30.32

3.4/1.7 + 5*10 = 52.0

0.5**3 = 0.125

5//2 = 2
-5//2 = -3

5%3 = 2	
			
			








			

			
			
			
			
			
			
 

Код Результат pythonCodes
# Скобки используются как обычно в математике.

# Используем для суммы круглые скобки.
res_1 = (3.46 + 1.22)*3 - 0.4
# Получим 13.639999999999999.
print('(3.46 + 1.22)*3 + 0.4 =', res_1, end='\n\n')

# Используем вложенные скобки.
res_2 = ((5/3.2 + 8*2)*3 - 0.4)/(4 - 2**3)
# Получим -13.071875.
print('((5/3.2 + 8*2)*3 - 0.4)/(4 - 2**3) =', res_2) 
(3.46 + 1.22)*3 + 0.4 = 13.639999999999999

((5/3.2 + 8*2)*3 - 0.4)/(4 - 2**3) = -13.071875
			
			





 

Код Результат pythonCodes
# Используем для чисел встроенные функции.

# Возведение в степень.
res_1 = pow(16, 0.5)
# Получим 4.0.
print('pow(16, 0.5) ->', res_1, end='\n\n')

# Найдем модуль числа.
res_2 = abs(-0.33)
# Получим 0.33.
print('abs(-0.33) ->', res_2, end='\n\n')	

# Найдем максимальное из трех чисел.
res_3 = max(45, 7.5, 23.8)
# Получим 45.
print('max(45, 7.5, 23.8) ->', res_3, end='\n\n')	

# Найдем минимальное среди этих чисел.
res_4 = min(45, 7.5, 23.8)
# Получим 7.5.
print('min(45, 7.5, 23.8) ->', res_4, end='\n\n')		

# Округлим число до трех знаков после запятой.
res_5 = round(45.532917, 3)
# Получим 45.533.
print('round(45.532917, 3) ->', res_5, end='\n\n')	
    
# Используем встроенные функции в выражении.
res_6 = abs(pow(-2, 3) + round(27.321, 1))
# Получим 19.3.
print('abs(pow(-2, 3) + round(27.321, 1)) = ', res_6) 
pow(16, 0.5) -> 4.0

abs(-0.33) -> 0.33

max(45, 7.5, 23.8) -> 45

min(45, 7.5, 23.8) -> 7.5

round(45.532917, 3) -> 45.533

abs(pow(-2, 3) + round(27.321, 1)) =  19.3
			
			

















 

Код Результат pythonCodes
# Условная инструкция if/else.

# А вот для разделения коротких инструкций
# на одной строке используем точку с запятой.
x = 0.5; y = 3

# Осуществляем проверку условного выражения.
if y > 0:
    # Делим и выводим рез-т.
    print('x/y =', x/y)       
# Иначе    
else:
    # Выводим предупреждение.
    print('А на 0 делить нельзя!')         
    
# Вложенные блоки инструкций нужно выделять
# одинаковыми отступами. Рекомендуется использовать
# по 4 пробела на каждый уровень вложенности.  
x/y = 0.16666666666666666
			















 

Код Результат pythonCodes
# Условная инструкция if/elif/else.   

# Ведущий ноль у вещ-х чисел разрешается опускать. 
x = .33 
# Тоже самое, что и 123.45.
y = 1.2345e2 
      
# Проверим равенство чисел. Знак = используется 
# для присвоения значений, а комбинация из 2-х
# знаков равно == означает именно равенство.
if x == y:
    print(x, 'равно', y)
# Если же x > y.
elif x > y:
    print(x, 'больше', y)    
# Иначе.
else:
    print(x, 'меньше', y)
    
# Не забываем про кнопку «Результат».  
0.33 меньше 123.45
			

















 

Код Результат pythonCodes
# Разрешается использовать несколько elif.   

# Запрашиваем ввод названия.
f = input('Укажите название фрукта: ')
    
# Осуществляем проверку условных выражений.
# Если введено название 'яблоки'.
if f == 'яблоки':
    # Присвоим m строку с таким ценником.
    m = '1.9 руб/кг.'                 
elif f == 'апельсины':
    m = '3.4 руб/кг.'            
elif f == 'бананы':
    m = '2.5 руб/кг.'            
elif f == 'груши':
    m = '2.8 руб/кг.'            
# Если ничего не совпало.
else:    
    # Сообщим об этом.
    m = 'Нет в продаже!'

# Выводим результат. 
print(m)  
Укажите название фрукта: бананы
2.5 руб/кг.
			



















 

Код Результат pythonCodes
# Булевы объекты True и False. 

# Сравним дроби.
n_1 = 155/247
n_2 = 189/289

# Если рез-том сравнения будет True.
if (n_1 > n_2) == True:
    print('155/247 > 189/289')	
# Если рез-т не равен False.
elif (n_1 == n_2) != False:
    print('155/247 = 189/289')		
# Иначе.
else:
    print('155/247 < 189/289') 
155/247 < 189/289
			












 

Код Результат pythonCodes
# Логические операторы not, or и and.   

# Сохраним числа в переменных.
num_1 = -5
num_2 = 7

# Логическое НЕ инверсирует значение.	
if not num_1 == num_2:
    print('True', end='\n\n')
# Иначе.
else:
    print('False', end='\n\n')    

# Логическое ИЛИ (True, если оба значения равны  
# True или хотя бы одно из значений равно True).	
if num_1 > 0 or num_2 > 0:
    print('True', end='\n\n')        
# Иначе.
else:
    print('False', end='\n\n')     

# Логическое И (True, если оба значения равны True). 	
if num_1 > 0 and num_2 > 0:
    print('True')   
# Иначе.
else:
    print('False') 
True

True

False
			




















 

Код Результат pythonCodes
# Создаем строки (неизм-мые упоряд-ные послед-ти символов).

# Присваиваем литерал строки в одинарных кавычках.
str_1 = 'Я – строка в одинарных кавычках.'
# Тип str_1: <class 'str'>.
print('Тип str_1:', type(str_1))	

# Присваиваем литерал строки в двойных кавычках.	
str_2 = "Я – строка в двойных кавычках."	
# Тип str_2: <class 'str'>.
print('Тип str_2:', type(str_2))	

# Используем три двойные кавычки.
str_3 = """Я – строка в тройных кавычках.
Я могу располагаться на нескольких строках."""
# Тип str_3: <class 'str'>.
print('Тип str_3:', type(str_3))

# Используем три одинарные кавычки.
str_4 = '''Я тоже строка в тройных кавычках.
Но на этот раз были использованы три одинарные кавычки.'''	
# Тип str_4: <class 'str'>.
print('Тип str_4:', type(str_4))
Тип str_1: <class 'str'>
Тип str_2: <class 'str'>
Тип str_3: <class 'str'>
Тип str_4: <class 'str'>
			
			
















 

Код Результат pythonCodes
# Кавычки внутри других кавычек.

# Используем одинарные кавычки внутри двойных.
str_1 = "Пример 'одинарных' кавычек внутри двойных."
# Выводим строку на экран.
print(str_1, end='\n\n')	

# Используем двойные кавычки внутри одинарных.	
str_2 = 'Пример "двойных" кавычек внутри одинарных.'	
# Выводим строку на экран.
print(str_2, end='\n\n')	

# Двойные, одинарные и тройные одинарные внутри тройных.
str_3 = """Вот 'одинарные', вот "двойные", а вот и
'''тройные одинарные''' кавычки внутри тройных."""
# Выводим строку на экран.
print(str_3, end='\n\n')	

# Используем одинарные кавычки внутри одинарных.
str_4 = 'Пример \'одинарных\' кавычек внутри одинарных.'
# Выводим строку на экран.
print(str_4, end='\n\n')

# Слэшем экранируем и другие виды однотипных кавычек.
str_5 = """Пример \"\"\"тройных\"\"\" внутри тройных."""
# Выводим строку на экран.
print(str_5)
Пример 'одинарных' кавычек внутри двойных.

Пример "двойных" кавычек внутри одинарных.

Вот 'одинарные', вот "двойные", а вот и
'''тройные одинарные''' кавычки внутри тройных.

Пример 'одинарных' кавычек внутри одинарных.

Пример """тройных""" внутри тройных.
			
			














 

Код Результат pythonCodes
# Доступ к символам строки по индексу. 

# Формируем строку.
str_1 = 'строка'

# Выводим 1-й символ (нумерация начинается с нуля).
print('str_1[0] ->', str_1[0], end='\n\n')	

# Выводим последний символ (длина строки минус один).
print('str_1[len(str_1)-1] ->', str_1[len(str_1)-1], end='\n\n')

# Можно использовать отрицательные индексы, тогда
# нумерация будет идти с конца и начинаться с -1.
print('str_1[-1] ->', str_1[-1], end='\n\n') 
str_1[0] -> с

str_1[len(str_1)-1] -> а

str_1[-1] -> а
			
			






 

Код Результат pythonCodes
# Порядок извлечения срезов строк.  

# Формируем строку.
str_1 = 'Один, два, три.'

# Выводим первые два символа.
print('str_1[0:2] ->', str_1[0:2], end='\n\n')	
# Можно и так.
print('str_1[:2] ->', str_1[:2], end='\n\n')
	
# Выводим последние два символа.
print('str_1[-2:] ->', str_1[-2:], end='\n\n')	

# Выводим символы с 3-го по 7-й.
print('str_1[2:7] ->', str_1[2:7], end='\n\n')

# Используем отрицательные индексы.
print('str_1[-7:-2] ->', str_1[-7:-2], end='\n\n')

# Получим поверхностную копию строки.
print('str_1[:] ->', str_1[:], end='\n\n') 
str_1[0:2] -> Од

str_1[:2] -> Од

str_1[-2:] -> и.

str_1[2:7] -> ин, д

str_1[-7:-2] -> а, тр

str_1[:] -> Один, два, три.
			
			







 

Код Результат pythonCodes
# Используем шаг для срезов.  

# Формируем строку.
str_1 = 'Вместе весело шагать...'
# Выводим ее для наглядности.
print('str_1 ->', str_1, end='\n\n')

# Выводим каждый 2-й символ среза (слева направо).
print('str_1[0:10:2] ->', str_1[0:10:2], end='\n\n')	
# Можно и так.
print('str_1[:10:2] ->', str_1[:10:2], end='\n\n')
	
# Выводим каждый третий символ всей строки.
print('str_1[::3] ->', str_1[::3], end='\n\n')	

# Выводим каждый 2-й, считая с конца среза (-1, -2,...).
# Сам срез берется справа налево, если шаг отрицательный.	
print('str_1[12:2:-2] ->', str_1[12:2:-2], end='\n\n')

# Выводим каждый 3-й символ среза, считая справа налево.
print('str_1[-15:3:-3] ->', str_1[-15:3:-3], end='\n\n')

# Выводим каждый 2-й символ, считая с конца строки.
print('str_1[::-2] ->', str_1[::-2]) 
str_1 -> Вместе весело шагать...

str_1[0:10:2] -> Вет е

str_1[:10:2] -> Вет е

str_1[::3] -> Вс соат.

str_1[12:2:-2] -> оее т

str_1[-15:3:-3] -> ее

str_1[::-2] -> ..тгшоее теВ
			
			








 

Код Результат pythonCodes
# Некоторые комбинированные операторы присваивания.

# Присвоили начальное значение.
a = 3   
print('Начальное значение:', a, end='\n\n')
 
# Равнозначно a = a + 6.
a += 6   
# Теперь a == 9.
print('a += 6 <=> a = a + 6 -> a ==', a, end='\n\n')
 
# Равнозначно a = a*2.
a *= 2  
# Теперь a == 18.
print('a *= 2 <=> a = a*2 -> a ==', a, end='\n\n')
 
# Равнозначно a = a/2.
a /= 2  
a = int(a)
# Теперь a == 9.
print('a /= 2 <=> a = a/2 -> a ==', a, end='\n\n')
 
# Равнозначно a = a**2.
a **= 2
# Теперь a == 81.
print('a **= 2 <=> a = a**2 -> a ==', a)
Начальное значение: 3

a += 6 <=> a = a + 6 -> a == 9

a *= 2 <=> a = a*2 -> a == 18

a /= 2 <=> a = a/2 -> a == 9

a **= 2 <=> a = a**2 -> a == 81

			
			













 

Код Результат pythonCodes
# Для строк можно ограниченно использовать + и *.  

# Формируем строки.
str_1 = 'один '
str_2 = 'два'	
str_3 = '-'
	
# Осуществляем конкатенацию строк (т.е. объединение).
print('str_1 + str_2 ->', str_1 + str_2, end='\n\n')	
		
# Повторяем строку 3 раза (str_1 + str_1 + str_1).
print('str_1*3 ->', str_1*3, end='\n\n')
		
# Заносим в переменную объединение строк str_1 и str_2.
str_1 += str_2
# Теперь в str_1 хранится строка 'один два'.
print('str_1 ->', str_1, end='\n\n')
		
# Умножением удобно выводить повторяющиеся символы.
str_3 *= 10
# Теперь str_3 равна 10-ти дефисам.
print('str_3 *= 10 ->', str_3) 
str_1 + str_2 -> один два

str_1*3 -> один один один 

str_1 += str_2 -> один два

str_3 *= 10 -> ----------
			
			












 

Код Результат pythonCodes
# Проверяем символы на вхождение в строку.  

# Формируем строки.
str_1 = 'Два слова.'
str_2 = 'слова'

# Проверяем наличие символа в первой строке.
answer = 'л' in str_1

# Если операция вернула True,
if answer:
    # выводим подтверждение на экран.
    print('Буква \'а\' присутствует в строке str_1.', end='\n\n')
# Иначе
else:
    # выводим на экран отрицание.
    print('Буквы \'а\' нет в строке str_1.', end='\n\n')	


# Проверяем вхождение str_2 в str_1, используя not in.
if str_2 not in str_1:
    # Выводим подтверждение на экран.
    print('str_2 отсутствует в str_1.')				
# Иначе
else:
    # выводим на экран сообщение.
    print('str_2 присутствует в str_1.') 
Буква 'а' присутствует в строке str_1.

str_2 присутствует в str_1.
			
			





















 

Код Результат pythonCodes
# Используем для обхода символов строки цикл for.  

# Формируем строку.
str_1 = 'Весенний карнавал.'
	
# Количество букв будем хранить в счетчике.
n = 0
# Посчитаем количество букв 'а' в строке.
for let in str_1:
    # Если очередной символ строки наша буква,
    if let == 'а':
        # увеличиваем счетчик на 1.
        n += 1

# Выводим полученное количество на экран.
print("Количество букв 'а' в строке:", n) 
Количество букв 'а' в строке: 3
			
			












 

Код Результат pythonCodes
# Методов у строк довольно много. Вот некоторые из них.  

# str.upper() и аналог str.lower().
str_1 = "сиНий Кит".upper()
# СИНИЙ КИТ.
print('"сиНий Кит".upper() ->', str_1, end='\n\n')			

# Считаем кол-во символов в диапазоне. Вернет 1.
ans = "Синий иней".count('н', 2, 5)
print("Кол-во символов 'н':", ans, end='\n\n')	   
          
# Ищем позицию символа в диапазоне. Вернет 3.
ans = "Синий иней".find('и', 2, 5)
print("Индекс 1-го вхождения 'и':", ans, end='\n\n')                 
  
# Замена подстрок на новые строки.
str_2 = "Синий иней".replace("иней", "кит")
# Синий иней -> Синий кит.
print('Синий иней ->', str_2, end='\n\n')	   
  
# Разбиваем по пробельным символам в список строк.
str_3 = "Синий иней".split()
# ['Синий', 'иней'].
print('"Синий иней".split() ->', str_3, end='\n\n')	   

# Собираем строку из списка строк.
str_4 = "".join(["У", "х"])
# Ух.
print('"".join(["У", "х"]) ->', str_4, end='\n\n')		    

# Все символы в нижнем регистре?
str_5 = "Синий".islower()
# False.
print('"Синий".islower() ->', str_5)
"сиНий Кит".upper() -> СИНИЙ КИТ

Кол-во символов 'н': 1

Индекс 1-го вхождения 'и': 3

Синий иней -> Синий кит

"Синий иней".split() -> ['Синий', 'иней']

"".join(["У", "х"]) -> Ух

"Синий".islower() -> False
			
			


















 

Код Результат pythonCodes
# Создаем списки (изм-мые упоряд-ные посл-ти эл-тов).  

# Получаем пустой список.
li_1 = []
# Выведет [].
print(li_1, end='\n\n')        

# Элементы перечисляем через запятую.
li_2 = [15, "Иван", None, 34.5, True]
# Выведет [15, 'Иван', None, 34.5, True].
print(li_2, end='\n\n') 	

# Последнюю запятую можно не опускать.
li_3 = [1, 2, 3,]
# Выведет [1, 2, 3].
print(li_3, end='\n\n')

# Можно использовать списки списков и т.д.
li_4 = [[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]]
# Выведет [[1, 2, 3], [4, 5, 6], [7, 8, 9]].
print(li_4, end='\n\n') 	

# Эле-ми могут быть любые объекты, любой вложенности.
li_5 = [{'1': 'top', '2': ['abc', [4, 5]]}, 0.3]
# Выведет [{'1': 'top', '2': ['abc', [4, 5]]}, 0.3].
print(li_5)	 
[]

[15, 'Иван', None, 34.5, True]

[1, 2, 3]

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

[{'1': 'top', '2': ['abc', [4, 5]]}, 0.3]


















 

Код Результат pythonCodes
# Создаем списки, используя конструктор list.  

# Получаем пустой список.
li_1 = list()
# Выведет [].
print(li_1, end='\n\n')        

# Получаем список из строки.
li_2 = list('123')
# Выведет ['1', '2', '3'].
print(li_2, end='\n\n')

# Преобразуем кортеж в список.
li_3 = list((15, "Иван", None, 34.5, True))
# Выведет [15, 'Иван', None, 34.5, True].
print(li_3)	 
[]

['1', '2', '3']

[15, 'Иван', None, 34.5, True]










 

Код Результат pythonCodes
# Создаем списки, используя генератор.  

# Генерируем список из строки.
li_1 = [simb for simb in '123']
# Выведет ['1', '2', '3'].
print(li_1, end='\n\n')

# Используем более сложное выражение.
li_2 = [int(num)*5 for num in '123']
# Выведет [5, 10, 15].
print(li_2)	 
['1', '2', '3']

[5, 10, 15]







 

Код Результат pythonCodes
# Получаем элементы списка по индексу.  

# Формируем список из целых чисел.
li_1 = [1, 2, 3, 4, 5]

# Получим 1, т.е. 1-й эл-т списка (нумерация начинается с нуля).
print('li_1[0] ->', li_1[0], end='\n\n')	

# Выводим последний эл-т списка (кол-во эл-тов списка минус один).
# Получим 5.
print('li_1[len(li_1)-1] ->', li_1[len(li_1)-1], end='\n\n')

# Можно использовать отрицательные индексы, тогда
# нумерация будет идти с конца и начинаться с -1.
# Опять же получим 5.
print('li_1[-1] ->', li_1[-1])	 
li_1[0] -> 1

li_1[len(li_1)-1] -> 5

li_1[-1] -> 5










 

Код Результат pythonCodes
# Получаем по индексу вложенные элементы списка.  

# Простой пример вложенных списков.
li_1 = [3.14, ['abc', [4, 5]], 'кот']

# Выводим число 3.14 (1-й элемент списка).
print('li_1[0] ->', li_1[0], end='\n\n')	

# Выводим 2-й символ строки 'кот'.
print('li_1[2][1] ->', li_1[2][1], end='\n\n')

# Выводим 3-й символ строки 'abc'.
print('li_1[1][0][2] ->', li_1[1][0][2], end='\n\n')	

# Выводим число 5 вложенного списка [4, 5].
print('li_1[1][1][1] ->', li_1[1][1][1]) 
li_1[0] -> 3.14

li_1[2][1] -> о

li_1[1][0][2] -> c

li_1[1][1][1] -> 5








 

Код Результат pythonCodes
# Берем срезы у списков.  

# Формируем список из целых чисел.
li_1 = [1, 2, 3, 4, 5, 6, 7]

# Получаем список из первых двух эл-тов.
print('li_1[0:2] ->', li_1[0:2], end='\n\n')	
# Можно и так, все равно получим [1, 2].
print('li_1[:2] ->', li_1[:2], end='\n\n')
	
# Получаем список из посл-х двух эл-тов ([6, 7]).
print('li_1[-2:] ->', li_1[-2:], end='\n\n')	

# Получаем список [3, 4, 5] из эл-тов с 3-го по 5-й.
print('li_1[2:5] ->', li_1[2:5], end='\n\n')

# Получим [2, 3, 4, 5] (использ. отриц. индексы).
print('li_1[-6:-2] ->', li_1[-6:-2], end='\n\n')

# Убедимся, что список не изменился.
print('li_1 ->', li_1, end='\n\n')	

# Напоследок выведем копию списка.
print('li_1[:] ->', li_1[:]) 
li_1[0:2] -> [1, 2]

li_1[:2] -> [1, 2]

li_1[-2:] -> [6, 7]

li_1[2:5] -> [3, 4, 5]

li_1[-6:-2] -> [2, 3, 4, 5]

li_1 -> [1, 2, 3, 4, 5, 6, 7]

li_1[:] -> [1, 2, 3, 4, 5, 6, 7]










 

Код Результат pythonCodes
# Используем шаг в срезах списков.  

# Формируем список из целых чисел.
li_1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Выводим его для наглядности.
print('li_1 ->', li_1, end='\n\n')

# Выводим каждый 2-й элемент среза (слева направо).
# [1, 3, 5, 7].
print('li_1[0:7:2] ->', li_1[0:7:2], end='\n\n')	

# Можно и так, получим опять [1, 3, 5, 7].
print('li_1[:7:2] ->', li_1[:7:2], end='\n\n')
	
# Выводим каждый третий элемент всего списка.
# [1, 4, 7, 10].
print('li_1[::3] ->', li_1[::3], end='\n\n')	

# Выводим каждый 2-й эл-т, считая с конца среза (-1, -2,...).
# Сам срез берется справа налево, если шаг отрицательный.	
# [9, 7, 5].
print('li_1[8:2:-2] ->', li_1[8:2:-2], end='\n\n')

# Выводим каждый 3-й эл-т среза, считая справа налево.
# [8, 5].
print('li_1[-3:1:-3] ->', li_1[-3:1:-3], end='\n\n')

# Выводим каждый 2-й эл-т, считая с конца списка.
# [10, 8, 6, 4, 2].
print('li_1[::-2] ->', li_1[::-2]) 
li_1 -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

li_1[0:7:2] -> [1, 3, 5, 7]

li_1[:7:2] -> [1, 3, 5, 7]

li_1[::3] -> [1, 4, 7, 10]

li_1[8:2:-2] -> [9, 7, 5]

li_1[-3:1:-3] -> [8, 5]

li_1[::-2] -> [10, 8, 6, 4, 2]
















 

Код Результат pythonCodes
# Изменяем значения элементов списка.  

# Формируем список из 3-х элементов.
li_1 = ['и', ['b', [4, 5]], 0.3]

# Изменяем третий элемент списка (индекс 2).
li_1[2] = 4
# Выведет ['и', ['b', [4, 5]], 4]
print('li_1[2] = 4 ->', li_1, end='\n\n')	

# Изменяем 1-й эл-т вложенного списка [4, 5].
li_1[1][1][0] = 's'
# Выведет ['и', ['b', ['s', 5]], 4].
print("li_1[1][1][0] = 's' -> ", li_1, end='\n\n')		

# Используем отрицательный индекс.
li_1[-3] = [1, 2]
# Выведет [[1, 2], ['b', ['s', 5]], 4].
print('li_1[-3] = [1, 2] ->', li_1, end='\n\n')

# Заменим 1-й элемент пустым списком.
li_1[0] = []
# Выведет [[], ['b', ['s', 5]], 4].
print('li_1[0] = [] ->', li_1) 
li_1[2] = 4 -> ['и', ['b', [4, 5]], 4]

li_1[1][1][0] = 's' -> ['и', ['b', ['s', 5]], 4]

li_1[-3] = [1, 2] -> [[1, 2], ['b', ['s', 5]], 4]

li_1[0] = [] -> [[], ['b', ['s', 5]], 4]
















 

Код Результат pythonCodes
# Используем для списков операторы + и *.  

# Формируем списки.
li_1 = [1, 2, 3]
li_2 = [4, 5, 6]	

# Осуществляем конкатенацию списков (т.е. объединение).
# Выведет [1, 2, 3, 4, 5, 6].
print('li_1 + li_2 ->', li_1 + li_2, end='\n\n')	
		
# Объединяем с самим собой 3 раза (li_1 + li_1 + li_1).
# Выведет [1, 2, 3, 1, 2, 3, 1, 2, 3].
print('li_1*3 ->', li_1*3, end='\n\n')				

# Тоже, что и li_1 = li_1 + li_2.
li_1 += li_2
# Теперь li_1 == [1, 2, 3, 4, 5, 6].
print('li_1 += li_2 ->', li_1) 
li_1 + li_2 -> [1, 2, 3, 4, 5, 6]

li_1*3 -> [1, 2, 3, 1, 2, 3, 1, 2, 3]

li_1 += li_2 -> [1, 2, 3, 4, 5, 6]












 

Код Результат pythonCodes
# Используем оператор in применительно к спискам. 
# Формируем список.
li_1 = [1, 2, 3, [4, 5]]
	
# Проверяем наличие числа 8 в списке.
answer = 8 in li_1

# Если операция вернула True,
if answer:
    # выводим подтверждение на экран.
    print('Число 8 присутствует в списке li_1.', end='\n\n')
# Иначе
else:
    # выводим на экран отрицание.
    print('Числа 8 нет в списке li_1.', end='\n\n')	


# Проверим вхождение, используя not in.
if 5 not in li_1[3]:
    # Выводим подтверждение на экран.
    print('Число 5 отсутствует в li_1[3].')				
# Иначе
else:
    # Выводим на экран сообщение.
    print('Число 5 присутствует в li_1[3].') 
Числа 8 нет в списке li_1.

Число 5 присутствует в li_1[3].





















 

Код Результат pythonCodes
# Обходим эл-ты списка циклом for. 
			
# Формируем список.
li_1 = [1, 2, 3, 4, 5]

# Проверим все ли числа в списке целые.
for elem in li_1:
	
    # Если эл-т не является целым числом,
    if type(elem) is not int:
        # выводим сообщение на экран 
        print('Не все эл-ты списка целые числа.')			
        # и прерываем цикл.
        break

# Eсли цикл завершился успешно,
else:
    # выводим положительный результат. 
    print('Все эл-ты в списке - целые числа.') 
Все эл-ты в списке - целые числа.

















 

Код Результат pythonCodes
# Удаляем с помощью del. 
			
# Формируем список.
li_1 = [1, 2, 3, 4, 5, 6, 7]

# Удаляем первый эл-т списка.
del li_1[0]
# Теперь li_1 == [2, 3, 4, 5, 6, 7].
print('del li_1[0] ->', li_1, end='\n\n')

# Удаляем срез списка.
del li_1[2:4]
# Теперь li_1 == [2, 3, 6, 7].
print('del li_1[2:4] ->', li_1, end='\n\n')	

# Удаляем каждый 2-й эл-т списка.
del li_1[::2]
# Теперь li_1 == [3, 7].
print('del li_1[::2] ->', li_1, end='\n\n')

# Удаляем сам список.
del li_1
# name 'li_1' is not defined.
print(li_1, end='\n\n') 
del li_1[0] -> [2, 3, 4, 5, 6, 7]

del li_1[2:4] -> [2, 3, 6, 7]

del li_1[::2] -> [3, 7]

name 'li_1' is not defined
















 

Код Результат pythonCodes
# Пройдемся по некоторым методам списков. Т.к. списки  
# изменяемы, методы в основном изменяют сам список.
    
# Создаем список для манипуляций.	
li = ['a', 'b', 'c', 'a']

# Ищем кол-во эл-тов со значением 'a'	
n_1 = li.count('a')
# Получим 2.
print('li.count("a") ->', n_1, end='\n\n')	

# Ищем индекс 1-го встретившегося эл-та со значением 'c'.
index_1 = li.index('c')
# Выведет 2.
print('li.index("c") ->', index_1, end='\n\n')	

# Удаляем элемент списка с индексом 3.
li.pop(3)
# Выведет ['a', 'b', 'c'].
print('Теперь li ->', li, end='\n\n')	
    
# Добавляем в конец списка эл-т (другой список).
li.append([7, 8])
# Выведет ['a', 'b', 'c', [7, 8]].
print('li.append([7, 8]) ->', li, end='\n\n')	    

# Удаляем 'b' (изменяем сам список).
li.remove('b')
# Выведет ['a', 'c', [7, 8]].
print('li.remove("b") ->', li, end='\n\n')	    

# Изменяем порядок следования эл-тов на обратный.
li.reverse()
# Выведет [[7, 8], 'c', 'a'].
print('li.reverse() ->', li)	 
li.count("a") -> 2

li.index("c") -> 2

Теперь li -> ['a', 'b', 'c']

li.append([7, 8]) -> ['a', 'b', 'c', [7, 8]]

li.remove("b") -> ['a', 'c', [7, 8]]

li.reverse() -> [[7, 8], 'c', 'a']























 

Код Результат pythonCodes
# Создаем кортежи (неизм. упоряд-ные посл-ти эл-тов).  
			
# Получаем пустой кортеж.
tpl_1 = ()
# Выведет ().
print(tpl_1, end='\n\n')        

# Получаем кортеж с одним элементом.
# (3) нельзя, т.к. это просто число 3.
tpl_2 = (3,)
# Выведет (3,).
print(tpl_2, end='\n\n') 

# Элементы перечисляем через запятую.
tpl_3 = (15, "Иван", None, 34.5, True)
# Выведет (15, 'Иван', None, 34.5, True).
print(tpl_3, end='\n\n') 	

# Последнюю запятую можно не опускать.
tpl_4 = (1, 2, 3,)
# Выведет (1, 2, 3).
print(tpl_4, end='\n\n')

# Эл-ми могут быть любые объекты, любой вложенности.
tpl_5 = (
         {'1': 'top', '2': ['abc', (4, 5)]}, 
         0.3,
        )
# Выведет ({'1': 'top', '2': ['abc', (4, 5)]}, 0.3).
print(tpl_5)  
()

(3,)

(15, 'Иван', None, 34.5, True)

(1, 2, 3)

({'1': 'top', '2': ['abc', (4, 5)]}, 0.3)




















 

Код Результат pythonCodes
# Создаем кортежи, используя констр. tuple.  
			
# Получаем пустой кортеж.
tpl_1 = tuple()
# Выведет ().
print(tpl_1, end='\n\n')        

# Получаем кортеж из строки.
tpl_2 = tuple('123')
# Выведет ('1', '2', '3').
print(tpl_2, end='\n\n')

# Преобразуем список в кортеж.
tpl_3 = tuple([15, "Иван", None, 34.5, True])
# Выведет (15, 'Иван', None, 34.5, True).
print(tpl_3)  
()

('1', '2', '3')

(15, 'Иван', None, 34.5, True)










 

Код Результат pythonCodes
# У кортежей почти все как у списков, но они неизменяемы.  
            
# Формируем кортеж из целых чисел.
tpl_1 = (1, 2, 3, 4, 5, 6, 7)

# Получим 1, т.е. 1-й эл-т кортежа (нумерация начинается с нуля).
print('tpl_1[0] ->', tpl_1[0], end='\n\n')	

# Получаем кортеж (3, 4, 5) из эл-тов с 3-го по 5-й.
print('tpl_1[2:5] ->', tpl_1[2:5], end='\n\n')    

# Выводим каждый 2-й элемент среза (слева направо).
# (1, 3, 5).
print('tpl_1[0:5:2] ->', tpl_1[0:5:2])	 
tpl_1[0] -> 1

tpl_1[2:5] -> (3, 4, 5)

tpl_1[0:5:2] -> (1, 3, 5)








 

Код Результат pythonCodes
# Изменяем элементы кортежей.  
			
# Формируем кортеж из 3-х элементов.
tpl_1 = ('и', ['b', [4, 5]], 0.3)

# Изменяем 1-й эл-т вложенного списка [4, 5].
tpl_1[1][1][0] = 's'
# Выведет ('и', ['b', ['s', 5]], 4).
print('tpl_1[1][1][0] = \'s\' ->', tpl_1, end='\n\n')		

# А вот так уже не получится (кортеж неизменяем).
tpl_1[0] = 7
# Выведет исключение.
print('tpl_1[0] = 7 ->', tpl_1) 
tpl_1[1][1][0] = 's' -> ('и', ['b', ['s', 5]], 0.3)

'tuple' object does not support item assignment










 

Код Результат pythonCodes
# Методов у кортежей мало.  
			
# Создаем кортеж для манипуляций.	
tpl = ('a', 'b', 'c', 'a', 'b', 'c')

# Ищем кол-во эл-тов со значением 'b'	
n_1 = tpl.count('b')
# Получим 2.
print('tpl.count("b") ->', n_1)	
# Ищем кол-во эл-тов со значением 23
n_2 = tpl.count(23)	
# Получим 0, т.к. эл-тов с таким значением нет в кортеже.
print('tpl.count(23) ->', n_2, end='\n\n')	

# Ищем индекс 1-го встретившегося эл-та со значением 'c'.
index_1 = tpl.index('c')
# Выведет 2.
print('tpl.index("c") ->', index_1)	
# Тоже самое, но ищем с 4-го элемента кортежа.
index_2 = tpl.index('c', 3)
# Получим индекс 5, т.к. ищем не сначала кортежа.
print('tpl.index("c", 3) ->', index_2) 
tpl.count("b") -> 2
tpl.count(23) -> 0

tpl.index("c") -> 2
tpl.index("c", 3) -> 5
















 

Код Результат pythonCodes
# Переходим к словарям (измен-мая именованная коллекция эл-тов).  
			
# Сохраним список в переменной.
li = ['abc', 123, (1, 2, 3)]
# Выводим эл-ты списка.
print(li[0], li[1], li[2], end='\n\n')		

# Сохраняем те же объекты, но в словаре.
d = {'str': 'abc', 'num': 123, 'tuple': (1, 2, 3)}
# Выводим эл-ты на экран.
print(d['str'], d['num'], d['tuple']) 
abc 123 (1, 2, 3)

abc 123 (1, 2, 3)







 

Код Результат pythonCodes
# Создаем словари.  
			
# Получаем пустой словарь.
dict_1 = {}
# Выведет {}.
print(dict_1, end='\n\n')        

# Пары «ключ: значение» перечисляем через запятую.
dict_2 = {'язык': 'Python', 'версия': 3.9}
# Выведет {'язык': 'Python', 'версия': 3.9}.
print(dict_2, end='\n\n') 	

# Последнюю запятую можно не опускать.
dict_3 = {1: 'один', 2: 'два',}
# Выведет {1: 'один', 2: 'два'}.
print(dict_3, end='\n\n')

# Эле-ми могут быть любые объекты любой вложенности.
dict_4 = {'li': ['a', {0: (False, True), 1: None}],
          'tpl': (1, 2, 3)}
print(dict_4) 
{}

{'язык': 'Python', 'версия': 3.9}

{1: 'один', 2: 'два'}

{'li': ['a', {0: (False, True), 1: None}], 'tpl': (1, 2, 3)}













 

Код Результат pythonCodes
# Используем конструктор dict.  
			
# Получаем пустой словарь.
dict_1 = dict()
# Выведет {}.
print(dict_1, end='\n\n')        

# Используем пары «идентификатор = значение».
dict_2 = dict(one = 1, two = 2)
# Выведет {'one': 1, 'two': 2}.
print(dict_2, end='\n\n')

# Используем список с кортежами пар.
dict_3 = dict([('one', 1), ('two', 2)])
# Выведет опять же {'one': 1, 'two': 2}.
print(dict_3, end='\n\n')       

# Разрешены любые допустимые ключи.
dict_4 = dict([(1, 'one'), (2, 'two')])
# Выведет {1: 'one', 2: 'two'}.
print(dict_4) 
{}

{'one': 1, 'two': 2}

{'one': 1, 'two': 2}

{1: 'one', 2: 'two'}













 

Код Результат pythonCodes
# Используем для создания генератор.  
			
# Словарь с квадратами чисел 2, 3, 4.
d_1 = {x: x**2 for x in range(2,5)}
# Выведет {2: 4, 3: 9, 4: 16}.
print(d_1) 
{2: 4, 3: 9, 4: 16}




 

Код Результат pythonCodes
# Ключи словаря должны быть неизменяемыми объектами.  

# Используем для ключей строки.
dict_1 = {'num': 1, 'abc': 'Алфавит'}
print(dict_1, end='\n\n') 
        
# Используем для ключей числа.
dict_2 = {1: 'int', -0.2: 'float', 3j: 'complex'}
print(dict_2, end='\n\n') 						
        
# Пробуем использовать список.		
dict_3 = {[1, 2]: 'Так нельзя!'}
# Получаем ошибку, т.к. списки изменяемы.		
print(dict_3)
{'num': 1, 'abc': 'Алфавит'}

{1: 'int', -0.2: 'float', 3j: 'complex'}

unhashable type: 'list'








 

Код Результат pythonCodes
# Доступ к эл-там словаря по ключу.  
			
# Формируем простой словарь.
d_1 = {1: 'один', 'yes': 'да'}
# Выведет один да.
print(d_1[1], d_1['yes'], end='\n\n')	

# Используем вложенные списки и словари.
d_1 = {'li': [{'ok': 1, 'no': 2}, 3], 's': 'abc'}
# Выведет 2 b.
print(d_1['li'][0]['no'], d_1['s'][1]) 
один да

2 b







 

Код Результат pythonCodes
# Изменяем и добавляем эл-ты.  
			
# Формируем словарь.
d_1 = {1: 1, 2: 2, 3: 0.3}

# Изменяем значение элемента.		
d_1[3] = 3
# Выведет {1: 1, 2: 2, 3: 3}.		
print(d_1, end='\n\n')

# Добавляем новый эл-т.		
d_1[4] = 4
# Выведет {1: 1, 2: 2, 3: 3, 4: 4}.		
print(d_1)	 
{1: 1, 2: 2, 3: 3}

{1: 1, 2: 2, 3: 3, 4: 4}










 

Код Результат pythonCodes
# Операторы + и * не используются со словарями.  
# Оператор in работает с ключами словаря.			

# Формируем простой словарь.
d_1 = {1: 'один', 'yes': 'да'}
		
# Выведет True.
print(1 in d_1, end='\n\n')		
# Выведет False.
print('no' in d_1, end='\n\n')
# Выведет True.
print('no' not in d_1) 
True

False

True






 

Код Результат pythonCodes
# Обходим эл-ты словаря циклом for.  

# Формируем словарь.
d_1 = {1: 1, 2: 2, 3: 0.3}

# Запускаем цикл по ключам словаря.
for key in d_1:
	
    # Если эл-т не является целым числом,
    if not isinstance(d_1[key], int):
        # выводим на экран сообщение 
        print('Не все эл-ты словаря целые числа.')			
        # и прерываем цикл.
        break

# Eсли цикл завершился успешно,
else:
    # выводим положительный результат. 
    print('Все эл-ты в словаре - целые числа.')	 
Не все эл-ты словаря целые числа.

















 

Код Результат pythonCodes
# Удаляем эл-ты словаря с помощью del.  

# Формируем исходный словарь.
d_1 = {1: 1, 2: 2, 3: 0.3, 4: 4}
# Выводим его на экран. 
print('Исходный словарь:', d_1, end='\n\n')			

# Удаляем эл-т. 
del d_1[4]
# Выведет {1: 1, 2: 2, 3: 0.3}. 
print('Итоговый словарь:', d_1)	 
Исходный словарь: {1: 1, 2: 2, 3: 0.3, 4: 4}

Итоговый словарь: {1: 1, 2: 2, 3: 0.3}







 

Код Результат pythonCodes
# Пройдемся по некоторым методам словарей.  

# Формируем словарь.
d_1 = {'a': 1, 'b': 2, 'c': 3}
print("d_1 ->", d_1)

# Получаем значение d_1['b']. Выведет 2.		
print("d_1.get('b') ->", d_1.get('b'), end='\n\n')

# Выведет список ключей ['a', 'b', 'c'].		
print("d_1.keys() ->", list(d_1.keys()))
# Выведет список значений [1, 2, 3].		
print("d_1.values() ->", list(d_1.values()))
# Выведет список [('a', 1), ('b', 2), ('c', 3)].		
print("d_1.items() ->", list(d_1.items()), end='\n\n')	    

# Очищаем словарь. Метод вернет None.
d_1.clear()
# Выведет {}.		
print(d_1, end='\n\n')
            
# Используем другой словарь.		
d_1.update({'c': 3, 'd': 4})
# Выведет {'c': 3, 'd': 4}.
print("d_1.update({'c': 3, 'd': 4}) ->", d_1, end='\n\n')		

# Удаляем и выводим d_1['c'].		
d_1.pop('c')
# Выведет {'d': 4}.		
print(d_1) 
d_1 -> {'a': 1, 'b': 2, 'c': 3}
d_1.get('b') -> 2

d_1.keys() -> ['a', 'b', 'c']
d_1.values() -> [1, 2, 3]
d_1.items() -> [('a', 1), ('b', 2), ('c', 3)]

{}

d_1.update({'c': 3, 'd': 4}) -> {'c': 3, 'd': 4}

{'d': 4}

















 

Код Результат pythonCodes
# Множества (неупорядоченная коллекция 
# уникальных и неизменяемых объектов).  

# Множество из одного эл-та.
s_1 = {1}
print(s_1, end='\n\n')		

# Множество из 3-х эл-тов.
s_2 = {'a', 0.1, ('b', 2)}
print(s_2, end='\n\n')		
			
# Вывело {1, 'a'}.
s_3 = {'a', 1, 1}
print(s_3, end='\n\n')			

# unhashable type: 'list'
s_1 = {'a', 0.1, ['b', 2]}	 
{1}

{0.1, 'a', ('b', 2)}

{1, 'a'}

unhashable type: 'list'









 

Код Результат pythonCodes
# Для преобразования типов используются конструкторы.  
    
# False.        
print('bool(0):', bool(0))         
# True.        
print('bool(-1):', bool(1), end='\n\n') 

# 0.        
print('int(False): ', int(False))       
# 53.        
print('int("+53"): ', int('+53'))            
# -7.        
print('int(-7.33): ', int(-7.33), end='\n\n')        

# 1.0.        
print('float(True): ', float(True))          
# -7.33.        
print('float("-7.33"): ', float('-7.33'), end='\n\n')    

# True.        
print('str(True):', str(True))          
# -7.33.        
print('str(-7.33):', str(-7.33))        
# [0.5, 1,5].        
print('str([0.5, 1,5]):', str([0.5, 1,5]))                
# {'one', 'two'}.        
print("str({'one', 'two'}):", str({'one', 'two'}), end='\n\n')                 
   
# ('a', 'b', 'c').        
print("tuple('abc'):", tuple('abc'))         
# (1, 2, 3).        
print('tuple([1, 2, 3]):', tuple([1, 2, 3]), end='\n\n')      
    
# ['a', 'b', 'c'].        
print("list('abc'):", list('abc'))         
# [1, 2, 3].        
print('list((1, 2, 3)):', list((1, 2, 3)), end='\n\n')    

# {1: 'a', 2: 'b'}.        
print("dict([[1, 'a'], (2, 'b')]):", dict([[1, 'a'], (2, 'b')])) 
bool(0): False
bool(-1): True

int(False):  0
int("+53"):  53
int(-7.33):  -7

float(True):  1.0
float("-7.33"):  -7.33

str(True): True
str(-7.33): -7.33
str([0.5, 1,5]): [0.5, 1, 5]
str({'one', 'two'}): {'two', 'one'}

tuple('abc'): ('a', 'b', 'c')
tuple([1, 2, 3]): (1, 2, 3)

list('abc'): ['a', 'b', 'c']
list((1, 2, 3)): [1, 2, 3]

dict([[1, 'a'], (2, 'b')]): {1: 'a', 2: 'b'}











	





 

Код Результат pythonCodes
# Порядок использования операторов в Пайтоне.  

# Теперь a==19, т.к. приоритет оператора * выше, чем у +.
a = 5 + 7*2     
print('5 + 7*2 ->', a)

# Теперь b==24, т.к. порядок был указан при помощи скобок.
b = (5 + 7)*2   
print('(5 + 7)*2 ->', b, end='\n\n')

c = 2
# Вернет True, т.к. согласно принятому порядку 
# это тоже самое, что и a < b and b > c. 
print(a < b > c)   
# Вернет False, т.к. скобки явно указывают порядок выполнения.
print('a < (b > c) ->', a < (b > c), end='\n\n')  
        
# Согласно принятому порядку это тоже самое, что и c = (a = b).
# А вот использование инструкции c = a += b вызовет ошибку.
c = a = b     
 
# Теперь d == -8, т.к. операторы - и - имеют равный приоритет и 
# левую ассоциативность, поэтому 5 - 6 - 7 == (5 - 6) - 7. 
d = 5 - 6 - 7     
print('5 - 6 - 7 ->', d, end='\n\n')
 
# Теперь d == 1, т.к. (0 and 0 or 1) == (0 and 0) or 1. 
d = 0 and 0 or 1     
print('0 and 0 or 1 ->', d)         
  
# Теперь d == 0, т.к. операция в скобках выполняется первой. 
d = 0 and (0 or 1)     
print('0 and (0 or 1) ->', d) 
5 + 7*2 -> 19
(5 + 7)*2 -> 24

True
a < (b > c) -> False

5 - 6 - 7 -> -8

0 and 0 or 1 -> 1
0 and (1 or 0) -> 0
			





















 

Код Результат pythonCodes
# Инструкция присваивания имеет несколько вариаций.

# Каноническая форма присваивания.  
a = 5 + 0.3
# Выведет 5.3.
print(a, end='\n\n')

# Комбинированная форма присваивания.
a += 6   
# Теперь a == 9, что равнозначно a = a + 6.
print('a += 6 ->', a, end='\n\n')       

# Позиционное присваивание.                
b, c = 3, 5   
# Выведет b == 3, c == 5.
print('b ==', b, ', c ==', c, end='\n\n')    
    
# Присв-ние 1-го значения группе переменных.     
x = y = z = 'Ok'  
# Опять же выведет x == 'Ok', y == 'Ok', z == 'Ok'.
print('x ==', x, ', y ==', y, ', z ==', z) 
5.3

a += 6 -> 11.3

b == 3 , c == 5

x == Ok , y == Ok , z == Ok
			












 

Код Результат pythonCodes
# Еще пример цикла for.   

# Формируем список.
li = [2, 5, 9, 4]
    
# Задаем начальную сумму.
sum = 0

# Запускаем цикл по элементам списка.
for elem in li:
    
    # Если сумма чисел меньше 8,
    if sum < 8:
        # наращиваем ее.    
        sum += elem
        # Выводим для наглядности на экран.
        print(sum)
    # Иначе
    else:    
        # выводим предупреждение и
        print("Превышен лимит суммы эл-тов!")                 
        # прерываем цикл.
        break
        
# Если цикл не был прерван.
else:
    # Выводим итоговое сообщение.
    print("Сумма эл-тов равна:", sum)
	
# Выводим сообщение о завершении проверки.
print("Проверка списка завершена!") 
2
7
16
Превышен лимит суммы эл-тов!
Проверка списка завершена!
			
























 

Код Результат pythonCodes
# Тоже самое, но с циклом while.  

# Формируем список.
li = [2, 5, 9, 4]
    
# Задаем начальную сумму.
sum = 0

# Устанавливаем счетчик итераций.
k = 0
# Запускаем цикл по элементам списка.
while k <= len(li):
    
    # Если сумма чисел меньше 8,
    if sum < 8:
        # наращиваем ее.    
        sum += li[k]
        # Отслеживаем показания счетчика и суммы.
        print(k, ':', sum)                
        # Счетчик увеличиваем на 1.
        k += 1
    # Иначе
    else:    
        # выводим предупреждение и
        print("Превышен лимит суммы эл-тов!")                 
        # прерываем цикл.
        break
        
# Если цикл не был прерван.
else:
    # Выводим итоговое сообщение.
    print("Сумма эл-тов равна:", sum)
    
# Выводим сообщение о завершении проверки.
print("Проверка списка завершена!") 
0 : 2
1 : 7
2 : 16
Превышен лимит суммы эл-тов!
Проверка списка завершена!
			





























 

Код Результат pythonCodes
# Еще один пример цикла while.  

# Устанавливаем счетчик.
k = 1

# Запускаем бесконечный цикл.
while True:
    
    # Выводим номер итерации.
    print(k, end=' ')               
    # Счетчик увеличиваем на 1.
    k += 1
                
    # Имитируем условную часть цикла do/while.
    if k > 5: break 
1 2 3 4 5 













 

Код Результат pythonCodes
# Инструкции break и continue в цикле for.  

# Допустим, что имеется список чисел от 1 до 20.
li = list(range(1, 21))

# Запускаем цикл по элементам списка.
for k in li:
    
    # Задаем условие прерывания цикла.
    if k > 10: 
        # Прерываем цикл и идем дальше.
        break            
                
    # Отсеиваем четные числа.
    if k%2 == 0: 
        # Счетчик обязательно увеличиваем.
        k += 1
        # Пропускаем дальнейшие инструкции
        # и возвращаемся в заголовок цикла.
        continue
    
    # Выводим нечетные числа на экран.
    print(k, end=' ')               
    # Счетчик увеличиваем на 1.
    k += 1                        
      
# Инструкция после цикла.
print('\nВывод нечетных чисел окончен!') 
1 3 5 7 9 
Вывод нечетных чисел окончен!
			
























 

Код Результат pythonCodes
# Инструкции break и continue в цикле while.  

# Устанавливаем счетчик.
k = 1

# Запускаем бесконечный цикл.
while True:
    
    # Задаем условие прерывания цикла.
    if k > 10: 
        # Прерываем цикл и идем дальше.
        break            
                
    # Отсеиваем четные числа.
    if k%2 == 0: 
        # Счетчик обязательно увеличиваем.
        k += 1
        # Пропускаем дальнейшие инструкции
        # и возвращаемся в заголовок цикла.
        continue
    
    # Выводим нечетные числа на экран.
    print(k, end=' ')               
    # Счетчик увеличиваем на 1.
    k += 1                        
      
# Инструкция после цикла.
print('\nВывод нечетных чисел окончен!') 
1 3 5 7 9 
Вывод нечетных чисел окончен!
			
























 

Код Результат pythonCodes
# Создание и вызов функций в Python.  

# Функция определяется один раз.
def pow_func(x, y):
    # Возводим x в степень y.
    p = x**y
    # Возвращаем результат вызывающей программе.
    return p

# После создания функцию можно вызывать.
res_1 = pow_func(3, 3)
# Получим 27, т.е. 3 в кубе.
print('pow_func(3, 3) ->', res_1, end='\n\n')

# При этом вызовы можно осуществлять многократно.
res_2 = pow_func(4, 2)
# Выведет 16, т.е. 4 в квадрате.
print('pow_func(4,2) ->', res_2) 
pow_func(3, 3) -> 27

pow_func(4,2) -> 16
			













 

Код Результат pythonCodes
# Вызывать ф-цию можно только после определения.

# local variable func_1 referenced before assignment.
# func_1()

# Определяем функцию.
def func_1(): print('func_1 определена!')

# Вызов разрешен, т.к. func_1 уже определена.
# Выведет 'func_1 определена!'.
func_1() 
func_1 определена!









 

Код Результат pythonCodes
# Передача аргументов функциям.  

# Определяем и вызываем функцию без аргументов.
def func_1(): print('Ok')
# Выведет 'Ok'.
func_1()

# Функция с тремя позиционными аргументами.
def func_2(a, b, c): return a + b + c
# При вызове должны быть переданы все 3 аргумента.
print(func_2(2, 33, 87)) 
Ok
122
			







 

Код Результат pythonCodes
# Аргументам можно задавать значения по умолчанию.   

# Укажем для одного аргумента значение по умолчанию.
def func(x, y=1): return x/y

# Везде получим 4.0, т.к. 8/2 = 4.0.
print('func(8, 2) ->', func(8, 2))        
# При вызове можно указывать имена.
print('func(x=8, y=2) ->', func(x=8, y=2))       
# Но первыми нужно указывать аргументы без имени.
print('func(8, y=2) ->', func(8, y=2), end='\n\n')        

# Аргумент со значением по умолчанию можно не указывать.
# Везде получим 2.0, т.к. 2/1 = 2.0.
print('func(2) ->', func(2))         
print('func(x=2) ->', func(x=2)) 
func(8, 2) -> 4.0
func(x=8, y=2) -> 4.0
func(8, y=2) -> 4.0

func(2) -> 2.0
func(x=2) -> 2.0

			







 

Код Результат pythonCodes
# Локальные и глобальные переменные.   

# Инициализируем глобальные переменные.
y = x = 0
# Выведет 0 0.
print(x, y, end='\n\n') 

# Объявляем функцию.
def func_1():
    # Будем использовать глобальную переменную.
    global x
    # Изменяем глобальную переменную из функции.
    x = 1
            
    # Это локальная переменная для func_1.
    # Здесь она имеет приоритет над глобальной.
    # Глобальная переменная осталась прежней.
    y = 1
    # Выведет 1. 
    print(y, end='\n\n')

# Вызываем  функцию.
func_1()                
 
# Выведет 1 0.
print(x, y)  
0 0

1

1 0
			



















 

Код Результат pythonCodes
# Создание классов и объектов.    

# Определяем обычный класс (не наследует других классов).
class Person: 
            
    # Определяем 1-й метод (self - текущий экземпляр).
    def set_name(self, name):
        # Создаем атрибут данных экземпляра.    
        self.name = name               
    
    # Определяем 2-й метод экземпляров.
    def get_name(self):
        # Используем атрибут данных экземпляра.    
        return self.name                

# Создаем 1-й экземпляр класса. 
person_1 =  Person()
# Устанавливаем имя сотрудника. 
person_1.set_name('Ольга')    
# Извлекаем имя сотрудника. 
print(person_1.get_name(), end='\n\n')

# Создаем 2-й экземпляр класса. 
person_2 =  Person()
# Устанавливаем имя сотрудника. 
person_2.set_name('Света')    
# Извлекаем имя сотрудника. 
print(person_2.get_name()) 
Ольга

Света
			























 

Код Результат pythonCodes
# Инструкция import.    

# Импортируем два модуля, используя по одной инструкции
# в каждой строке, опуская расширения файлов модулей.
import math
import random        
# Импортировать сразу два модуля, перечисляя их 
# через запятую, можно, но не рекомендуется PEP8.
# import math, random

# Теперь доступ к переменным в модулях открыт:
# они доступны нам в виде атрибутов объектов модулей.
a = math.pi
b = random.randint(1, 10)        
        
# Выводим случайное произведение на экран.
print(a*b) 
6.283185307179586
			














 

Код Результат pythonCodes
# Используем короткие псевдонимы.
import math as m
import random as rnd       
# Через запятую не рекомендуется PEP8.
# import math as m, random as rnd

# Теперь модули доступны по их псевдонимам.
a = m.pi
b = rnd.randint(1, 10)        

# А имя math осталось свободным.
math = 5

# Выводим случайное произведение на экран.
print(math*a*b) 
125.66370614359172
			












 

Код Результат pythonCodes
# Используем для импорта инструкцию from.   

# Импортируем из модуля все имена.
from random import *
# Импортируем из модуля лишь одно имя.
from importlib import reload
# Импортируем только указанные имена, используя для 
# некоторых из них псевдонимы (PEP8 не возражает).
from math import degrees as dg, pi, factorial as fctl
        
# Импортированные инструкцией from имена могут 
# использоваться без указания имен их модулей.
# Теперь просто pi вместо math.pi.
print('pi:', pi)
# fctl(5) вместо math.factorial(5).
print('fctl(5):', fctl(5))
# randint(1, 10) вместо random.randint(1, 10).
print('randint(1, 10):', randint(1, 10))
pi: 3.141592653589793
fctl(5): 120
randint(1, 10): 9