-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPython_dz6.py
More file actions
144 lines (118 loc) · 5.96 KB
/
Copy pathPython_dz6.py
File metadata and controls
144 lines (118 loc) · 5.96 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# Задача 1:
# Напишите программу, которая принимает на вход число N и
# выдает набор произведений чисел от 1 до N.
# *Пример:*
# - пусть N = 4, тогда [ 1, 2, 6, 24 ] (1, 1*2, 1*2*3, 1*2*3*4)
# Изначальное решение:
# import math
# n = int(input("Введите число: "))
# i = 1
# for i in range(1, n+1):
# print(math.factorial(i))
# Новое решение:
# import math
# n = int(input("Введите число: "))
# list = [math.factorial(i) for i in range(1,n+1)]
# print(list)
# Задача 2:
# Задайте список из n чисел последовательности (1 + 1\n)^n и выведите на экран их сумму.
# Изначальное решение:
# n = int(input("Введите число: "))
# summa = 0
# for i in range(1, n+1):
# summa += (1+1/i)**i
# print(round((summa),2))
# Новое решение(не работает):
# n = int(input("Введите число: "))
# summa = 0
# list = [((summa += 1+1/i)**i) for i in range(1,n+1)]
# print(list)
#
#
# Задача 3:
# Задайте последовательность чисел. Напишите программу,
# которая выведет список неповторяющихся элементов исходной последовательности.
# [1, 2, 4, 5, 5, 6, 6, 6] -> [1, 2, 4, 5,6]
# my_list = [1, 2, 4, 5, 5, 6, 6, 6]
# print(tuple(filter(lambda num: my_list.count(num) == 1, my_list))) #превращаем в кортеж(tuple)
#
# Задача 4:
# Напишите программу, которая найдёт произведение пар чисел списка.
# Парой считаем первый и последний элемент, второй и предпоследний и т.д.
# Пример:
# - [2, 3, 4, 5, 6] => [12, 15, 16];
# - [2, 3, 5, 6] => [12, 15]
# Изначальный вариант:
# from math import ceil
# def result(my_list):
# list_new = []
# x = len(my_list)-1
# for i in range(0, ceil(len(my_list)/2)):
# reserv = my_list[i] * my_list[x-i]
# list_new.append(reserv)
# print(list_new)
# # my_list1 = [2, 3, 4, 5, 6]
# my_list1 = [2, 3, 5, 6]
# result(my_list1)
# Почему-то не получилось:(* Не работает код:
# from math import ceil
# reserv = 0
# my_list = [2, 3, 4, 5, 6]
# res = []
# res = [res.append(my_list[item] * my_list[len(my_list)-1-item]) for item in range(0, ceil(len(my_list)/2))]
# print(res)
# Задача 5 :
# Условие задачи: На столе лежит 2021 конфета.
# Играют два игрока делая ход друг после друга.
# Первый ход определяется жеребьёвкой.
# За один ход можно забрать не более чем 28 конфет.
# Все конфеты оппонента достаются сделавшему последний ход.
#
# Вариант с багами:
# from random import randint
# name_igrok1 = input('Введите имя игрока №1 ->')
# name_igrok2 = input('Введите имя игрока №2 ->')
# num = randint(1,2)
# flag = 2
# result = 100
# if num == 1:
# print(f'Первым ходит игрок: {name_igrok1}')
# else:
# print(f'Первым ходит игрок: {name_igrok2}')
# while result != 1:
# number_1 = int(input(f'Игрок № 1 введите кол-во конфет, которые хотите забрать со стола ->'))
# if (number_1 > result) or (number_1 > 28) or (number_1 < 1):
# number_1 = int(input(f'Ваш ход нарушает правила игры, попробуйте еще раз ->'))
# result -= number_1
# flag -= 1
# print(f'Остаток конфет равен: {result}')
# number_2 = int(input(f'Игрок № 2 введите кол-во конфет, которые хотите забрать со стола ->'))
# if (number_2 > result) or (number_2 > 28) or (number_2 < 1):
# number_2 = int(input(f'Ваш ход нарушает правила игры, попробуйте еще раз ->'))
# result -= number_2
# print(f'Остаток конфет равен: {result}')
# flag += 1
# if flag == 2:
# print('Игрок 1 - вы ПОБЕДИЛИ')
# else:
# print('Игрок 2 - вы ПОБЕДИЛИ')
# Вариант рабочий, усовершенствованный
# from random import randint
# name_igrok_1 = input('Введите имя игрока №1 ->')
# name_igrok_2 = input('Введите имя игрока №2 ->')
# num = randint(0, 1)
# result = 100
# while result > 0:
# num = not num
# maxim = result > 28
# while True:
# try:
# number = int(input(f'Игрок {name_igrok_1 if num else name_igrok_2} введите кол-во конфет, которые хотите забрать со стола ->'))
# break
# except Exception as oshibka:
# print(oshibka)
# while number > (28 if maxim else result) or (number <= 0):
# number = int(input(f'Ваш ход нарушает правила игры, попробуйте еще раз ->'))
# result -= number
# print(f'Остаток конфет равен: {result}')
# print(f'Игрок {name_igrok_1 if num else name_igrok_2} - вы ПОБЕДИЛИ')