Skip to content
36 changes: 33 additions & 3 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,41 @@

# Задача-1: Дано произвольное целое число, вывести поочередно цифры исходного числа
__author__ = 'Пыпин Андрей Сергеевич.'

# Задача-1: Дано произвольное целое число (число заранее неизвестно).
# Вывести поочередно цифры исходного числа (порядок вывода цифр неважен).
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании решите задачу с применением цикла for.

# код пишем тут...

m = int(input('Введите число'))
i = 0
while i <= m:
print(i)
i +=1


# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
# Не нужно решать задачу так: print("a = ", b, "b = ", a) - это неправильное решение!
# Подсказка:
# * постарайтесь сделать решение через дополнительную переменную
# или через арифметические действия
# Не нужно решать задачу так:
# print("a = ", b, "b = ", a) - это неправильное решение!
a = int(input('Введите число'))
b = int(input('Введите число'))
buf = a
a = b
b = buf
print(a, b)


# Задача-3: Запросите у пользователя его возраст. Если ему есть 18 лет, выведите: "Доступ разрешен",
# Задача-3: Запросите у пользователя его возраст.
# Если ему есть 18 лет, выведите: "Доступ разрешен",
# иначе "Извините, пользование данным ресурсом только с 18 лет"
y = int(input('Сколько вам лет?'))
if y >= 18:
print('Доступ разрешен')
else:
print('Извините, пользование данным ресурсом только с 18 лет')
9 changes: 8 additions & 1 deletion lesson01/home_work/hw01_hard.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@

__author__ = 'Пыпин Андрей Сергеевич'

# Задание-1:
# Ваня набрал несколько операций в интерпретаторе и получал результаты:
# Код: a == a**2
Expand All @@ -6,4 +9,8 @@
# Результат: True
# Код: a > 999999
# Результат: True
# Вопрос: Чему была равна переменная a, если точно известно, что её значение не изменялось?
8
# Вопрос: Чему была равна переменная a,
# если точно известно, что её значение не изменялось?

# Подсказка: это значение точно есть ;)
44 changes: 36 additions & 8 deletions lesson01/home_work/hw01_normal.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,44 @@
__author__ = ''

# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа.
# Например, дается x = 58375. Нужно вывести максимальную цифру в данном числе, т.е. 8.
# Подразумевается, что мы не знаем это число заранее. Число приходит в виде целого беззнакового.
__author__ = 'Пыпин Андрей Сергеевич.'

# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа.
# Например, дается x = 58375.
# Нужно вывести максимальную цифру в данном числе, т.е. 8.
# Подразумевается, что мы не знаем это число заранее.
# Число приходит в виде целого беззнакового.
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.
m = 184
ls = []
while m > 10:
ls.append(m % 10)
m //= 10
r = max(ls)
print(r)

# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
# Решите задачу, используя только две переменные.


# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида ax2 + bx + c = 0.
# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math
# Подсказки:
# * постарайтесь сделать решение через действия над числами;
# * при желании и понимании воспользуйтесь синтаксисом кортежей Python.
i = int(input('Введите число'))
y = int(input('Введите число'))
i = i + y
y = i - y
i = i - y
print(i, y)
# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида
# ax² + bx + c = 0.
# Коэффициенты уравнения вводятся пользователем.
# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math:
# import math
# math.sqrt(4) - вычисляет корень числа 4
import math
a = int(input('Введите число'))
b = int(input('Введите число'))
x = int(input('Введите число'))
c = int(input('Введите число'))
g = a*x**2 + (b*x) + c
print(math.sqrt(g))
31 changes: 27 additions & 4 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Задача-1:
# Дан список фруктов. Напишите программу, выводящую фрукты в виде нумерованного списка, выровненного по правой стороне
# Дан список фруктов.
# Напишите программу, выводящую фрукты в виде нумерованного списка,
# выровненного по правой стороне.
empty_list = []
my_list = ["яблоко", "банан", "киви", "арбуз"]
for index, value in enumerate(my_list, 1):
print("{}. {:>10}".format(index, value))


# Пример:
# Дано: ["яблоко", "банан", "киви", "арбуз"]
# Вывод:
Expand All @@ -8,11 +16,26 @@
# 3. киви
# 4. арбуз

# Подсказка: использует метод .format()
# Подсказка: воспользоваться методом .format()


# Задача-2:
# Даны два произвольные списка. Удалите из первого списка элементы, присутствующие во втором списке.
# Даны два произвольные списка.
# Удалите из первого списка элементы, присутствующие во втором списке.

list_1 = [1, 3, 5, 8, 9]
list_2 = [1, 7, 4, 15, 9]
list_1.pop(0)
list_1.pop(3)
list_2.pop(0)
list_2.pop(3)
print(list_1, list_2)

# Задача-3:
# Дан произвольный список из целых чисел. Получите НОВЫЙ список из элементов исходного, выполнив следующие условия:
# Дан произвольный список из целых чисел.
# Получите НОВЫЙ список из элементов исходного, выполнив следующие условия:
# если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два.
a = [12, 15, 40, 25]
b = [12/2, 15*2, 40/2, 25*2]

print(a, b)
28 changes: 18 additions & 10 deletions lesson02/home_work/hw02_hard.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
# Задание-1: уравнение прямой вида y = kx + b задано ввиде строки.
# Определить координату y точки с заданной координатой x
# Задание-1: уравнение прямой вида y = kx + b задано в виде строки.
# Определить координату y точки с заданной координатой x.

equation = 'y = -12x + 11111140.2121'
x = 2.5
# вычислите и выведите y

# Задание-2: Дата задана в виде строки формата 'dd.mm.yyyy'. Проверить, корректно ли введена дата.

# Задание-2: Дата задана в виде строки формата 'dd.mm.yyyy'.
# Проверить, корректно ли введена дата.
# Условия корректности:
# 1. День должен приводиться к целому числу в диапазоне от 1 до 30(31) (в зависимости от месяца, февраль не учитываем)
# 1. День должен приводиться к целому числу в диапазоне от 1 до 30(31)
# (в зависимости от месяца, февраль не учитываем)
# 2. Месяц должен приводиться к целому числу в диапазоне от 1 до 12
# 3. Год должен приводиться к целому положительному числу в диапазоне от 1 до 9999
# 4. Длина исходной строки для частей должна быть в соответствии с форматом (т.е. 2 - для дня, 2- месяц, 4 -год)
# 4. Длина исходной строки для частей должна быть в соответствии с форматом
# (т.е. 2 символа для дня, 2 - для месяца, 4 - для года)

# Пример корректной даты
date = '01.11.1985'
Expand All @@ -20,11 +24,14 @@
date = '1.12.1001'
date = '-2.10.3001'

# Задание-3: "Перевернутая башня" (Задача олимпиадного уровня)

# Задание-3: "Перевёрнутая башня" (Задача олимпиадного уровня)
#
# Вавилонцы решили построить удивительную башню — расширяющуюся к верху и содержащую бесконечное число этажей и комнат.
# Она устроена следующим образом — на первом этаже одна комната, затем идет два этажа,
# на каждом из которых по две комнаты, затем идёт три этажа, на каждом из которых по три комнаты и так далее:
# Вавилонцы решили построить удивительную башню —
# расширяющуюся к верху и содержащую бесконечное число этажей и комнат.
# Она устроена следующим образом — на первом этаже одна комната,
# затем идет два этажа, на каждом из которых по две комнаты,
# затем идёт три этажа, на каждом из которых по три комнаты и так далее:
# ...
# 12 13 14
# 9 10 11
Expand All @@ -33,7 +40,8 @@
# 2 3
# 1
#
# Эту башню решили оборудовать лифтом --- и вот задача: нужно научиться по номеру комнаты определять,
# Эту башню решили оборудовать лифтом --- и вот задача:
# нужно научиться по номеру комнаты определять,
# на каком этаже она находится и какая она по счету слева на этом этаже.
#
# Входные данные: В первой строчке задан номер комнаты N, 1 ≤ N ≤ 2 000 000 000.
Expand Down
143 changes: 134 additions & 9 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,142 @@
# Задача-1:
# Дан список, заполненный произвольными целыми числами, получите новый список, элементами которого будут
# квадратные корни элементов исходного списка, но только если результаты извлечения корня не имеют десятичной части и
# Дан список, заполненный произвольными целыми числами, получите новый список,
# элементами которого будут квадратные корни элементов исходного списка,
# но только если результаты извлечения корня не имеют десятичной части и
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]

import math
import random
l = [2, -5, 8, 9, -25, 25, 4]
new = []
for x in l:
if x > 0:
y = math.sqrt(x)
if y % int(y) == 0:
new.append(y)
print(new)
# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013.
# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года.
# Склонением пренебречь (2000 года, 2010 года)
s = '02.11.2013'
a = s.split('.')
day = a[0]
month = a[1]
year = a[2]
text = 'года'

if day == '01':
day = 'первое'
elif day == '02':
day = 'второе'
elif day == '03':
day = 'третье'
elif day == '04':
day = 'четвертое'
elif day == '05':
day = 'пятое'
elif day == '06':
day = 'шестое'
elif day == '07':
day = 'седьмое'
elif day == '08':
day = 'восьмое'
elif day == '09':
day = 'девятое'
elif day == '10':
day = 'десятое'
elif day == '11':
day = 'одиннадцатое'
elif day == '12':
day = 'двенадцатое'
elif day == '13':
day = 'тринадцатое'
elif day == '14':
day = 'четырнадцатое'
elif day == '15':
day = 'пятнадцатое'
elif day == '16':
day = 'шестнадцатое'
elif day == '17':
day = 'семнадцатое'
elif day == '18':
day = 'восемнадцатое'
elif day == '19':
day = 'девятьнадцатое'
elif day == '20':
day = 'дцадцатое'
elif day == '21':
day = 'двадцать первое'
elif day == '22':
day = 'двадцать второе'
elif day == '23':
day = 'двадцать третье'
elif day == '24':
day = 'двадцать чертвертое'
elif day == '25':
day = 'двадцать пятое'
elif day == '26':
day = 'двадцать шестое'
elif day == '27':
day = 'двадцать седьмое'
elif day == '28':
day = 'двадцать восьмое'
elif day == '29':
day = 'двадцать девятое'
elif day == '30':
day = 'тридцатое'
elif day == '31':
day = 'тридцать первое'

if month == '01':
month = 'января'
elif month == '02':
month = 'февраля'
elif month == '03':
month = 'марта'
elif month == '04':
month = 'апреля'
elif month == '05':
month = 'мая'
elif month == '06':
month = 'июня'
elif month == '07':
month = 'июля'
elif month == '08':
month = 'августа'
elif month == '09':
month = 'сентября'
elif month == '10':
month = 'октября'
elif month == '11':
month = 'ноября'
elif month == '12':
month = 'декабря'


print('{} {} {} {}'.format(day, month, year, text))

# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами
# в диапазоне от -100 до 100. В списке должно быть n - элементов.
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random
l = []
n = 50
count = 0
while count < 50:
l.append(random.randint(-100, 100))
count += 1
print(l)

# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами в диапазоне от -100 до 100
# В списке должно быть n - элементов
# Подсказка: для получения случайного числа используйте функцию randint() модуля random
# Задача-4: Дан список, заполненный произвольными целыми числами.
# Получите новый список, элементами которого будут:
# а) неповторяющиеся элементы исходного списка:
# например, lst = [1, 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 2, 4, 5, 6]
# б) элементы исходного списка, которые не имеют повторений:
# например, lst = [1 , 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 4, 6]
lst = [1, 2, 4, 5, 6, 2, 5, 2]
lst1 = set(lst)
lst1 = list(lst1)
print(lst1)

# Задача-4: Дан список, заполненный произвольными целыми числами
# Получите новый список, элементами которого будут только уникальные элементы исходного
# Например, lst = [1,2,4,5,6,2,5,2], нужно получить lst2 = [1,4,6]
lst2 = [x for x in lst if not lst.count(x) > 1]
print(lst2)
Loading