Skip to content
51 changes: 50 additions & 1 deletion lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,59 @@

#coding utf-8

menu = input("Выберите подпрограмму. [1] - Задача 1, [2] - задача 2, [3] - задача 3")


# Задача-1: Дано произвольное целое число, вывести поочередно цифры исходного числа

# код пишем тут...
if menu == "1": #вход в задачу 1
num = 7650987
num = str(num)
i = 0

while i < len(num):
print(num[i])
i = i + 1

#конец задачи 1

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

elif menu == "2": #Вход в задачу 2
x = input("Введите значение Х --- ")
y = input("Введите значение Y --- ")

temp = x
x = y
y = temp

print("X= ", x, "Y= ", y)



#Конец задачи 2

# Задача-3: Запросите у пользователя год рождения. Если ему есть 18 лет, выведите: "Доступ разрешени",
# иначе "Извините, пользование данным ресурсом только с 18 лет"

elif menu == "3": #Вход в задачу 3
userAge = input("Сколько вам лет? (вводите значение цифрами)")

if userAge.isdecimal() == True:

if int(userAge) >= 18:
print("Доступ разрешен. Добро пожаловать!")

else:
print("В доступе отказано, вам необходимо подрасти")

else:
print("Введено недопустимое значение")

#Конец задачи 3


else: #Если введено не то что ожидалось
print("Введено недопустимое значение")
8 changes: 8 additions & 0 deletions lesson01/home_work/hw01_hard.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#coding utf-8

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

a = float('inf')

print(a == a**2)
print(a == a*2)
print(a > 9999999999)
79 changes: 78 additions & 1 deletion lesson01/home_work/hw01_normal.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,88 @@
# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа
#coding utf-8

import math
menu = input("Выберите подпрограмму. [1] - Задача 1, [2] - задача 2, [3] - задача 3")


#Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа

if menu == "1": #вход в задачу 1
num = 7650987
num = str(num)
maxNum = 0;
i = 0

while i < len(num):
print(num[i])
if maxNum < int(num[i]):
maxNum = int(num[i])
i = i + 1
print("MAX число: ", maxNum)
#конец задачи 1

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

elif menu == "2": #Вход в задачу 2
x = input("Введите значение Х --- ")
y = input("Введите значение Y --- ")

#с строками это не прокатит
#y = x + y
#x = y - x
#y = y - x

#можно так

y = x + y
x = y[len(x):len(y)]
y = y[:-len(x)]


#А можно и так
#x,y = y,x

print("X= ", x, "Y= ", y)


# в CS50 был алгоритм через побитовый ^, но я не додумался как его применить к строкам


#Конец задачи 2

# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида ax2 + bx + c = 0.
# Для вычисления квадратного корня воспользуйтесь функицй sqrt() молудя math
# import math
# math.sqrt(4) - вычисляет корень числа 4

elif menu == "3": #Вход в задачу 3
#Уже больше 10 лет не видел квадратное уравнение
a = float(input("Введите число а -- "))
b = float(input("Введите чило b -- "))
c = float(input("Введите число c -- "))

D = b**2 - 4*a*c

if D > 0:

x1 = (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)
x2 = (-b - math.sqrt(b**2 - 4*a*c)) / (2*a)

print("X1 = ", x1, " X2 = ", x2)

elif D == 0:

x1 = -(b/(2*a))
print("X1 = X2= ", x1)


else:
print("Нет корней")

#Вроде правильная формула, есть конечно еще формулы на проверку четного B, думаю в программе это не нужно
#Конец задачи 3


else: #Если введено не то что ожидалось
print("Введено недопустимое значение")
76 changes: 76 additions & 0 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@


menu = input("Выберите подпрограмму. [1] - Задача 1, [2] - задача 2, [3] - задача 3")

# Задача-1:
# Дан список фруктов. Напишите программу, выводящую фрукты в виде нумерованного списка выровненного по правой сторне
# Пример:
Expand All @@ -10,9 +14,81 @@

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

if menu == "1":

spisok = ["Яблоко", "Банан", "Киви", "Арбуз", "Груша", "Дыня"]

max_string = 0;

for item in spisok:

if len(item) >= max_string:
max_string = len(item)


for item_spisok in spisok:

num = spisok.index(item_spisok) + 1
formating = "{0:>" + str(max_string) + "}" #а почему не рекомендуется склеивать строки через +?

print(str(num) + ".", formating .format(item_spisok))

#Что-то внутри меня говорит о том что могло быть все проще
#конец задачи 1


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


elif menu == "2":

spisok1 = ["set1", "set2", "set3", "set4", "set3", "set6"]
spisok2 = ["set6", "item1", "set3", "item2", "set3"]

print("список 1: ", spisok1)
print("список 2: ", spisok2)

for item in spisok2:
for item2 in spisok1:
if item == item2:
spisok1.remove(item)
print("удалено: ", item)

# видимо эту задачу надо было решать через множества, но так как у нас произвольные списки и нам нельзя из них делать
# множества ввиду того что в списке может быть повторяющийся эллемент, я решил делать так.






#Конец задачи 2, а мне начинают нравится циклы For в Python :)

# Задача-3:
# Дан произвольный список из целых чисел. Получите НОВЫЙ список из элементов исходного выполнив следующие условия:
# если элемент кратный двум, то разделить его на 4, если не кратен, то умножить на два.

elif menu == "3":

spisok1 = [2, 4, 11, 15, 22, 17, 84, 142]
spisok2 = []

for item in spisok1:
if item % 2 == 0:
spisok2.append(item/4)
else:
spisok2.append(item*2)
print(spisok2)


else:
print("Введено неверное значение")








Loading