Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
2b20b13
brass-mf Aug 17, 2019
5c516de
HW lesson1 easy Афонин СС
brass-mf Aug 17, 2019
5f7c534
HW1 Афонин СС easy+normal
brass-mf Aug 17, 2019
90e1427
hard Афонин СС
brass-mf Aug 17, 2019
4e96ac6
hard Афонин СС
brass-mf Aug 17, 2019
15dac57
c исправленной логикой, через арифметику
brass-mf Aug 18, 2019
2944e66
easy_list
brass-mf Aug 21, 2019
0aba956
easy task2 done
brass-mf Aug 21, 2019
a988a14
easy task3 begin
brass-mf Aug 21, 2019
384645c
easy task3 done
brass-mf Aug 21, 2019
b53d46c
easy task1 done
brass-mf Aug 21, 2019
9b69e04
easy task1 done
brass-mf Aug 21, 2019
6610e6c
easy task1 done
brass-mf Aug 21, 2019
311abb4
normal task1 done
brass-mf Aug 21, 2019
9e6add2
normal task3 done
brass-mf Aug 21, 2019
f3dcd1b
normal task3 done
brass-mf Aug 21, 2019
c144589
normal task4.1 done
brass-mf Aug 21, 2019
27d81c4
normal task4 done
brass-mf Aug 21, 2019
fd85c50
normal task1
brass-mf Aug 21, 2019
0bb9b69
normal done
brass-mf Aug 21, 2019
6675ba4
hard task1 done
brass-mf Aug 21, 2019
5be4c65
hard task1 done
brass-mf Aug 21, 2019
4f3da73
hard task2 done
brass-mf Aug 22, 2019
47f6e0b
3 lesson easy task1 done
brass-mf Aug 24, 2019
66f3669
3 lesson easy task2
brass-mf Aug 24, 2019
767ec56
3 lesson easy done
brass-mf Aug 24, 2019
154aa87
3 lesson normal task1 done
brass-mf Aug 24, 2019
cc78ef7
3 lesson normal task2 done
brass-mf Aug 24, 2019
192a3e4
3 lesson normal task4 done
brass-mf Aug 24, 2019
95315b6
3 lesson hard task2 done
brass-mf Aug 24, 2019
2d3d028
3 lesson normal task3 done
brass-mf Aug 25, 2019
6debf67
3 lesson hard task3 done
brass-mf Aug 25, 2019
50a2974
4 lesson easy task3 done
brass-mf Aug 28, 2019
2ed3d50
4 lesson easy task2 done
brass-mf Aug 28, 2019
6b51948
4 lesson easy task1 done
brass-mf Aug 28, 2019
92f558e
4 lesson normal in progress
brass-mf Aug 28, 2019
a803320
4 lesson hard task1 done
brass-mf Aug 29, 2019
ff8dd52
4 lesson hard task1 done
brass-mf Aug 29, 2019
9c9eae6
4 lesson hard task3 done
brass-mf Aug 29, 2019
7329f51
4 lesson hard task3 done
brass-mf Aug 29, 2019
2e1893c
4 lesson normal task1_2 done
brass-mf Aug 29, 2019
56e260f
4 lesson hard task2 in_progress
brass-mf Aug 29, 2019
0255166
4 lesson hard task2
brass-mf Aug 29, 2019
a7d0280
5 lesson easy task1 done
brass-mf Sep 1, 2019
6f1ba43
5 lesson easy task2 done
brass-mf Sep 1, 2019
4f26290
5 lesson easy task3 done
brass-mf Sep 1, 2019
910d129
5 lesson easy task3 done
brass-mf Sep 1, 2019
71b8d6a
5 lesson easy task3 done
brass-mf Sep 1, 2019
f3b921c
5 lesson easy task3 done
brass-mf Sep 1, 2019
4022341
5 lesson easy task3 done
brass-mf Sep 1, 2019
24ddd90
5 lesson normal done
brass-mf Sep 1, 2019
3428aee
5 lesson hard start
brass-mf Sep 2, 2019
399f81d
5 lesson hard start
brass-mf Sep 2, 2019
5a7a664
5 lesson hard start
brass-mf Sep 2, 2019
ddd3a6f
5 lesson hard start
brass-mf Sep 2, 2019
05d3bb7
5 lesson hard start
brass-mf Sep 2, 2019
1d3decc
5 lesson hard start
brass-mf Sep 2, 2019
3e3205b
5 lesson hard start
brass-mf Sep 2, 2019
6df3c6f
5 lesson hard start
brass-mf Sep 2, 2019
45d934b
5 lesson hard start
brass-mf Sep 2, 2019
b02e2fd
5 lesson hard start
brass-mf Sep 2, 2019
65d7175
5 lesson hard start
brass-mf Sep 2, 2019
1eb01a1
5 lesson hard start
brass-mf Sep 2, 2019
216f7d7
5 lesson hard start
brass-mf Sep 2, 2019
4ac5f75
5 lesson hard start
brass-mf Sep 2, 2019
ae4ecbb
5 lesson hard start
brass-mf Sep 2, 2019
129b30e
5 lesson hard start
brass-mf Sep 2, 2019
0630d86
5 lesson hard start
brass-mf Sep 3, 2019
d845ceb
5 lesson hard start
brass-mf Sep 3, 2019
bdc51f1
5 lesson hard start
brass-mf Sep 3, 2019
2c82137
5 lesson hard start
brass-mf Sep 3, 2019
a8dea1c
5 lesson hard start
brass-mf Sep 3, 2019
4568c13
6 lesson easy start
brass-mf Sep 4, 2019
eccf8ad
6 lesson easy start
brass-mf Sep 4, 2019
8594bb2
lesson 7 done
brass-mf Sep 9, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Афонин Сергей Сергеевич'


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

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

var_input = int(input('Введите число: '))
i = 1
if var_input == 0:
print(var_input)
elif var_input > 0:
while var_input>0:
i = var_input % 10
print(i)
var_input = var_input // 10

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

var1 = input('Введите первое значение ')
var2 = input('Введите второе значение ')
var_temp = var1
var1 = var2
var2 = var_temp
print('Первое: ',var1,' Второе: ', var2)

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

var_age = input('Введите Ваш возраст: ')
if int(var_age)>=18:
print('Доступ разрешен')
else:
print('Извините, пользование данным ресурсом только с 18 лет')
8 changes: 7 additions & 1 deletion lesson01/home_work/hw01_hard.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Афонин Сергей Сергеевич'

# Задание-1:
# Ваня набрал несколько операций в интерпретаторе и получал результаты:
Expand All @@ -14,3 +14,9 @@
# если точно известно, что её значение не изменялось?

# Подсказка: это значение точно есть ;)

Приводим к квадратному уравнению 1*a**2 +(-2)*a + 0 = 0
коэффициенты 1, -2, 0
Подставляем в программу уровня нормал, получаем решение 0, 2
Не соответствуют третьему условию, значит в числах не решается
Предполагаю что ответ бесконечность
35 changes: 34 additions & 1 deletion lesson01/home_work/hw01_normal.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Афонин Сергей Сергеевич'

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

var_input = int(input('Введите целое беззнаковое число: '))
i = 0
max = 0
if var_input == 0:
max = var_input
elif var_input > 0:
while var_input > 0:
i = var_input % 10
if i > max:
max = i
var_input = var_input // 10
print(max)

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

var_user1 = input('Первое значение: ')
var_user2 = input('Второе значение: ')
var_user1, var_user2 = var_user2, var_user1
print ('Первое значение: ', var_user1, 'Второе значение: ', var_user2)

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

const_a = int(input('Введите а: '))
const_b = int(input('Введите b: '))
const_c = int(input('Введите c: '))


var_d = const_b*const_b - 4*const_a*const_c
if var_d > 0:
x1 = (math.sqrt(var_d) - const_b) / (2*const_a)
x2 = (-const_b - math.sqrt(var_d)) / (2*const_a)
print (x1,' ',x2)
elif var_d ==0:
x1 = (-const_b) / 2*const_a
print(x1)
else:
print('Корней нет!')
36 changes: 34 additions & 2 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
__author__ = 'Афонин Сергей Сергеевич'

# Задача-1:
# Дан список фруктов.
# Напишите программу, выводящую фрукты в виде нумерованного списка,
Expand All @@ -12,14 +14,44 @@
# 4. арбуз

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

max_num=0
max_str=0
fruits = ['банан','киви','грейпфрут1111111111111111111111','апельсин']
for idx, item in enumerate(fruits):
if len(str(idx))> max_num:
max_num=len(str(idx))
if len(item)> max_str:
max_str=len(item)
format_fruits = ''
for idx, item in enumerate(fruits):
format_fruits = format_fruits+ str(idx).ljust(max_num+1) + item.rjust(max_str+1) +'\n'
print('--- Задача 1 ---')
print(format_fruits)

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

list1 = list('Произвольный список №1!')
list2 = list('Произволный список №2!')
ltemp = list1[:]
for i in list1:
if i in list2:
ltemp.remove(i)
list1 = ltemp
print('--- Задача 2 ---')
print(list1)

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

lnum1 = [1,2,3,4,5,6]
lnum2 = list()
for i in lnum1:
if i % 2 == 0:
lnum2.append(i / 4)
else:
lnum2.append(i * 2)
print('--- Задача 3 ---')
print(lnum2)
28 changes: 23 additions & 5 deletions lesson02/home_work/hw02_hard.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
__author__ = 'Афонин Сергей Сергеевич'

# Задание-1: уравнение прямой вида y = kx + b задано в виде строки.
# Определить координату y точки с заданной координатой x.

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

list_equation = equation.split()
b = float(list_equation[4])
k = float(list_equation[2][:-1])
y = k*x+b
print('b: ',str(b),'k: ',str(k))
print(str(y))

# Задание-2: Дата задана в виде строки формата 'dd.mm.yyyy'.
# Проверить, корректно ли введена дата.
Expand All @@ -17,12 +25,22 @@
# (т.е. 2 символа для дня, 2 - для месяца, 4 - для года)

# Пример корректной даты
date = '01.11.1985'

date = '-1.12.1985'
str = date.split('.')
print(str)
if len(str[0])!=2 or len(str[1])!=2 or len(str[2])!=4:
print('Неверный формат')
elif int(str[2]) <1 or int(str[2]) >9999:
print ('Неверный год')
elif str[1][0] !='0' and int(str[1]) < 1 or int(str[1]) >12:
print('Неверный месяц')
elif str[0][0] !='0' and int(str[0]) < 1 or int(str[0]) >31:
print('Неверный день')
else: print('Всё OK')
# Примеры некорректных дат
date = '01.22.1001'
date = '1.12.1001'
date = '-2.10.3001'
# date = '01.22.1001'
# date = '1.12.1001'
# date = '-2.10.3001'


# Задание-3: "Перевёрнутая башня" (Задача олимпиадного уровня)
Expand Down
39 changes: 38 additions & 1 deletion lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,45 @@
__author__ = 'Афонин Сергей Сергеевич'

# Задача-1:
# Дан список, заполненный произвольными целыми числами, получите новый список,
# элементами которого будут квадратные корни элементов исходного списка,
# но только если результаты извлечения корня не имеют десятичной части и
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]
import math

lnum1 = [2, -5, 8, 9, -25, 25, 4, -1, -99999, 81]
lnum2 = list()
for i in lnum1:
if i > 0 and math.sqrt(i)*10 % 10 == 0:
lnum2.append(math.sqrt(i))
print('--- Задача 1 ---')
print(lnum2)


# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013.
# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года.
# Склонением пренебречь (2000 года, 2010 года)

date_dict = {'01': 'первое', '02': 'второе', '03': 'третье', '04': 'четвертое', '05': 'пятое', '06': 'шестое', '07': 'седьмое', '08': 'восьмое', '09': 'девятое', '10': 'десятое', '11': 'одиннадцатое', '12': 'двенадцатое', '13': 'тринадцатое', '14': 'четырнадцатое', '15': 'пятнадцатое', '16': 'шестнадцатое', '17': 'семнадцатое', '18': 'восемнадцатое', '19': 'девятнадцатое', '20': 'двадцатое', '21': 'двадцать первое', '22': 'двадцать второе', '23': 'двадцать третье', '24': 'двадцать четвертое', '25': 'двадцать пятое', '26': 'двадцать шестое', '27': 'двадцать седьмое', '28': 'двадцать восьмое', '29': 'двадцать девятое', '30': 'тридцатое', '31': 'тридцать первое'}
month_dict = {'01': 'января', '02': 'февраля', '03': 'марта', '04': 'апреля', '05': 'мая', '06': 'июня', '07': 'июля', '08': 'августа', '09': 'сентября', '10': 'октября', '11': 'ноября', '12': 'декабря'}
print('--- Задача 2 ---')
input_str = input('Введите дату в формате dd.mm.yyyy: ')
print('{} {} {} года'.format(date_dict[input_str[0:2]],month_dict[input_str[3:5]],input_str[6:10]))

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

print('--- Задача 3 ---')
n = int(input('Введите n: '))
i=0
random_list=list()
while i<n:
random_list.append(random.randint(-100,100))
i+=1
print(random_list)


# Задача-4: Дан список, заполненный произвольными целыми числами.
Expand All @@ -23,3 +48,15 @@
# например, 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]
ltemp = list()
ldel = list()
for i in lst:
if i not in ltemp:
ltemp.append(i)
else:
ldel.append(i)
print('--- Задача 4 ---')
print(ltemp)
print(set(ltemp) - set(ldel))
46 changes: 42 additions & 4 deletions lesson03/home_work/hw03_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@
# Для решения задачи не используйте встроенные функции и функции из модуля math.

def my_round(number, ndigits):
pass
result = number*(10**(ndigits*2))//10**ndigits
var_ostatok = number*(10**(ndigits*2))%10**ndigits/(10**(ndigits-1))
if var_ostatok>4:
result = result +1
return(result/(10**(ndigits)))


print(my_round(2.1234567, 5))
print(my_round(2.1234567, 0))
print(my_round(2.1999967, 5))
print(my_round(2.9999967, 5))
print(my_round(0.9999917, 5))
print(my_round(9999917111.000023321, 5))


# Задание-2:
Expand All @@ -20,9 +25,42 @@ def my_round(number, ndigits):
# !!!P.S.: функция не должна НИЧЕГО print'ить

def lucky_ticket(ticket_number):
pass
def get_num_len(number):
'''
:param number: входное число
:return: длина числа
'''
res = 0
while number > 0:
res += 1
number = number // 10
return res

var_len = get_num_len(ticket_number)
if var_len%2==0:
first = ticket_number//10**(var_len/2)
second = ticket_number%10**(var_len/2)
else:
var_len_2 = round(var_len/2+0.4)
first = ticket_number//10**(var_len_2-1)
second = ticket_number%10**(var_len_2)
sum_first = 0
sum_second = 0
while first > 0:
i = first % 10
sum_first = sum_first + i
first = first // 10

while second > 0:
i = second % 10
sum_second = sum_second + i
second = second // 10
if sum_first == sum_second:
return True
else: return False

print(lucky_ticket(123006))
print(lucky_ticket(12321))
print(lucky_ticket(436751))
print(lucky_ticket(111222))
print(lucky_ticket(1))
Loading