From 395c410e3a4b1558d4fc5c666be3d90c47c4c0b2 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 15 Jan 2019 17:07:03 +0300 Subject: [PATCH 01/27] Update hw01_normal.py --- lesson01/home_work/hw01_normal.py | 32 ++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/lesson01/home_work/hw01_normal.py b/lesson01/home_work/hw01_normal.py index 991724e9a..90452d735 100644 --- a/lesson01/home_work/hw01_normal.py +++ b/lesson01/home_work/hw01_normal.py @@ -1,5 +1,5 @@ -__author__ = 'Ваши Ф.И.О.' +__author__ = 'Федькин Илья Геннадьевич' # Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа. # Например, дается x = 58375. @@ -25,3 +25,33 @@ # Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math: # import math # math.sqrt(4) - вычисляет корень числа 4 +import math +# Задача-1 +max = 0 +a = input('Введите целое число: ') +for i in a: + if (int(i)) > max: + max = int(i) +print(max) + +# Задача-2 +a = input('Введите первую переменную: ') +b = input('Введите вторую переменную: ') +a, b = b, a +print('Первая переменная = {0}, Вторая переменная = {1}'.format(a, b)) + +# Задача-3 +print('Дано квадратное уравнение:\n ax**2 + bx + c') +a = float(input('Введите a: ')) +b = float(input('Введите b: ')) +c = float(input('Введите c: ')) +Dis = b**2 - 4*a*c +if Dis > 0: + x1 = (-b + math.sqrt(Dis)) / a*2 + x2 = (-b - math.sqrt(Dis)) / a*2 + print('Корни уравнения:\n', 'x1 = {0} ,\n x2 = {1} ',.format(x1, x2)) +elif Dis == 0: + x1 = (-b + math.sqrt(Dis)) / a*2 + print('Корень уравнения один: ', x1) +else: + print('Нет корней') From 8de2d16fd41a46597a01935ede0e3bda15eb1365 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 15 Jan 2019 17:08:29 +0300 Subject: [PATCH 02/27] Update hw01_normal.py --- lesson01/home_work/hw01_normal.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lesson01/home_work/hw01_normal.py b/lesson01/home_work/hw01_normal.py index 90452d735..61233c4b1 100644 --- a/lesson01/home_work/hw01_normal.py +++ b/lesson01/home_work/hw01_normal.py @@ -25,10 +25,13 @@ # Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math: # import math # math.sqrt(4) - вычисляет корень числа 4 + import math + # Задача-1 -max = 0 + a = input('Введите целое число: ') +max = 0 for i in a: if (int(i)) > max: max = int(i) @@ -49,7 +52,7 @@ if Dis > 0: x1 = (-b + math.sqrt(Dis)) / a*2 x2 = (-b - math.sqrt(Dis)) / a*2 - print('Корни уравнения:\n', 'x1 = {0} ,\n x2 = {1} ',.format(x1, x2)) + print('Корни уравнения:\n', 'x1 = ', x1, '\n x2 = ', x2) elif Dis == 0: x1 = (-b + math.sqrt(Dis)) / a*2 print('Корень уравнения один: ', x1) From 1eec3993ab3ebc0418e1e3b7a34d41fb2f773fa7 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 15 Jan 2019 17:09:55 +0300 Subject: [PATCH 03/27] Update hw01_hard.py --- lesson01/home_work/hw01_hard.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lesson01/home_work/hw01_hard.py b/lesson01/home_work/hw01_hard.py index 7df268664..2e4a859a0 100644 --- a/lesson01/home_work/hw01_hard.py +++ b/lesson01/home_work/hw01_hard.py @@ -1,5 +1,5 @@ -__author__ = 'Ваши Ф.И.О.' +__author__ = 'Федькин Илья Геннадьевич' # Задание-1: # Ваня набрал несколько операций в интерпретаторе и получал результаты: @@ -14,3 +14,6 @@ # если точно известно, что её значение не изменялось? # Подсказка: это значение точно есть ;) + +a = float('inf') + From e93faa0224291f1bd5832a1e687abdfaba3d3432 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 15 Jan 2019 17:15:29 +0300 Subject: [PATCH 04/27] Delete hw01_normal.py --- lesson01/home_work/hw01_normal.py | 60 ------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 lesson01/home_work/hw01_normal.py diff --git a/lesson01/home_work/hw01_normal.py b/lesson01/home_work/hw01_normal.py deleted file mode 100644 index 61233c4b1..000000000 --- a/lesson01/home_work/hw01_normal.py +++ /dev/null @@ -1,60 +0,0 @@ - -__author__ = 'Федькин Илья Геннадьевич' - -# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа. -# Например, дается x = 58375. -# Нужно вывести максимальную цифру в данном числе, т.е. 8. -# Подразумевается, что мы не знаем это число заранее. -# Число приходит в виде целого беззнакового. -# Подсказки: -# * постарайтесь решить задачу с применением арифметики и цикла while; -# * при желании и понимании решите задачу с применением цикла for. - - -# Задача-2: Исходные значения двух переменных запросить у пользователя. -# Поменять значения переменных местами. Вывести новые значения на экран. -# Решите задачу, используя только две переменные. -# Подсказки: -# * постарайтесь сделать решение через действия над числами; -# * при желании и понимании воспользуйтесь синтаксисом кортежей Python. - - -# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида -# ax² + bx + c = 0. -# Коэффициенты уравнения вводятся пользователем. -# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math: -# import math -# math.sqrt(4) - вычисляет корень числа 4 - -import math - -# Задача-1 - -a = input('Введите целое число: ') -max = 0 -for i in a: - if (int(i)) > max: - max = int(i) -print(max) - -# Задача-2 -a = input('Введите первую переменную: ') -b = input('Введите вторую переменную: ') -a, b = b, a -print('Первая переменная = {0}, Вторая переменная = {1}'.format(a, b)) - -# Задача-3 -print('Дано квадратное уравнение:\n ax**2 + bx + c') -a = float(input('Введите a: ')) -b = float(input('Введите b: ')) -c = float(input('Введите c: ')) -Dis = b**2 - 4*a*c -if Dis > 0: - x1 = (-b + math.sqrt(Dis)) / a*2 - x2 = (-b - math.sqrt(Dis)) / a*2 - print('Корни уравнения:\n', 'x1 = ', x1, '\n x2 = ', x2) -elif Dis == 0: - x1 = (-b + math.sqrt(Dis)) / a*2 - print('Корень уравнения один: ', x1) -else: - print('Нет корней') From 31ac657607e812d43e18b5ca8a07f7fef673a1e2 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 15 Jan 2019 17:19:31 +0300 Subject: [PATCH 05/27] Create hw01_normal.py --- lesson01/home_work/hw01_normal.py | 59 +++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 lesson01/home_work/hw01_normal.py diff --git a/lesson01/home_work/hw01_normal.py b/lesson01/home_work/hw01_normal.py new file mode 100644 index 000000000..70bca2a22 --- /dev/null +++ b/lesson01/home_work/hw01_normal.py @@ -0,0 +1,59 @@ +__author__ = 'Федькин Илья Геннадьевич' + +# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа. +# Например, дается x = 58375. +# Нужно вывести максимальную цифру в данном числе, т.е. 8. +# Подразумевается, что мы не знаем это число заранее. +# Число приходит в виде целого беззнакового. +# Подсказки: +# * постарайтесь решить задачу с применением арифметики и цикла while; +# * при желании и понимании решите задачу с применением цикла for. + + +# Задача-2: Исходные значения двух переменных запросить у пользователя. +# Поменять значения переменных местами. Вывести новые значения на экран. +# Решите задачу, используя только две переменные. +# Подсказки: +# * постарайтесь сделать решение через действия над числами; +# * при желании и понимании воспользуйтесь синтаксисом кортежей Python. + + +# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида +# ax² + bx + c = 0. +# Коэффициенты уравнения вводятся пользователем. +# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math: +# import math +# math.sqrt(4) - вычисляет корень числа 4 + +import math + +# Задача-1 + +a = input('Введите целое число: ') +max = 0 +for i in a: + if (int(i)) > max: + max = int(i) +print(max) + +# Задача-2 +a = input('Введите первую переменную: ') +b = input('Введите вторую переменную: ') +a, b = b, a +print('Первая переменная = {0}, Вторая переменная = {1}'.format(a, b)) + +# Задача-3 +print('Дано квадратное уравнение:\n ax**2 + bx + c') +a = float(input('Введите a: ')) +b = float(input('Введите b: ')) +c = float(input('Введите c: ')) +Dis = b**2 - 4*a*c +if Dis > 0: + x1 = (-b + math.sqrt(Dis)) / a*2 + x2 = (-b - math.sqrt(Dis)) / a*2 + print('Корни уравнения:\n', 'x1 = ', x1, '\n x2 = ', x2) +elif Dis == 0: + x1 = (-b + math.sqrt(Dis)) / a*2 + print('Корень уравнения один: ', x1) +else: + print('Нет корней') From 1089c8979c71a7265120886f5fd4036f62e2ec74 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 18 Jan 2019 06:18:11 +0300 Subject: [PATCH 06/27] Update hw02_hard.py --- lesson02/home_work/hw02_hard.py | 66 ++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/lesson02/home_work/hw02_hard.py b/lesson02/home_work/hw02_hard.py index c96843184..8e9886514 100644 --- a/lesson02/home_work/hw02_hard.py +++ b/lesson02/home_work/hw02_hard.py @@ -53,4 +53,68 @@ # Выход: 6 2 # # Вход: 11 -# Выход: 5 3 \ No newline at end of file +# Выход: 5 3 + + +#3 +import math + +max_flat = 2*10**9 +N_Y = True + +start_floor_of_cell = 1 +sum_flats = 0 +cell = 1 +data = [] +position = 0 +remaind = 0 +floor = 0 +max_flat_in_cell = 0 +number = 0 +count=2 + +while sum_flats <= max_flat: + + sum_flats = sum_flats + cell**2 + start_floor_of_cell = start_floor_of_cell + cell - 1 + data[len(data):]=[cell,start_floor_of_cell,sum_flats] + cell= cell+1 + +print(data) + +while N_Y: + number = int(input('Введите номер квартиры от 1 до 2*10^9 : ')) + + + while ((number <= 1)|(number >= 2*10**9)): + print('Ошибка') + number = int(input('Введите номер квартиры от 1 до 2*10^9 : ')) + + while number > max_flat_in_cell: + max_flat_in_cell = data[count] + count = count + 3 + + cell_of_number = data[count-5] + start_floor_of_number = data[count-4] + + floor = start_floor_of_number + (cell_of_number - 1 - ((max_flat_in_cell - number) // cell_of_number)) + remaind = ((max_flat_in_cell - number) % cell_of_number) + + if remaind > 0: + position = cell_of_number - remaind + + else: + position = cell_of_number + + print('На {} этаже {} по счету '.format(floor,position)) + while True: + answer = input('Повторим N \ Y ? : ') + if (answer == 'N')|(answer == 'n'): + N_Y = False + break + elif (answer == 'y')|(answer == 'Y'): + N_Y = True + break + else: + print('Ошибка') + From d3545438d796185c1bcc7886ff32df82f932b6f8 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 18 Jan 2019 12:53:47 +0300 Subject: [PATCH 07/27] Update hw02_hard.py --- lesson02/home_work/hw02_hard.py | 121 +++++++++++++++++++++++++------- 1 file changed, 95 insertions(+), 26 deletions(-) diff --git a/lesson02/home_work/hw02_hard.py b/lesson02/home_work/hw02_hard.py index 8e9886514..48b0b37fb 100644 --- a/lesson02/home_work/hw02_hard.py +++ b/lesson02/home_work/hw02_hard.py @@ -55,66 +55,135 @@ # Вход: 11 # Выход: 5 3 +#1 + +equation = 'y = -12x + 11111140.2121' +x = 2.5 +b = 1 + +equation = equation.split(' ') +print(equation) + +for num in equation: + if num == 'y': + continue + elif num == '=': + continue + elif num == '+': + operation = True + continue + elif num == "-": + operation = False + continue + elif num.find('x') >= 0: + k = num.split('x') + k = k[0] + k = float(k) + else: + b = num + b = float(b) + + +if operation: + function = k*x + b + print('{} = {} * {} + {}'.format(function, k, x, b)) +else: + function = k*x - b + print('{} = {} * {} - {}'.format(function, k, x, b)) + + + +#2 + +date = '01.11.1985' + +month_max_len = 0 +month_name = '' +error = 0 +error_d = 0 +error_y = 0 + +months = [['01','Январь',31],['02','Февраль',28],['03','Март',31],['04','Апрель',30],['05','Май',31],['06','Июнь',30],['07','Июль',31],['08','Август',31],['09','Сентябрь',30],['10','Октябрь',31],['11','Ноябрь',30],['12','Декабрь',31]] + +date = date.split('.') + +for month in months: + if month[0] == date[1]: + A = True + month_max_len = month[2] + month_name = month[1] + break + else: + error = error +1 +if error == 12: + print('Ошибка ввода месяца') + +if int(date[0]) < 1 | int(date[0]) > month_max_len | len(date[0]) != 2: + print('Ошибка ввода дня') + error_d = 1 +elif int(date[2]) < 1 | int(date[2]) > 9999 | len(date[2]) != 4: + print('Ошибка ввода года') + error_y = 1 +elif (error != 12) | (error_y != 1) | (error_d != 1): + print('GOOD') + #3 + import math -max_flat = 2*10**9 -N_Y = True +max_flat = 2 * 10 ** 9 +N_Y = True +data = [] start_floor_of_cell = 1 sum_flats = 0 cell = 1 -data = [] position = 0 -remaind = 0 +remains = 0 floor = 0 max_flat_in_cell = 0 -number = 0 -count=2 +count = 2 while sum_flats <= max_flat: - - sum_flats = sum_flats + cell**2 - start_floor_of_cell = start_floor_of_cell + cell - 1 - data[len(data):]=[cell,start_floor_of_cell,sum_flats] - cell= cell+1 - -print(data) - + sum_flats = sum_flats + cell ** 2 + start_floor_of_cell = start_floor_of_cell + cell - 1 + data[len(data):] = [cell, start_floor_of_cell, sum_flats] + cell = cell + 1 + while N_Y: number = int(input('Введите номер квартиры от 1 до 2*10^9 : ')) - - while ((number <= 1)|(number >= 2*10**9)): + while ((number <= 1) | (number >= 2 * 10 ** 9)): print('Ошибка') number = int(input('Введите номер квартиры от 1 до 2*10^9 : ')) while number > max_flat_in_cell: - max_flat_in_cell = data[count] - count = count + 3 + max_flat_in_cell = data[count] + count = count + 3 - cell_of_number = data[count-5] - start_floor_of_number = data[count-4] + cell_of_number = data[count - 5] + start_floor_of_number = data[count - 4] floor = start_floor_of_number + (cell_of_number - 1 - ((max_flat_in_cell - number) // cell_of_number)) - remaind = ((max_flat_in_cell - number) % cell_of_number) + remains = ((max_flat_in_cell - number) % cell_of_number) - if remaind > 0: - position = cell_of_number - remaind + if remains > 0: + position = cell_of_number - remains else: position = cell_of_number - print('На {} этаже {} по счету '.format(floor,position)) + print('На {} этаже {} по счету слева'.format(floor, position)) while True: answer = input('Повторим N \ Y ? : ') - if (answer == 'N')|(answer == 'n'): + if (answer == 'N') | (answer == 'n'): N_Y = False break - elif (answer == 'y')|(answer == 'Y'): + elif (answer == 'y') | (answer == 'Y'): N_Y = True break else: print('Ошибка') + From b6248da36ca42e11fdb24cd92cc21981edabf8e1 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 22 Jan 2019 07:40:27 +0300 Subject: [PATCH 08/27] Update hw03_hard.py --- lesson03/home_work/hw03_hard.py | 141 ++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index a8c7f668a..4f69fd49a 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -17,6 +17,8 @@ # то их ЗП уменьшается пропорционально, а за заждый час переработки # они получают удвоенную ЗП, пропорциональную норме. # Кол-во часов, которые были отработаны, указаны в файле "data/hours_of" +#2 + # Задание-3: @@ -31,3 +33,142 @@ # Подсказка: # Чтобы получить список больших букв русского алфавита: # print(list(map(chr, range(ord('А'), ord('Я')+1)))) + +#1 + + +#2 +import os + +DIR = 'data' +FILE = 'workers' +FILE_2 = 'hours_of' + +def read_data(): + + f = open(os.path.join(DIR, FILE), 'r', encoding='UTF-8') + + while read(f): + + continue + +def read(f): + + readed = f.readline().splitlines() + + if readed == []: + + return False + + readed = readed[0].split() + print(readed) + find(readed) + + return True + +def find(file): + + FILE_2 = 'hours_of' + f = open(os.path.join(DIR, FILE_2), 'r', encoding='UTF-8') + print(f.read(1)) + + while compare(file,f): + + continue + +def compare(file,f): + + z = (f.readline().splitlines()[0].split()) + + if (z[0] == file[0]) & (z[1]==file[1]): + + new_file(z,file) + + else: + + return True + +def new_file(z,file): + + with open(os.path.join( DIR, 'new'), 'a', encoding='UTF-8') as f: + f.write(' '.join(file)) + f.write(' ' + z[2]) + + if file[0] == 'Имя': + + f.write(' Зарплата\n') + + else: + + f.write(' ' + (new_add(z,file))) + f.write('\n') + +def new_add(z,file): + + if file[4] >= z[2]: + + tt = (int(file[4]) / int(z[2])) * int(file[2]) + tt = round(tt, 2) + return str(tt) + + else: + + tt = (int(z[2]) - int(file[4]))/int(file[4])*int(file[2])+int(file[2]) + tt = round(tt, 2) + return str(tt) + + + + + +read_data() + +#3 + +import os + +DIR = 'data' +FILE = 'fruits.txt' +Alhabet = (list(map(chr, range(ord('А'), ord('Я')+1)))) + + + + +def write_fruit(fruit,letter): + + FILE = 'fruit_' + letter + DIR = 'fruits' + type = 'a' + + with open(os.path.join( DIR, FILE), type, encoding='UTF-8') as f: + + f.write(fruit + '\n') + +def read_fruit(f, i): + + readed = f.readline().splitlines() + + if readed == []: + + f.close() + return False + + elif readed[0] == '': + return True + + + elif list(readed[0])[0] == i: + + write_fruit(readed[0], i) + return True + else: + + return True + +for i in Alhabet: + + f = open(os.path.join(DIR, FILE), 'r', encoding='UTF-8') + + while read_fruit(f, i): + + continue From fb8126eff85b822ebfa778451d2b9c2f2068b144 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 22 Jan 2019 13:16:16 +0300 Subject: [PATCH 09/27] Update hw03_hard.py --- lesson03/home_work/hw03_hard.py | 121 ++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index 4f69fd49a..a4cfdcd5b 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -35,6 +35,127 @@ # print(list(map(chr, range(ord('А'), ord('Я')+1)))) #1 +from fractions import Fraction + +#arr = '-2 3/4 - 2 5/42' +arr = '-2 -1/2 - -5 -2/6' + + +def find(): + + count = 0 + + for i in arr: + + if i == '+': + + summ = True + arr.pop(count) + return(count,summ) + + elif i == '-': + + summ = False + arr.pop(count) + return (count,summ) + + count += 1 + + + +def sum(summ,x,y): + + if summ: + + if y ==2: + + a = Fraction(arr[0]) + b = Fraction(arr[1]) + + if y == 3: + + a = Fraction(arr[0]) + b = Fraction(arr[1]) + c = Fraction(arr[2]) + b = b + c + return a + b + + if y == 4: + + a = Fraction(arr[0]) + b = Fraction(arr[1]) + c = Fraction(arr[2]) + d = Fraction(arr[3]) + a = a + b + b = c + d + return a + b + + if summ == False: + + if y ==2: + + a = Fraction(arr[0]) + b = Fraction(arr[1]) + return a + b + + if y == 3 & x == 1: + + a = Fraction(arr[0]) + b = Fraction(arr[1]) + c = Fraction(arr[2]) + b = -b + c + return a + b + + if y == 3 & x == 2 + + a = Fraction(arr[0]) + b = Fraction(arr[1]) + c = Fraction(arr[2]) + b = b - c + return a + b + + if y == 4: + + a = Fraction(arr[0]) + b = Fraction(arr[1]) + c = Fraction(arr[2]) + d = Fraction(arr[3]) + a = a + b + b = -c + d + return a + b + +def q(str): + + str = str.split('/') + a = int(str[0]) + b = int(str[1] + + if a > b + + unit = a // b + part = a % b + print ('{} {}/{}'.format(unit,part,b) + + else: + + print('{}/{}'.format(a, b)) + + + +arr = arr.split(' ') +x , summ = find() + +result = (str(sum(summ,x,len(arr)))) + +if result == '0': + + print('0') + +else: + + q(result) + + #2 From c50db3672c7650dec15a7cdf97521606ceff7ca3 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 22 Jan 2019 18:19:33 +0300 Subject: [PATCH 10/27] Update hw03_hard.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit поправил всё кроме зарплаты --- lesson03/home_work/hw03_hard.py | 79 ++++++++++++++++----------------- 1 file changed, 38 insertions(+), 41 deletions(-) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index a4cfdcd5b..10ded463e 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -35,6 +35,7 @@ # print(list(map(chr, range(ord('А'), ord('Я')+1)))) #1 + from fractions import Fraction #arr = '-2 3/4 - 2 5/42' @@ -44,44 +45,44 @@ def find(): count = 0 - + for i in arr: - + if i == '+': - + summ = True arr.pop(count) return(count,summ) - + elif i == '-': - + summ = False arr.pop(count) return (count,summ) - + count += 1 def sum(summ,x,y): - + if summ: - + if y ==2: - + a = Fraction(arr[0]) b = Fraction(arr[1]) - + if y == 3: - + a = Fraction(arr[0]) b = Fraction(arr[1]) c = Fraction(arr[2]) b = b + c return a + b - + if y == 4: - + a = Fraction(arr[0]) b = Fraction(arr[1]) c = Fraction(arr[2]) @@ -89,33 +90,33 @@ def sum(summ,x,y): a = a + b b = c + d return a + b - + if summ == False: - + if y ==2: - + a = Fraction(arr[0]) b = Fraction(arr[1]) return a + b - + if y == 3 & x == 1: - + a = Fraction(arr[0]) b = Fraction(arr[1]) c = Fraction(arr[2]) b = -b + c return a + b - - if y == 3 & x == 2 - + + if y == 3 & x == 2: + a = Fraction(arr[0]) b = Fraction(arr[1]) c = Fraction(arr[2]) b = b - c return a + b - + if y == 4: - + a = Fraction(arr[0]) b = Fraction(arr[1]) c = Fraction(arr[2]) @@ -125,19 +126,18 @@ def sum(summ,x,y): return a + b def q(str): - + str = str.split('/') a = int(str[0]) - b = int(str[1] - - if a > b - - unit = a // b - part = a % b - print ('{} {}/{}'.format(unit,part,b) - + b = int(str[1]) + + if a > b: + unit = a // b + part = a % b + print ('{} {}/{}'.format(unit,part,b)) + else: - + print('{}/{}'.format(a, b)) @@ -148,16 +148,13 @@ def q(str): result = (str(sum(summ,x,len(arr)))) if result == '0': - - print('0') - -else: - - q(result) - + print('0') +else: + q(result) + #2 import os @@ -258,7 +255,7 @@ def new_add(z,file): def write_fruit(fruit,letter): FILE = 'fruit_' + letter - DIR = 'fruits' + DIR = 'data' type = 'a' with open(os.path.join( DIR, FILE), type, encoding='UTF-8') as f: From 01a9c607214220c4c59e9b4bc5043fadf84ef60b Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 22 Jan 2019 18:34:53 +0300 Subject: [PATCH 11/27] Update hw03_hard.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Поправил подсчет зарплаты --- lesson03/home_work/hw03_hard.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index 10ded463e..92c8523dd 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -220,18 +220,21 @@ def new_file(z,file): f.write(' ' + (new_add(z,file))) f.write('\n') - + def new_add(z,file): - - if file[4] >= z[2]: - - tt = (int(file[4]) / int(z[2])) * int(file[2]) + + print(file[4],z[2]) + + if ((int(file[4]) >= int(z[2]))): + + tt = (int(z[2]) / int(file[4])) * int(file[2]) + print(tt) tt = round(tt, 2) return str(tt) - + else: - tt = (int(z[2]) - int(file[4]))/int(file[4])*int(file[2])+int(file[2]) + tt = (int(z[2]) - int(file[4]))/int(file[4])*(int(file[2])*2)+int(file[2]) tt = round(tt, 2) return str(tt) From 5bcd534932aace9899d9ae9ab5a3ddeea831333a Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 22 Jan 2019 19:00:24 +0300 Subject: [PATCH 12/27] Update hw03_hard.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Забыл удалить print'ы которые использовал для проверки... --- lesson03/home_work/hw03_hard.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index 92c8523dd..7f6738143 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -179,7 +179,6 @@ def read(f): return False readed = readed[0].split() - print(readed) find(readed) return True @@ -188,7 +187,7 @@ def find(file): FILE_2 = 'hours_of' f = open(os.path.join(DIR, FILE_2), 'r', encoding='UTF-8') - print(f.read(1)) + (f.read(1)) while compare(file,f): @@ -220,15 +219,12 @@ def new_file(z,file): f.write(' ' + (new_add(z,file))) f.write('\n') - + def new_add(z,file): - - print(file[4],z[2]) - + if ((int(file[4]) >= int(z[2]))): - + tt = (int(z[2]) / int(file[4])) * int(file[2]) - print(tt) tt = round(tt, 2) return str(tt) From 21f2849dc121296a6ecd0625381251c846600819 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Thu, 24 Jan 2019 09:28:32 +0300 Subject: [PATCH 13/27] Update hw04_hard.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ДЗ_4 --- lesson04/home_work/hw04_hard.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lesson04/home_work/hw04_hard.py b/lesson04/home_work/hw04_hard.py index 3b12dc315..79b9d9bab 100644 --- a/lesson04/home_work/hw04_hard.py +++ b/lesson04/home_work/hw04_hard.py @@ -47,3 +47,34 @@ # Программа получает на вход восемь пар чисел, # каждое число от 1 до 8 — координаты 8 ферзей. # Если ферзи не бьют друг друга, выведите слово NO, иначе выведите YES. + + +#1 + +matrix = [[1, 0, 8], + [3, 4, 1], + [0, 4, 2]] + + +print(list(map(list, zip(*matrix)))) + +#2 +number = """7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450""" +number = list(number) +count = 0 +position = 0 + +for i in range(len(number)): + if i == (len(number)-4): + break + new_count = int(number[i]) + int(number[i+1]) + int(number[i+2]) + int(number[i+3]) + int(number[i+4]) + if new_count > count: + count = new_count + position = i + +print('Индекс смещения первого числа = {} , Произведение 5-ти чисел = {}'.format(position,count)) + +#3 + + + From c351d27b9ff226dbfe8e44142408a7c5752e20c4 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Thu, 24 Jan 2019 10:01:41 +0300 Subject: [PATCH 14/27] Update hw04_hard.py --- lesson04/home_work/hw04_hard.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lesson04/home_work/hw04_hard.py b/lesson04/home_work/hw04_hard.py index 79b9d9bab..585eda8f6 100644 --- a/lesson04/home_work/hw04_hard.py +++ b/lesson04/home_work/hw04_hard.py @@ -59,20 +59,27 @@ print(list(map(list, zip(*matrix)))) #2 + number = """7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450""" -number = list(number) -count = 0 -position = 0 -for i in range(len(number)): + +def max_summ(number): + + count = 0 + + for i in range(len(number)): if i == (len(number)-4): break - new_count = int(number[i]) + int(number[i+1]) + int(number[i+2]) + int(number[i+3]) + int(number[i+4]) + new_count = sum(number[i:i+5]) if new_count > count: - count = new_count - position = i + count,position = new_count,i + + return count, position + + +count, position = max_summ(list(map(lambda x: int(x),list(number)))) +print('Индекс смещения первого числа = {} , Произведение 5-ти чисел = {}'.format(count, position)) -print('Индекс смещения первого числа = {} , Произведение 5-ти чисел = {}'.format(position,count)) #3 From 25f6d4ce4fdc7918e2467b8025e5e53ee883ca24 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Thu, 24 Jan 2019 17:34:39 +0300 Subject: [PATCH 15/27] Update hw03_hard.py --- lesson03/home_work/hw03_hard.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index 7f6738143..8c6d308d8 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -187,7 +187,6 @@ def find(file): FILE_2 = 'hours_of' f = open(os.path.join(DIR, FILE_2), 'r', encoding='UTF-8') - (f.read(1)) while compare(file,f): @@ -207,7 +206,7 @@ def compare(file,f): def new_file(z,file): - with open(os.path.join( DIR, 'new'), 'a', encoding='UTF-8') as f: + with open(os.path.join( DIR, 'new'), 'a', encoding='utf-8-sig') as f: f.write(' '.join(file)) f.write(' ' + z[2]) From f8532a15f70c2218b55c851496d106cb12069f0d Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Thu, 24 Jan 2019 18:29:25 +0300 Subject: [PATCH 16/27] Update hw03_hard.py --- lesson03/home_work/hw03_hard.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lesson03/home_work/hw03_hard.py b/lesson03/home_work/hw03_hard.py index 8c6d308d8..0b985366a 100644 --- a/lesson03/home_work/hw03_hard.py +++ b/lesson03/home_work/hw03_hard.py @@ -186,7 +186,7 @@ def read(f): def find(file): FILE_2 = 'hours_of' - f = open(os.path.join(DIR, FILE_2), 'r', encoding='UTF-8') + f = open(os.path.join(DIR, FILE_2), 'r', encoding='utf-8-sig') while compare(file,f): @@ -206,7 +206,7 @@ def compare(file,f): def new_file(z,file): - with open(os.path.join( DIR, 'new'), 'a', encoding='utf-8-sig') as f: + with open(os.path.join( DIR, 'new'), 'a', encoding='UTF-8') as f: f.write(' '.join(file)) f.write(' ' + z[2]) From 76a0deee4a821285686036325445e38e90975357 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 25 Jan 2019 03:10:36 +0300 Subject: [PATCH 17/27] Update hw04_hard.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ДЗ_4_hard --- lesson04/home_work/hw04_hard.py | 54 ++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/lesson04/home_work/hw04_hard.py b/lesson04/home_work/hw04_hard.py index 585eda8f6..b1866d4c9 100644 --- a/lesson04/home_work/hw04_hard.py +++ b/lesson04/home_work/hw04_hard.py @@ -62,26 +62,50 @@ number = """7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450""" - def max_summ(number): - - count = 0 - - for i in range(len(number)): - if i == (len(number)-4): - break - new_count = sum(number[i:i+5]) - if new_count > count: - count,position = new_count,i - - return count, position - - -count, position = max_summ(list(map(lambda x: int(x),list(number)))) + count = 0 + + for i in range(len(number)- 4): + + new_count = sum(number[i:i + 5]) + + if new_count > count: + + count, position = new_count, i + + return count, position + + +count, position = max_summ(list(map(lambda x: int(x), list(number)))) print('Индекс смещения первого числа = {} , Произведение 5-ти чисел = {}'.format(count, position)) #3 + +queens = [[1,2],[2,4],[3,6],[4,8],[5,3],[6,1],[7,7],[8,5]] + +doska = 8 +attack = False + +for i in range(doska): + + for j in range(i + 1, doska): + + x = queens[i] + y = queens[j] + + if x[0] == y[0] or x[1] == y[1] or abs(x[0] - y[0]) == abs(x[1] - y[1]): + + attack = True + +if not attack: + + print('NO') + +else: + + print('YES') + From c4764dd5c6db3d6be838ddc4d608186b3094cea2 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 25 Jan 2019 03:11:31 +0300 Subject: [PATCH 18/27] Update hw04_hard.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ДЗ_4_hard --- lesson04/home_work/hw04_hard.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lesson04/home_work/hw04_hard.py b/lesson04/home_work/hw04_hard.py index b1866d4c9..62a0f77e0 100644 --- a/lesson04/home_work/hw04_hard.py +++ b/lesson04/home_work/hw04_hard.py @@ -75,7 +75,6 @@ def max_summ(number): return count, position - count, position = max_summ(list(map(lambda x: int(x), list(number)))) print('Индекс смещения первого числа = {} , Произведение 5-ти чисел = {}'.format(count, position)) From 7f5eb47208136a9c8ae39d96ba16992a672c81c9 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 25 Jan 2019 03:53:04 +0300 Subject: [PATCH 19/27] =?UTF-8?q?=D0=94=D0=97=5F4=5Fhard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ДЗ_4_hard --- lesson04/home_work/hw04_hard.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson04/home_work/hw04_hard.py b/lesson04/home_work/hw04_hard.py index 62a0f77e0..5528e8012 100644 --- a/lesson04/home_work/hw04_hard.py +++ b/lesson04/home_work/hw04_hard.py @@ -106,5 +106,5 @@ def max_summ(number): print('YES') - + From 4ea8cba08d34ce7743f4ec13ebe880e9b4c5d8ef Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 29 Jan 2019 14:32:52 +0300 Subject: [PATCH 20/27] =?UTF-8?q?=D0=94=D0=97=5F5=5Fhard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ДЗ_5 --- lesson05/home_work/hw05_hard.py | 125 ++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/lesson05/home_work/hw05_hard.py b/lesson05/home_work/hw05_hard.py index 7507e47b2..78b789050 100644 --- a/lesson05/home_work/hw05_hard.py +++ b/lesson05/home_work/hw05_hard.py @@ -13,3 +13,128 @@ # Исходной директорией считать ту, в которой был запущен скрипт. # P.S. По возможности, сделайте кросс-платформенную реализацию. + +import os +import sys +import shutil + +print("sys.argv = ", sys.argv) + + +def print_help(): + print("help - получение справки") + print("mkdir - создание директории") + print("cp - создание копии указанного файла") + print("rm - удаляет указанный файл") + print("cd - меняет текущую директорию на указанную") + print("ls - отображение полного пути текущей директории") + print("ping - тестовый ключ") + +def make_dir(): + def make_dir(): + if not dir_name: + print("Необходимо указать имя директории вторым параметром") + return + dir_path = os.path.join(os.getcwd(), dir_name) + try: + os.mkdir(dir_path) + print('директория {} создана'.format(dir_name)) + except FileExistsError: + print('директория {} уже существует'.format(dir_name)) + +def copy_file(): + if not dir_name: + print(" Необходимо указать имя копируемого файла") + return + + file_path = os.path.join(os.getcwd(), dir_name) + splitext = os.path.splitext(file_path) + spli = os.path.splitext(dir_name) + + if os.path.isfile(file_path): + + shutil.copy2(file_path, os.path.join(os.getcwd(), '{}_copy2{}'.format(splitext[0], splitext[1]))) + print('Файл {} успешно скопирован как {}_copy2{}'.format(dir_name, spli[0],spli[1])) + + else: + print('Копируемый объект не является файлом') + + +def remove_file(): + + if not dir_name: + + print(" Необходимо указать имя удаляемого файла") + return + + if os.path.isfile(os.path.join(os.getcwd(), dir_name)): + + answer = input('Вы уверенны, что хотите удалить файл "{}"? [Y/N]'.format(dir_name)) + + if answer == 'y' or answer == 'Y': + + try: + + os.remove(dir_name) + print("Файл {} успешно удален".format(dir_name)) + + except Exception: + + print("Файл занят другой программой") + else: + print(" Удаление файла {} отменено ".format(dir_name)) + else: + print('Файл не существует') + + +def change_dir(): + if not dir_name: + + print("Необходимо указать имя директории вторым параметром") + return + + try: + + os.chdir(dir_name) + print('Новая дериктория {}'.format(os.getcwd())) + + except FileNotFoundError: + + print('Такой папки не существует') + + +def full_dir(): + + print(" Полный путь текущей директории : " + os.getcwd()) + + +def ping(): + print("pong") + +do = { + "help": print_help, + "mkdir": make_dir, + "cp": copy_file, + "rm": remove_file, + "cd": change_dir, + "ls": full_dir, + "ping": ping +} + +try: + dir_name = sys.argv[2] +except IndexError: + dir_name = None + +try: + key = sys.argv[1] +except IndexError: + key = None + + +if key: + if do.get(key): + do[key]() + else: + print("Задан неверный ключ") + print("Укажите ключ help для получения справки") From 0218c03fb21e2c5328d0561a3a31c39c784684dd Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Tue, 29 Jan 2019 14:34:46 +0300 Subject: [PATCH 21/27] Update hw05_hard.py --- lesson05/home_work/hw05_hard.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lesson05/home_work/hw05_hard.py b/lesson05/home_work/hw05_hard.py index 78b789050..8d481924f 100644 --- a/lesson05/home_work/hw05_hard.py +++ b/lesson05/home_work/hw05_hard.py @@ -31,7 +31,6 @@ def print_help(): print("ping - тестовый ключ") def make_dir(): - def make_dir(): if not dir_name: print("Необходимо указать имя директории вторым параметром") return From 8ce180fb423993b1e64241cb1eb9bebb849f8a9b Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 1 Feb 2019 13:52:46 +0300 Subject: [PATCH 22/27] =?UTF-8?q?=D0=94=D0=97=5F6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hard --- lesson06/home_work/hw06_hard.py | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/lesson06/home_work/hw06_hard.py b/lesson06/home_work/hw06_hard.py index fae8d84d2..c4ec97725 100644 --- a/lesson06/home_work/hw06_hard.py +++ b/lesson06/home_work/hw06_hard.py @@ -10,3 +10,50 @@ # С использованием классов. # Реализуйте классы сотрудников так, чтобы на вход функции-конструктора # каждый работник получал строку из файла + +import os + + +class Worker: + def __init__(self, line): + + name, second_name, pay, post, task = line.split() + self.fullname = name + ' ' + second_name + self.pay = float(pay) + self.task = float(task) + + def calc(self): + + worked = hours.get(self.fullname) + + if worked >= self.task: + + f_pay = self.pay * (2 * (worked / self.task - 1) + 1) + + else: + + f_pay = self.pay * (worked / self.task) + + return f_pay + + +def new(x): + + name, second_name, hours_w = x.split() + return name + ' ' + second_name, float(hours_w) + + +path_w = os.path.join('data', 'workers') +path_h = os.path.join('data', 'hours_of') + +with open(path_w, "r", encoding='UTF-8') as f: + f.readline() # Удаляем заголовок + workers = list(map(Worker, f.readlines())) + +with open(path_h, "r", encoding='UTF-8') as f: + f.readline() # Уаляем заголовок + hours_of = f.readlines() + +hours = {person: hours for person, hours in map(new, hours_of)} + +print({worker.fullname: round(worker.calc(), 2) for worker in workers}) From e6d8cce82b1ee5b19d7520b5389caaaac2e798b6 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 8 Feb 2019 04:55:30 +0300 Subject: [PATCH 23/27] =?UTF-8?q?=D0=94=D0=97=5F7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ДЗ_7 --- lesson07/home_work/loto.py | 124 +++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/lesson07/home_work/loto.py b/lesson07/home_work/loto.py index 5ea6ad844..aa9927135 100644 --- a/lesson07/home_work/loto.py +++ b/lesson07/home_work/loto.py @@ -57,3 +57,127 @@ модуль random: http://docs.python.org/3/library/random.html """ + +import random +MAX_Bo4enki = 90 + + + +class Bo4enki: + def __init__(self): + + self.bo4 = [i for i in range(1,MAX_Bo4enki + 1)] + + @property + def give(self): + if len(self.bo4) == 0: + return None + return self.bo4.pop(random.randint(1, len(self.bo4)) - 1) + + +class NewCard(Bo4enki): + def __init__(self): + Bo4enki.__init__(self) + self.cardd = [] + + def line(self): + g = [self.give, self.give, self.give, self.give, self.give] + g.sort() + for i in range(4): + g.insert(random.randint(0,9),' ') + return g + + def card(self): + + for i in range(3): + self.cardd.extend(self.line()) + return self.cardd + + +class Control(NewCard): + def __init__(self): + + NewCard.__init__(self) + self.a1 = NewCard().card() + self.a2 = NewCard().card() + self.b0 = self.give + self.i = self.a1.count(self.b0) + self.j = self.a2.count(self.b0) + self.a1_i, self.a2_j = 0, 0 + self.win = True + self.print + + @property + def print(self): + print('Новый бочонок: {} (осталось {})'.format(self.b0, len(self.bo4))) + print('------ Ваша карточка -----') + print('{} {} {} {} {} {} {} {} {}'.format(self.a1[0], self.a1[1], self.a1[2], self.a1[3], self.a1[4], self.a1[5], self.a1[6], self.a1[7], self.a1[8])) + print('{} {} {} {} {} {} {} {} {}'.format(self.a1[9], self.a1[10], self.a1[11], self.a1[12], self.a1[13], self.a1[14],self.a1[15], self.a1[16], self.a1[17])) + print('{} {} {} {} {} {} {} {} {}'.format(self.a1[18], self.a1[19], self.a1[20], self.a1[21], self.a1[22], self.a1[23],self.a1[24], self.a1[25], self.a1[26])) + print('--------------------------\n-- Карточка компьютера ---') + print('{} {} {} {} {} {} {} {} {}'.format(self.a2[0], self.a2[1], self.a2[2], self.a2[3], self.a2[4], self.a2[5], self.a2[6], self.a2[7], self.a2[8])) + print('{} {} {} {} {} {} {} {} {}'.format(self.a2[9], self.a2[10], self.a2[11], self.a2[12], self.a2[13], self.a2[14], self.a2[14], self.a2[16], self.a2[17])) + print('{} {} {} {} {} {} {} {} {}'.format(self.a2[18], self.a2[19], self.a2[20], self.a2[21], self.a2[22], self.a2[23], self.a2[24], self.a2[25], self.a2[26])) + print('--------------------------') + + def update(self, bool): + if self.j > 0: + self.a2_j += 1 + self.a2.insert(self.a2.index(self.b0), 'X') + self.a2.remove(self.b0) + if bool: + self.a1_i += 1 + self.a1.insert(self.a1.index(self.b0), 'X') + self.a1.remove(self.b0) + if a.a2_j == 15 and a.a1_i == 15: + print("Ничья, игра окончена") + self.win = False + return False + elif a.a2_j == 15: + print("Выйграл компьютер, игра окончена") + self.win = False + return False + elif a.a1_i == 15: + print("Вы выйграли, игра окончена") + self.win = False + return False + else: + self.b0 = self.give + self.i = self.a1.count(self.b0) + self.j = self.a2.count(self.b0) + return + self.b0 = self.give + self.i = self.a1.count(self.b0) + self.j = self.a2.count(self.b0) + + +a = Control() +count = 0 +while a.win: + print(a.i, a.j,"\n", a.a1_i, a.a2_j) + answer = input('Зачеркнуть цифру? (Y/N)') + + if count == 1: + print("Неверная команда, игра окончена") + break + + elif (answer == 'N' or answer == 'n') and a.i > 0: + print("Вы не заметили цифру, игра окончена") + break + elif answer == 'N' or answer == 'n'and a.i == 0: + print('Верно, цифры нет') + if a.update(False) == True: + a.print + elif (answer == 'Y' or answer == 'y') and a.i == 0: + print("Цифры не было, игра окончена") + break + elif (answer == 'Y' or answer == 'y') and a.i > 0: + print('Верно, цифра есть') + if a.update(True) == True: + a.print + else: + print('Некоректный ввод, попробуйте еще раз') + count +=1 + + + From 922e84e93dca88b7eba031f44966ac6f08424d64 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 8 Feb 2019 05:14:48 +0300 Subject: [PATCH 24/27] Update loto.py --- lesson07/home_work/loto.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lesson07/home_work/loto.py b/lesson07/home_work/loto.py index aa9927135..6aa0f5010 100644 --- a/lesson07/home_work/loto.py +++ b/lesson07/home_work/loto.py @@ -111,13 +111,13 @@ def __init__(self): def print(self): print('Новый бочонок: {} (осталось {})'.format(self.b0, len(self.bo4))) print('------ Ваша карточка -----') - print('{} {} {} {} {} {} {} {} {}'.format(self.a1[0], self.a1[1], self.a1[2], self.a1[3], self.a1[4], self.a1[5], self.a1[6], self.a1[7], self.a1[8])) - print('{} {} {} {} {} {} {} {} {}'.format(self.a1[9], self.a1[10], self.a1[11], self.a1[12], self.a1[13], self.a1[14],self.a1[15], self.a1[16], self.a1[17])) - print('{} {} {} {} {} {} {} {} {}'.format(self.a1[18], self.a1[19], self.a1[20], self.a1[21], self.a1[22], self.a1[23],self.a1[24], self.a1[25], self.a1[26])) + print(*self.a1[0:9]) + print(*self.a1[9:18]) + print(*self.a1[18:27]) print('--------------------------\n-- Карточка компьютера ---') - print('{} {} {} {} {} {} {} {} {}'.format(self.a2[0], self.a2[1], self.a2[2], self.a2[3], self.a2[4], self.a2[5], self.a2[6], self.a2[7], self.a2[8])) - print('{} {} {} {} {} {} {} {} {}'.format(self.a2[9], self.a2[10], self.a2[11], self.a2[12], self.a2[13], self.a2[14], self.a2[14], self.a2[16], self.a2[17])) - print('{} {} {} {} {} {} {} {} {}'.format(self.a2[18], self.a2[19], self.a2[20], self.a2[21], self.a2[22], self.a2[23], self.a2[24], self.a2[25], self.a2[26])) + print(*self.a2[0:9]) + print(*self.a2[9:18]) + print(*self.a2[18:27]) print('--------------------------') def update(self, bool): @@ -154,7 +154,6 @@ def update(self, bool): a = Control() count = 0 while a.win: - print(a.i, a.j,"\n", a.a1_i, a.a2_j) answer = input('Зачеркнуть цифру? (Y/N)') if count == 1: From 1289029c8062dd10531e80b05ede19573b1fca23 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 8 Feb 2019 13:44:43 +0300 Subject: [PATCH 25/27] Update loto.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit исправил косяк --- lesson07/home_work/loto.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lesson07/home_work/loto.py b/lesson07/home_work/loto.py index 6aa0f5010..d8b24443b 100644 --- a/lesson07/home_work/loto.py +++ b/lesson07/home_work/loto.py @@ -145,11 +145,11 @@ def update(self, bool): self.b0 = self.give self.i = self.a1.count(self.b0) self.j = self.a2.count(self.b0) - return + return True self.b0 = self.give self.i = self.a1.count(self.b0) self.j = self.a2.count(self.b0) - + return True a = Control() count = 0 From 299d12dff8d5401bb49807f995f8b40d3c85acc7 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 8 Feb 2019 14:39:59 +0300 Subject: [PATCH 26/27] Update loto.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit еще один косяк --- lesson07/home_work/loto.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lesson07/home_work/loto.py b/lesson07/home_work/loto.py index d8b24443b..7cb53e602 100644 --- a/lesson07/home_work/loto.py +++ b/lesson07/home_work/loto.py @@ -81,7 +81,7 @@ def __init__(self): self.cardd = [] def line(self): - g = [self.give, self.give, self.give, self.give, self.give] + g = list(map(lambda x: self.give, range(5))) g.sort() for i in range(4): g.insert(random.randint(0,9),' ') @@ -156,7 +156,7 @@ def update(self, bool): while a.win: answer = input('Зачеркнуть цифру? (Y/N)') - if count == 1: + if count > 1: print("Неверная команда, игра окончена") break From 71d62ec2ee51614101eea3744341620468aec4f1 Mon Sep 17 00:00:00 2001 From: xonaru <46713558+xonaru@users.noreply.github.com> Date: Fri, 8 Feb 2019 14:48:15 +0300 Subject: [PATCH 27/27] Update loto.py --- lesson07/home_work/loto.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lesson07/home_work/loto.py b/lesson07/home_work/loto.py index 7cb53e602..fa6fede6c 100644 --- a/lesson07/home_work/loto.py +++ b/lesson07/home_work/loto.py @@ -146,10 +146,7 @@ def update(self, bool): self.i = self.a1.count(self.b0) self.j = self.a2.count(self.b0) return True - self.b0 = self.give - self.i = self.a1.count(self.b0) - self.j = self.a2.count(self.b0) - return True + a = Control() count = 0