Skip to content
Open
38 changes: 35 additions & 3 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,43 @@

# Задача-1: Дано произвольное целое число, вывести поочередно цифры исходного числа
__author__ = 'Гобелков Павел Виталевич'

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

# код пишем тут...
number = list(input())
for digit in number:
print(digit)


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

a = input('Введите чило а: ')
b = input('Введите чило b: ')
c = 0
a = c
a = b
b = c
print(a)
print(b)

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

years = input('Укажите свой возраст: ')

if years >= 18:
print("Доступ разрешен")
else:
print('Извините')

11 changes: 10 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,10 @@
# Результат: True
# Код: a > 999999
# Результат: True
# Вопрос: Чему была равна переменная a, если точно известно, что её значение не изменялось?

# Вопрос: Чему была равна переменная a,
# если точно известно, что её значение не изменялось?

a = False

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

__author__ = 'Гобелков Павел Витальевич'

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

number =

a = str(number)
b = tuple(a)
def bubble(array):
for i in range(N-1):
for j in range(N-i-1):
if array[j] > array[j+1]:
buff = array[j]
array[j] = array[j+1]
array[j+1] = buff

bubble(b)
print(b[-1])

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

a = input()
b = input()

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

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

import math

a = int(input('введите а:'))
b = int(input('введите b:'))
c = int(input('введите c:'))
x = 0
x1 = 0
x2 = 0

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

if d > 0:
x1 = (-b+math.sqrt(D))/2*a
x2 = (-b-math.sqrt(D))/2*a
print(x1, x2)
elif d == 0:
x = (-b+math.sqrt(D))/2*a
print(x)
else:
print("Корней нет")




45 changes: 34 additions & 11 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,41 @@
# Задача-1:
# Дан список фруктов. Напишите программу, выводящую фрукты в виде нумерованного списка, выровненного по правой стороне
# Пример:
# Дано: ["яблоко", "банан", "киви", "арбуз"]
# Вывод:
# 1. яблоко
# 2. банан
# 3. киви
# 4. арбуз
# Дан список фруктов.
# Напишите программу, выводящую фрукты в виде нумерованного списка,
# выровненного по правой стороне.


arr = ["яблоко", "банан", "киви", "арбуз"]
c = 0
for i in arr:
c += 1
print(c, '{:>8}'.format(i))

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

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

# Задача-2:
# Даны два произвольные списка. Удалите из первого списка элементы, присутствующие во втором списке.
# Даны два произвольные списка.
# Удалите из первого списка элементы, присутствующие во втором списке.
arr1 = [2, 2, 1, 1, 4, 1, 8, 3]
arr2 = [1, 4, 8]

dif = list(set(arr1) ^ set(arr2))
arr1 = [i for i in arr1 if i in dif ]



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

n_arr = [1, 2, 3, 4, 5, 6, 7, 8]
m_arr = []
for i in n_arr:
if i % 2 == 0:
m_arr.append(i/4)
else:
m_arr.append(i*2)

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

equation = 'y = -12x + 11111140.2121'
x = 2.5
# вычислите и выведите y
k = int(equation[4:7])
b = equation[10:-1]
b = float(b)
y = k*x + b

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

print(y)

# Задание-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 +30,45 @@
date = '1.12.1001'
date = '-2.10.3001'

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

date = input('Введите дату формата дд.мм.гггг: ')

d = date[0:2]
m = date[3:5]
y = date[6:]

if len(date) > 10:
print('Неверный формат')
else:
d = int(d)
m = int(m)
y = int(y)

md = 30

if 9999 < y or y < 1:
print('Неверно указан год')
elif 12 < m or m < 1:
print('Неверно указан месяц')
elif md < d or d < 1:
for i in (1, 3, 5, 7, 8, 10, 12):
if m == i:
md = 31
print('Неверно указан день')
else:
print(date)




# Задание-3: "Перевёрнутая башня" (Задача олимпиадного уровня)
#
# Вавилонцы решили построить удивительную башню — расширяющуюся к верху и содержащую бесконечное число этажей и комнат.
# Она устроена следующим образом — на первом этаже одна комната, затем идет два этажа,
# на каждом из которых по две комнаты, затем идёт три этажа, на каждом из которых по три комнаты и так далее:
# Вавилонцы решили построить удивительную башню —
# расширяющуюся к верху и содержащую бесконечное число этажей и комнат.
# Она устроена следующим образом — на первом этаже одна комната,
# затем идет два этажа, на каждом из которых по две комнаты,
# затем идёт три этажа, на каждом из которых по три комнаты и так далее:
# ...
# 12 13 14
# 9 10 11
Expand All @@ -33,7 +77,8 @@
# 2 3
# 1
#
# Эту башню решили оборудовать лифтом --- и вот задача: нужно научиться по номеру комнаты определять,
# Эту башню решили оборудовать лифтом --- и вот задача:
# нужно научиться по номеру комнаты определять,
# на каком этаже она находится и какая она по счету слева на этом этаже.
#
# Входные данные: В первой строчке задан номер комнаты N, 1 ≤ N ≤ 2 000 000 000.
Expand All @@ -45,4 +90,8 @@
# Выход: 6 2
#
# Вход: 11
# Выход: 5 3
# Выход: 5 3
n = 0
while n != 2000000001:
n +=1

63 changes: 54 additions & 9 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,62 @@
# Задача-1:
# Дан список, заполненный произвольными целыми числами, получите новый список, элементами которого будут
# квадратные корни элементов исходного списка, но только если результаты извлечения корня не имеют десятичной части и
# Дан список, заполненный произвольными целыми числами, получите новый список,
# элементами которого будут квадратные корни элементов исходного списка,
# но только если результаты извлечения корня не имеют десятичной части и
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]
# Пример: Дано:
import math
arr = [2, -5, 8, 9, -25, 25, 4]
n_arr = []


for i in arr:
if i > 0 and (math.sqrt(i) - int(math.sqrt(i))==0):
n_arr.append(i)
print(n_arr)
# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013.
# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года.
# Склонением пренебречь (2000 года, 2010 года)

# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами в диапазоне от -100 до 100
# В списке должно быть n - элементов
# Подсказка: для получения случайного числа используйте функцию randint() модуля random
mn = {'01': 'январь', '02': 'февраль', '03': 'март', '04': 'апрель', '05': 'май', '06': 'июнь', '07': 'июль', '08': 'август', '09': 'сентябрь', '10': 'октябрь', '11': 'ноябрь', '12': 'декабрь'}
day = {'1': "первое", '2': "второе", '3': "третье", '4': "четвертое", '5': "пятое", '6': "шестое", '7': "седьмое", '8': "восьмое", '9': "девятое", '10': "десятое", '11': "одинадцатое", '12': "двенадцатое", '13': "тринандцатое", '14': "четырнадцатое", '15': "пятнадцатое", '16': "шестнадцатое", '17': "семнадцатое", '18': "восемнадцатое", '19': "девятнадцатое", '20': "двадцатое", '21': 'двадцать первое', '22': "двадцать второе", '23': "двадцать третье", '24': "двадцать четвертое", '25': "двадцать пятое", '26': "двадцать шестое", '27': "двадцать седбмое", '28': "двадцать восьмое", '29': "двадцать девятое", '30': "тридцатое", '31': "тридцать первое"}

data = input('Введите дату дд.мм.гггг: ')
i = data.split('.')
print(i)
print('{} {} {}'.format(day[i[0]], mn[i[1]], i[2]))




# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами
# в диапазоне от -100 до 100. В списке должно быть n - элементов.
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random
import random
n = int(input('Введи число n: '))

rand_arr = []
i = 0
while i != n:
rand_arr.append(random.randint(-100, 100))
i += 1

print(rand_arr)
# Задача-4: Дан список, заполненный произвольными целыми числами.
# Получите новый список, элементами которого будут:
# а) неповторяющиеся элементы исходного списка:
lst = [1, 2, 4, 5, 6, 2, 5, 2]

lst2 = list(set(lst))

print(lst2)

# б) элементы исходного списка, которые не имеют повторений:
# например,
lst1 = [1 , 2, 4, 5, 6, 2, 5, 2] #нужно получить lst2 = [1, 4, 6]

lst3 = [i for i in lst1 if lst1.count(i) <2]

print(lst3)


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