Compare commits
29 Commits
b4863727d4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 79411a06a0 | |||
| 7bea304138 | |||
|
|
35e4ef07f7 | ||
|
|
01681ef20c | ||
| e4a890e01c | |||
|
|
a94433a226 | ||
| fa78d86ef7 | |||
|
|
52cc48f965 | ||
|
|
978c4a38e7 | ||
|
|
a8eacb0ec3 | ||
| 0b664143f8 | |||
| e7bc4ecb92 | |||
| 16d81d6d71 | |||
|
|
6a4255afff | ||
|
|
02970172af | ||
|
|
f9abd0c48c | ||
|
|
2e56fd2fe3 | ||
| 000bedddd7 | |||
| 567fe0085e | |||
| 59a37d8697 | |||
|
|
3881ab7e96 | ||
|
|
ab899b45e4 | ||
| 0c036bfbd9 | |||
| 4ac1e79815 | |||
| 75b8c6a12b | |||
| de6e5abbc8 | |||
| 9201b92bb8 | |||
| afa01f8da0 | |||
| 91d3faf4bb |
27
01-10.py
Normal file
27
01-10.py
Normal file
@@ -0,0 +1,27 @@
|
||||
famils = {"Петров", "Сидоров", "Иванов", "Козляков", "Колмокозков", "Дрозников"}
|
||||
|
||||
# Так как не было сказанно про распределение.
|
||||
# Попросил ИИ распределить по рандому должников.
|
||||
math_fails = {"Иванов", "Козляков"}
|
||||
lang_fails = {"Петров", "Дрозников", "Сидоров"}
|
||||
info_fails = {"Колмокозков", "Иванов", "Петров"}
|
||||
|
||||
# Вывожу сразу три задания, так как ответ умещается в одну строку.
|
||||
# Для красивого показа использую оператор распаковки *, тоесть вывод будет: Козляков Иванов Петров
|
||||
print("Должники по информатике и математике:", *math_fails | info_fails)
|
||||
print("Должники по трем предметам: ", *famils) # или math_fails | lang_fails | info_fails
|
||||
print("Должник по одному предмету: ", *math_fails - lang_fails - info_fails )
|
||||
|
||||
if 'Сидоров' in math_fails and 'Сидоров' in lang_fails:
|
||||
sid_res = "Да"
|
||||
elif 'Сидоров' in math_fails:
|
||||
sid_res = "Да, только Математика"
|
||||
elif 'Сидоров' in lang_fails:
|
||||
sid_res = "Да, только Русский"
|
||||
print("Сидоров в должниках по матем или русскому?", sid_res )
|
||||
|
||||
# Вывод(В первом ответ может быть рандомный, как угодно множеству)
|
||||
#Должники по информатике и математике: Козляков Петров Иванов Колмокозков
|
||||
#Должники по трем предметам: Козляков Сидоров Петров Иванов Дрозников Колмокозков
|
||||
#Должник по одному предмету: Козляков
|
||||
#Сидоров в должниках по матем или русскому? Да, только Русский
|
||||
127
02-10/practica.py
Normal file
127
02-10/practica.py
Normal file
@@ -0,0 +1,127 @@
|
||||
# === Питон михаил петров
|
||||
import random
|
||||
|
||||
#N = 10
|
||||
#list_sort_buble = []
|
||||
#for _ in range(N):
|
||||
# list_sort_buble.append(random.randint(0,100))
|
||||
#print(f"Не сортированный список: {list_sort_buble}")
|
||||
|
||||
# Сортировка пузырьком
|
||||
#for i in range(N):
|
||||
# for j in range(N - 1 - i):
|
||||
# if list_sort_buble[j] > list_sort_buble[j+1]:
|
||||
# list_sort_buble[j], list_sort_buble[j+1] = list_sort_buble[j+1], list_sort_buble[j]
|
||||
#print(f"Отсортированный список: {list_sort_buble}")
|
||||
|
||||
#===
|
||||
# :: Теория
|
||||
#===
|
||||
|
||||
# 2 Пары Артем Данилов
|
||||
#def hello():
|
||||
# print("Hello world")
|
||||
#hello()
|
||||
|
||||
#def one_two(one): # one принимает значения
|
||||
# num = one + 1
|
||||
# return num
|
||||
#print(one_two(10))
|
||||
|
||||
# Расчитывание круга
|
||||
#def circle(r):
|
||||
# area = 3.14*r*r
|
||||
# return area
|
||||
#print(circle(10))
|
||||
|
||||
# Факториал
|
||||
# 5! = 5*4*3*2*1
|
||||
# 0! = 1
|
||||
# 6! = 6 * 5!
|
||||
# n! = n * (n-1)!
|
||||
|
||||
# Рекурсия
|
||||
#def f(n):
|
||||
# if n == 1: return n
|
||||
# return n * f(n-1) # рекурсивная функция, вызывающая саму себя.
|
||||
#print(f(5))
|
||||
|
||||
#===
|
||||
# :: Задания
|
||||
#===
|
||||
|
||||
# 1 task
|
||||
#def rectg(a,b):
|
||||
# return (a+b)*2
|
||||
#print(rectg(20,5))
|
||||
|
||||
# 2 task
|
||||
#def chetnoe(numb):
|
||||
# if numb%2==0: return numb
|
||||
# else: return numb+1
|
||||
#print(f"четное: {chetnoe(2)}, нечетное: {chetnoe(3)}")
|
||||
|
||||
# 3 task
|
||||
#cel=5
|
||||
#def cel_far(gr):
|
||||
# return (gr*9/5)+32
|
||||
#print(f"Цельсий {cel}, Фаренгейт: {cel_far(cel)}")
|
||||
|
||||
# 4 task
|
||||
#def sechour(secn):
|
||||
# return secn/3600
|
||||
#print(sechour(1000))
|
||||
|
||||
# 5 task
|
||||
#def month(numbs):
|
||||
# if numbs in [4,6,9,11]: # Если число равен значению в списке то вывести то число месяца
|
||||
# return 30
|
||||
# if numbs in [1,3,5,7,8,10,12]:
|
||||
# return 31
|
||||
# if numbs in 2:
|
||||
# return 28
|
||||
# else:
|
||||
# return "nin"
|
||||
#print(month(5))
|
||||
|
||||
|
||||
#===
|
||||
# Практика рекурсия
|
||||
#===
|
||||
|
||||
#def num_aver(a,b,c):
|
||||
# return (a+b+c)/3
|
||||
#print(num_aver(2,3,5))
|
||||
|
||||
#def num_mezdu(a,b,c):
|
||||
|
||||
# 1 решение а не if
|
||||
# if a<=b<=c or c<=b<=a:
|
||||
# return b
|
||||
# elif b<=a<=c or c<=a<=b:
|
||||
# return a
|
||||
# else:
|
||||
# return c
|
||||
|
||||
# 2 решение в одну строку
|
||||
# sorted([a,b,c])[1]
|
||||
|
||||
#print(num_mezdu(1,2,3))
|
||||
|
||||
#def num_mod(a,b,c):
|
||||
# if a == b or b == c:
|
||||
# return b
|
||||
# if b == c or c == a:
|
||||
# return c
|
||||
# if c == a or a == b:
|
||||
# return a
|
||||
# else:
|
||||
# return a,b,c
|
||||
#print(num_mod(3,3,3))
|
||||
|
||||
#def nat_num(a):
|
||||
# total=0
|
||||
# for i in range(1, a+1):
|
||||
# total+=i
|
||||
# return total
|
||||
#print(nat_num(5))
|
||||
85
02-10/tasks.py
Normal file
85
02-10/tasks.py
Normal file
@@ -0,0 +1,85 @@
|
||||
from random import randint
|
||||
|
||||
# Небольшая информация.
|
||||
# * Это распаковка элементов в списке, множествах списков и тд.
|
||||
#
|
||||
# Задания начал возносить в функции без принятия значения
|
||||
# (если в самом задании не нужно указывать значения).
|
||||
# Так как легче понимать где задание, чем писать комментарий.
|
||||
|
||||
# Задание 1
|
||||
def task1():
|
||||
print("== 1 ЗАДАНИЕ ==")
|
||||
list_default = [] # создаем список
|
||||
min_num = -10 # Минимальное
|
||||
max_num = 10 # Максимальное
|
||||
elements = 20 # Кол во элементов
|
||||
|
||||
# Создание списка через рандом
|
||||
for _ in range(elements):
|
||||
list_default.append(randint(min_num,max_num))
|
||||
print("Несорт:", *list_default)
|
||||
|
||||
# Алгоритм пузырька
|
||||
for i in range(elements):
|
||||
for j in range(elements-1-i):
|
||||
if list_default[j] > list_default[j+1]:
|
||||
list_default[j], list_default[j+1] = list_default[j+1], list_default[j]
|
||||
print("Сорт:", *list_default)
|
||||
|
||||
# Задание 2
|
||||
def task2():
|
||||
print("== 2 ЗАДАНИЕ ==")
|
||||
# Списки
|
||||
list_default = [] # создаем список
|
||||
list_even = [] # Создаем четный список
|
||||
list_odd = [] # Создаем не четный список
|
||||
list_min_max = [] # список min и max
|
||||
|
||||
# Остальное
|
||||
min_number = -20 # Минимальное
|
||||
max_number = 20 # Максимальное
|
||||
elements = 45 # Кол во элементов
|
||||
index = 0 # Индекс
|
||||
|
||||
# Создание списка через рандом
|
||||
for _ in range(elements):
|
||||
list_default.append(randint(min_number,max_number))
|
||||
|
||||
# Алгоритм пузырька
|
||||
for i in range(elements):
|
||||
for j in range(elements-1-i):
|
||||
if list_default[j] > list_default[j+1]:
|
||||
list_default[j],list_default[j+1]=list_default[j+1],list_default[j]
|
||||
print("Нач список:", *list_default)
|
||||
print("Виды сортировок:")
|
||||
|
||||
# Первый вид сортировки:
|
||||
while index <= 44:
|
||||
if list_default[index] % 2 == 0: list_even.append(list_default[index])
|
||||
index+=1
|
||||
print(" - 1. четные элементы:", *list_even[:len(list_even)//3])
|
||||
|
||||
# Второй вид сортировки
|
||||
print(" - 2. min и max:",
|
||||
min(list_default[:len(list_default)*2//3]),
|
||||
max(list_default[:len(list_default)*2//3])
|
||||
)
|
||||
|
||||
# Третий вид сортировки
|
||||
index=0 # обнуляю индекс
|
||||
while index <= 44:
|
||||
if list_default[index] % 2 != 0: list_odd.append(list_default[index])
|
||||
index+=1
|
||||
print(" - 3. нечетные элементы:", *list_odd[:len(list_default)*3//3])
|
||||
|
||||
# Мини бонус, просто хочу сделать ;)
|
||||
def main():
|
||||
value = int(input("Выберите задание(1 или 2): "))
|
||||
if value == 1: task1()
|
||||
elif value == 2: task2()
|
||||
elif value == 0: exit()
|
||||
else:
|
||||
print("Введено не верное значение")
|
||||
main()
|
||||
main()
|
||||
83
06-10.py
Normal file
83
06-10.py
Normal file
@@ -0,0 +1,83 @@
|
||||
import random
|
||||
# Так как меня не было на паре я буду честен,
|
||||
# некоторые задания смотрел у одногруппницы
|
||||
# но смотрел как они выполняются.
|
||||
|
||||
#===
|
||||
# Задание 3
|
||||
#===
|
||||
print("-= Задание 3 =-")
|
||||
|
||||
# Обьявляю переменные
|
||||
lis = []
|
||||
n = 15
|
||||
iterations = 0
|
||||
|
||||
# Создание списка из 15 чисел
|
||||
for i in range(n):
|
||||
lis.append(random.randint(1,100))
|
||||
print(f"1: ", lis)
|
||||
|
||||
# Сортировка от большего к меньшему
|
||||
i = 0
|
||||
while i < n - 1:
|
||||
m,j = i,i+1
|
||||
while j < n:
|
||||
if lis[j] < lis[m]:
|
||||
m = j
|
||||
j += 1
|
||||
# меняем местами
|
||||
lis[i], lis[m] = lis[m], lis[i]
|
||||
i += 1
|
||||
iterations += 1
|
||||
print(f"2: ", lis)
|
||||
print(f"3: ", iterations)
|
||||
|
||||
#===
|
||||
# Задание 4
|
||||
#===
|
||||
print("-= Задание 4 =-")
|
||||
|
||||
# обьявляю переменные
|
||||
words = [ "apple", "banana", "cherry", "date", "apricot" ]
|
||||
n = len(words)
|
||||
j = 0
|
||||
|
||||
for i in range(1, n):#1-5
|
||||
key = words[i]#apple
|
||||
j = i - 1#1-1 0
|
||||
# Сдвигаем элементы вправо, пока они больше key
|
||||
while j >= 0 and words[j] > key:
|
||||
words[j + 1] = words[j]
|
||||
j -= 1
|
||||
words[j + 1] = key
|
||||
print(words)
|
||||
|
||||
#===
|
||||
# Задание 5
|
||||
#===
|
||||
print("-= Задание 5 =-")
|
||||
|
||||
# Обьявляю переменные
|
||||
lisb = ["1", "10", "3", "5", "7", "8"]
|
||||
k = 2
|
||||
fix_k = lisb[k]
|
||||
oth_el = []
|
||||
|
||||
for i in range(len(lisb)):
|
||||
if i != k:
|
||||
oth_el.append(lisb[i])
|
||||
|
||||
n = len(oth_el)
|
||||
for i in range(n):
|
||||
for j in range(0, n - i - 1):
|
||||
if oth_el[j] > oth_el[j + 1]:
|
||||
oth_el[j], oth_el[j + 1] = oth_el[j + 1], oth_el[j]
|
||||
|
||||
left_par = oth_el[:k]
|
||||
right_par = oth_el[k:]
|
||||
|
||||
res = left_par + [fix_k] + right_par
|
||||
|
||||
print(res)
|
||||
|
||||
0
13-10/danilov.py
Normal file
0
13-10/danilov.py
Normal file
0
13-10/petrov.py
Normal file
0
13-10/petrov.py
Normal file
@@ -82,8 +82,8 @@
|
||||
#-=-=-=-=-=-=-
|
||||
|
||||
#1 Задание
|
||||
#age = int(input(Enter age: ))
|
||||
#rost = int(input(Enter rost: ))
|
||||
#age = int(input("Enter age: "))
|
||||
#rost = int(input("Enter rost: "))
|
||||
#if age >= 18 and rost >= 185:
|
||||
# print("approved!")
|
||||
#elif rost >= 200:
|
||||
|
||||
47
18-09/18-09.py
Normal file
47
18-09/18-09.py
Normal file
@@ -0,0 +1,47 @@
|
||||
#num1 = '' # 1 слаг
|
||||
#num2 = '' # 2 слаг
|
||||
#operation = '' # оператор
|
||||
|
||||
# Ввод выражения
|
||||
#letter_num = 0
|
||||
|
||||
# Поиск знака и индекса
|
||||
#user_str = input("Enter num: ")
|
||||
#for i in range(0, len(user_str)):
|
||||
# if user_str[i] in "+-*/":
|
||||
# letter_num = i
|
||||
# operation = user_str[i]
|
||||
|
||||
# Поиск 1 числа
|
||||
#for i in range(0, letter_num):
|
||||
# num1 += user_str[i]
|
||||
|
||||
# Поиск 2 числа
|
||||
#for i in range(letter_num + 1, len(user_str)): # увеличение индекса на единицу
|
||||
# num2 += user_str[i]
|
||||
|
||||
# Преобразование типа
|
||||
#num1 = int(num1)
|
||||
#num2 = int(num2)
|
||||
|
||||
#if operation == "+":
|
||||
# result = num1 + num2
|
||||
#elif operation == "-":
|
||||
# result = num1 - num2
|
||||
#elif operation == "*":
|
||||
# result = num1 * num2
|
||||
#elif operation == "/":
|
||||
# result = num1 / num2
|
||||
#print("result: ", result)
|
||||
|
||||
#===
|
||||
# Задания
|
||||
#===
|
||||
|
||||
# 1 Задание
|
||||
# Для того чтоб не показаться что я взял у ии то обьясню что делает код
|
||||
#num = str(input()) # считывание
|
||||
#rev = '' # создание пустой строки
|
||||
#for i in range(len(num) -1, -1, -1): Создание цикла и в радиусе(подсчитать(num) -start, -step, -stop), тоесть от конца
|
||||
# rev += num[i] # записывание num в rev с индексом i
|
||||
#print(rev)
|
||||
18
21-10/backpack_twotask.py
Normal file
18
21-10/backpack_twotask.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Немножечко не понял суть задания, так как на листке решение было давно уже указанно.
|
||||
backpack = {
|
||||
'Зажигалка':20, 'Компас':100, 'Фрукты':500, 'Рубашка':300,
|
||||
'Термос':1000, 'аптечка':200, 'Куртка':600, 'Бинокль':400,
|
||||
'Удочка':1300, 'Салфетки':40, 'Бутерброды':800,'Палатка':5500,
|
||||
'Спальный мешок':2500,'Изолента':250,'Котел':3000
|
||||
}
|
||||
|
||||
massa = int(input("Введите массу рюкзака :: "))*1000
|
||||
lis_no = []
|
||||
lis_ye = []
|
||||
for key, value in backpack.items():
|
||||
if value < massa:
|
||||
lis_no.append(key)
|
||||
for key, value in backpack.items():
|
||||
if value > massa:
|
||||
lis_ye.append(key)
|
||||
print(f"могу взять {lis_no}, не могу взять {lis_ye}")
|
||||
31
21-10/contact_threetask.py
Normal file
31
21-10/contact_threetask.py
Normal file
@@ -0,0 +1,31 @@
|
||||
note_book = {"Маша":
|
||||
{'tel':'+7922123561','vk':'vk.com/masha321','youtube':'youtube.com/masha321','telegram'
|
||||
:'t.me/masha321'},
|
||||
"Маша":
|
||||
{'tel':'+7922123561','vk':'vk.com/masha321','youtube':'youtube.com/masha321','telegram'
|
||||
:'t.me/masha321'},
|
||||
"Маша":
|
||||
{'tel':'+7922123561','vk':'vk.com/masha321','youtube':'youtube.com/masha321','telegram'
|
||||
:'t.me/masha321'},
|
||||
"Маша":
|
||||
{'tel':'+7922123561','vk':'vk.com/masha321','youtube':'youtube.com/masha321','telegram'
|
||||
:'t.me/masha321'},
|
||||
"Маша":
|
||||
{'tel':'+7922123561','vk':'vk.com/masha321','youtube':'youtube.com/masha321','telegram'
|
||||
:'t.me/masha321'},
|
||||
}
|
||||
|
||||
user_input = input("Введите имя из списка контактов: ")
|
||||
|
||||
if user_input:
|
||||
user_search = user_input[0].upper() + user_input[1:].lower()
|
||||
else:
|
||||
user_search = ""
|
||||
|
||||
if user_search in note_book:
|
||||
contact = note_book[user_search]
|
||||
print(f"Контакт: {user_search}")
|
||||
for key, value in contact.items():
|
||||
print(f"{key.capitalize()}: {value}")
|
||||
else:
|
||||
print("Контакт не найден.")
|
||||
88
21-10/scrabble_onetask.py
Normal file
88
21-10/scrabble_onetask.py
Normal file
@@ -0,0 +1,88 @@
|
||||
# Основная функция.
|
||||
# для возврата значений ошибок текста и самого вывода баллов
|
||||
# буду использовать get_coords для создания возврата значений в кортеж
|
||||
def scrabble(text):
|
||||
|
||||
#=====
|
||||
# Обьявление переменных
|
||||
#=====
|
||||
|
||||
# Словарь, слово: балл
|
||||
alphabet = {
|
||||
# English alphabet
|
||||
'a': 1, 'e': 1, 'i': 1, 'o': 1, 'l': 1, 'n': 1, 's': 1, 't': 1, 'r': 1,
|
||||
'd': 2, 'g': 2,
|
||||
'b': 3, 'c': 3, 'm': 3, 'p': 3,
|
||||
'f': 4, 'h': 4, 'w': 4, 'y': 4,
|
||||
'k': 5,
|
||||
'j': 8, 'x': 8,
|
||||
'q': 10, 'z': 10,
|
||||
|
||||
# Russian alphabet
|
||||
'а': 1, 'в': 1, 'е': 1, 'и': 1, 'н': 1, 'о': 1, 'с': 1, 'т': 1,
|
||||
'д': 2, 'к': 2, 'л': 2, 'м': 2, 'п': 2, 'у': 2, 'р': 2, # "р" не было, на рандом добавил в 2 баллы.
|
||||
'б': 3, 'г': 3, 'ё': 3, 'ь': 3, 'я': 3,
|
||||
'й': 4, 'ы': 4,
|
||||
'ж': 5, 'з': 5, 'ч': 5, 'ц': 5,
|
||||
'ш': 8, 'э': 8, 'ю': 9,
|
||||
'ф': 10, 'щ': 10, 'ъ': 10}
|
||||
|
||||
text = text.replace(' ', '') # убираю пробелы
|
||||
text = text.lower() # делаю все символы низкими
|
||||
score = 0 # нулевой счетчик баллов
|
||||
symb_err = [] # инициализация списка для символов не в алфавите
|
||||
|
||||
# =====
|
||||
# Главная логика
|
||||
# =====
|
||||
|
||||
for symbol in text:
|
||||
if symbol in alphabet:
|
||||
score += alphabet[symbol]
|
||||
else:
|
||||
symb_err.append(symbol)
|
||||
return score
|
||||
|
||||
# Функция мультиплеера
|
||||
# Внутри встроена одиночная игра
|
||||
# и интерактив ввиде выхода, выбора игры и ввода игроков
|
||||
def parral_game(players):
|
||||
players = players.split() # преобразование в список.
|
||||
print(len(players))
|
||||
if len(players) == 1: # Если игрок один то вопрос переходить ли на одиночный режим
|
||||
print("- У вас один игрок\n- Выбираете режим одиночной?")
|
||||
print("Yes(1), No(0)")
|
||||
subm = int(input(":: "))
|
||||
if subm == 1: # Если да то начинается одиночная игра
|
||||
onepl_game = input("Введите текст: ")
|
||||
resopl = scrabble(onepl_game)
|
||||
print(f"Введенное слово: {onepl_game}, счет: {resopl}")
|
||||
exit()
|
||||
if subm == 0: # Если нет то опрашивается имя игроков
|
||||
subm_name = input("Введите снова имена игроков: ")
|
||||
subm_name = subm_name.split() # преобразую в список
|
||||
subm_name = players # называю его как основной входящий аргумент функции
|
||||
if len(players) > 1: # Мультиплеер
|
||||
score_list = [] # инициализация игрового списка, индекс игрока == индекс статистики
|
||||
for rond in range(1,10+1): # создание цикла на раунд
|
||||
print(f"{rond} round")
|
||||
for player_index in range(len(players)): # создания цикла на кол-во игроков
|
||||
print(f"Ход {players[player_index]}")
|
||||
input_text = input(":: ")
|
||||
res = scrabble(input_text)
|
||||
score_list.append(res)
|
||||
if score_list[player_index] > 0:
|
||||
score_list[player_index] += res
|
||||
print(f"Очки :: {score_list[player_index]}")
|
||||
print("--след--")
|
||||
score_top = max(score_list) # определение победителя
|
||||
score_top_index = score_list.index(score_top) # определение имени победителя
|
||||
print(f"Выйграл {players[score_top_index]}, результат {score_top}")
|
||||
print(f"Список игроков:")
|
||||
for num_player in range(len(players)): # создания цикла на вывод списка играющих, не по сортировке
|
||||
print(f"- {num_player}: {players[num_player]}, {score_list[num_player]}")
|
||||
else: # Выход из игры
|
||||
print("!Не веденны игроки, выход.")
|
||||
exit()
|
||||
|
||||
parral_game(input("- Для выхода из программы нажмите энтер без текста\n- Введите кол-во игроков: "))
|
||||
BIN
23-10/calculator_practica/__pycache__/calc.cpython-313.pyc
Normal file
BIN
23-10/calculator_practica/__pycache__/calc.cpython-313.pyc
Normal file
Binary file not shown.
40
23-10/calculator_practica/calc.py
Normal file
40
23-10/calculator_practica/calc.py
Normal file
@@ -0,0 +1,40 @@
|
||||
def menu():
|
||||
while True:
|
||||
print(":: Calculator lesson 23-10 ::")
|
||||
a = int(input("(1)-:: "))
|
||||
b = int(input("(2)-:: "))
|
||||
print(":: Menu ::\n" "1::+\t" "2::-\n" "3::-*\t" "4::-/\n" "0::exit\n")
|
||||
oper = int(input("Enter oper :: "))
|
||||
if oper == 0:
|
||||
print(":: exit!")
|
||||
break
|
||||
calc(a,b,oper)
|
||||
|
||||
def calc(num1,num2,ans):
|
||||
result=0
|
||||
def summ():
|
||||
return num1+num2
|
||||
def deff():
|
||||
return num1-num2
|
||||
def diff():
|
||||
if num2 == 0:
|
||||
return 0
|
||||
else:
|
||||
return num1/num2
|
||||
def multi():
|
||||
return num1*num2
|
||||
def printf():
|
||||
print(f"{num1}{ans}{num2}={result}")
|
||||
if ans == 1:
|
||||
ans = "+"
|
||||
result = summ(num1,num2)
|
||||
elif ans == 2:
|
||||
ans = "-"
|
||||
result = deff(num1,num2)
|
||||
elif ans == 4:
|
||||
ans = "/"
|
||||
result = diff(num1,num2)
|
||||
elif ans == 3:
|
||||
ans = "*"
|
||||
result = multi(num1,num2)
|
||||
printf(result,ans)
|
||||
4
23-10/calculator_practica/main.py
Normal file
4
23-10/calculator_practica/main.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from calc import menu
|
||||
|
||||
if __name__ == "__main__":
|
||||
menu()
|
||||
75
23-10/home_work.py
Normal file
75
23-10/home_work.py
Normal file
@@ -0,0 +1,75 @@
|
||||
#====
|
||||
# Tasks
|
||||
#====
|
||||
|
||||
def one_task(): # Форматированный текст при помощи табуляции.
|
||||
print("\n\"Don\'t compare yourself with anyone in this world...if you do so, you are insulting\nyourself.\""
|
||||
"\n\nBill Gates \n")
|
||||
|
||||
def two_task(): # Четные числа
|
||||
list_numbers=[]
|
||||
one_num = int(input("1_число :> "))
|
||||
two_num = int(input("2_число :> "))
|
||||
for nums in range(one_num,two_num+1):
|
||||
if nums%2==0:
|
||||
list_numbers.append(nums) # Добавление числа в список
|
||||
print("Четные числа:",*list_numbers) # Вывод чисел без скобок через операнд распаковки *
|
||||
|
||||
def thr_task(): # Квадрат
|
||||
# Перевод булева значения в true или false если у них низкие буквы
|
||||
def to_bool(bool_str):
|
||||
if bool_str.lower() == "true":
|
||||
return True
|
||||
elif bool_str.lower() == "false":
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
# Интерактивное меню
|
||||
def interact():
|
||||
print("напишите значения в строку так: \"(ширина) (высота) (Заполнять квадрат(булево значение!) (патерн внутри если заполнять квадрат))\"\n"
|
||||
"Обязательно заполнять аргументы через пробел! Допустимо через - или ,")
|
||||
answer = input(":> ") # опрашиваю пользователя, как в bash с $1/$2/$n....
|
||||
lis = answer.split() # превращаю тип данных в список(все определяется по пробелам)
|
||||
cube(int(lis[0]), int(lis[1]), to_bool(lis[2]), lis[3]) # передаю эти значения, так же назначаю на ширину и высоту тип данных int, а на булево значение проверку если оно другое
|
||||
|
||||
# Сам алгоритм(грубо говоря мозги)
|
||||
def cube(width, height, bool_fill, pattern):
|
||||
if bool_fill == True:
|
||||
for height_cube in range(1,height+1):
|
||||
print(pattern*width)
|
||||
elif bool_fill == False:
|
||||
print(pattern*width)
|
||||
for height_cube in range(1,height-2):
|
||||
print(pattern, " "*(width-4), pattern)
|
||||
print(pattern*width)
|
||||
interact() # Вызов интерактивного меню
|
||||
|
||||
#====
|
||||
# Main
|
||||
#====
|
||||
|
||||
def main(): # Основные функции
|
||||
def tasks(ans): # Модуль перехода к заданиями
|
||||
if ans == 1:
|
||||
one_task() # Так как задания изолированые, входные аргументы не передаются
|
||||
elif ans == 2:
|
||||
two_task()
|
||||
elif ans == 3:
|
||||
thr_task()
|
||||
|
||||
def menu(): # Основной модуль выбора задания
|
||||
while True: # Так как программа подразумевает запуск нескольких заданий
|
||||
# Мы делаем цикличную работу, пока не будет выбран 0 для brake.
|
||||
print("Домашнее задание от 23.10.25\nВыберите номер задания:\n"
|
||||
":-1 формат текст\t" ":-2 четн числа\n" ":-3 квадрат\t\t"
|
||||
":-0 Выход\n")
|
||||
answer = int(input(":> "))
|
||||
if answer == 0:
|
||||
print(":: exit!")
|
||||
break
|
||||
tasks(answer) # Переход к модулю перехода к заданиям
|
||||
menu()
|
||||
|
||||
if __name__ == "__main__": # Используем скрипт как основной а не как импорт
|
||||
main()
|
||||
71
24-10/mont_carlo.py
Normal file
71
24-10/mont_carlo.py
Normal file
@@ -0,0 +1,71 @@
|
||||
# Experiment::monte-carlo
|
||||
import datetime
|
||||
from random import randint
|
||||
|
||||
def getBirthdays(numberOfBirthDays):
|
||||
birthdays = [] # Список дней рожддения
|
||||
for i in range(numberOfBirthDays):
|
||||
# Год в нашей имитации роли не играет
|
||||
# Лишь бы в обьектах дней рождения он был одинаков
|
||||
startOfYear = datetime.date(2000,1,1)
|
||||
# случайный день года
|
||||
randomNumberOfDays = datetime.timedelta(randint(0,364))
|
||||
birthday = startOfYear + randomNumberOfDays
|
||||
birthdays.append(birthday)
|
||||
return birthdays
|
||||
'''
|
||||
Принимает список дней рождения. обрабатывает его и
|
||||
возвращает совпадения в датах, кот.
|
||||
Встречаются несколько раз.
|
||||
'''
|
||||
|
||||
def getMatch(birthdays):
|
||||
if len(birthdays) == len(set(birthdays)):
|
||||
return None # даты не совпадают, выход.
|
||||
for a, birthdayA in enumerate(birthdays): # enumerate() про списку
|
||||
for b, birthdayB in enumerate(birthdays[a+1 : ]):
|
||||
if birthdayA == birthdayB:
|
||||
return birthdayA # даты совпали
|
||||
|
||||
def main():
|
||||
# Кортеж мес в году
|
||||
MONTHS = ('Jan','Feb','Mar','Apr','May','Jun',
|
||||
'Jul','Aug','Sep','Oct','Nov','Dec')
|
||||
print("Симуляция совпадения дней рождения")
|
||||
while True:
|
||||
print("Сколько симуляции хотите сделать?\n PS max=100")
|
||||
response = input(":>")
|
||||
if response.isdecimal() and 0 < int(response): # Для неограниченного ввода значений убираем <= 100
|
||||
numBDats = int(response) # При комментировании прилетает ошибка неопределенного типа данных.
|
||||
break
|
||||
print()
|
||||
# Генерируем и отображаем дни рождения
|
||||
day_birth = getBirthdays(numBDats) # Так как существует вторая переменная birthdays, то она перезаписывает данные по новому. По этому при выполнении кода на 59 строке переменная перезаписывается.
|
||||
for i, birthday in enumerate(day_birth): # Изменение переменной(43 строка)
|
||||
if i != 0:
|
||||
print(", ", end='')
|
||||
month = MONTHS[birthday.month - 1]
|
||||
dateText = "{} {}".format(month, birthday.day)
|
||||
print(dateText, end='')
|
||||
print()
|
||||
print()
|
||||
print(f"Генерация {numBDats} случайных симуляции")
|
||||
input("Нажмите Enter для старта....")
|
||||
print("Запуск 100.000 симуляции")
|
||||
simMatch = 0
|
||||
for i in range(100_000):
|
||||
if i % 1_000 == 0: # меняем число с 10_000 на 1_000
|
||||
print(i, " запущена симуляция...")
|
||||
birthdays = getMatch(day_birth) # Изменение переменной(43 строка)
|
||||
if getMatch(day_birth) != None: # Изменение переменной(43 строка)
|
||||
simMatch += 1
|
||||
print(":"*11)
|
||||
print("Было выполнено 100.000 симуляции.")
|
||||
probability = round(simMatch/100_000*100,2)
|
||||
print("Процент совпадения",probability)
|
||||
print("Кол-во дат для исследования:",numBDats)
|
||||
print("Кол-во циклов симуляции:",simMatch)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
39
26-09.py
Normal file
39
26-09.py
Normal file
@@ -0,0 +1,39 @@
|
||||
#2 задание
|
||||
b = input()
|
||||
lis = [int(ind) for ind in b]
|
||||
b_min = b[0]
|
||||
print(f"минимум: {b_min} список: {b}")
|
||||
|
||||
#3 задание
|
||||
b = input()
|
||||
lis = [int(i) for i in b]
|
||||
index_num = 0
|
||||
std_num = 0
|
||||
while True:
|
||||
if lis[index_num] <= 1:
|
||||
std_num += 1
|
||||
elif lis[index_num] <= 1:
|
||||
std_num += 1
|
||||
elif lis[index_num] % 2 == 0 or lis[index_num] % 3 == 0:
|
||||
std_num += 1
|
||||
index_num += 1
|
||||
if index_num == len(lis) - 1:
|
||||
print(f"Кол во простых чисел: {std_num}, список: {lis}")
|
||||
|
||||
#4 задание
|
||||
list = [1, 2, 3, 4, 5, 6, 10, 22, 343, 4]
|
||||
num_input = int(input())
|
||||
del_list = list.remove(num_input)
|
||||
print("удаленные элементы: {} \n список: {}".format(num_input, list))
|
||||
|
||||
#5 задание
|
||||
list1 = [1, 2, 3, 4, 5]
|
||||
list2 = [100, 200, 300, 200]
|
||||
def lis_obe(lis1, lis2):
|
||||
return lis1+lis2
|
||||
print(lis_obe(list1, list2))
|
||||
|
||||
# 6 задание
|
||||
spisok = [1, 2, 3, 4, 10, 12]
|
||||
stepen = 2
|
||||
print([i ** stepen for i in spisok])
|
||||
13
Practica2_rel/task1_rpo254.py
Normal file
13
Practica2_rel/task1_rpo254.py
Normal file
@@ -0,0 +1,13 @@
|
||||
num1 = int(input("Enter 1 number: "))
|
||||
num2 = int(input("Enter 2 number: "))
|
||||
num3 = int(input("Enter 3 number: "))
|
||||
sel = int(input("Summ(1) and proiz(2): "))
|
||||
summ = ( num1 + num2 + num3 )
|
||||
proz = ( num1 * num2 * num3 )
|
||||
|
||||
if sel == 1:
|
||||
print(summ)
|
||||
elif sel == 2:
|
||||
print(proz)
|
||||
else:
|
||||
print("please enter 1 and 2")
|
||||
6
Practica2_rel/task2_rpo254.py
Normal file
6
Practica2_rel/task2_rpo254.py
Normal file
@@ -0,0 +1,6 @@
|
||||
salary = int(input("salary: "))
|
||||
credit = int(input("credit: "))
|
||||
comm_u = int(input("service: "))
|
||||
|
||||
obd = (salary - credit - comm_u)
|
||||
print(obd)
|
||||
4
Practica2_rel/task3_rpo254.py
Normal file
4
Practica2_rel/task3_rpo254.py
Normal file
@@ -0,0 +1,4 @@
|
||||
d1 = int(input("Diagonal^1: "))
|
||||
d2 = int(input("Diagonal^2: "))
|
||||
s = (d1 * d2) / 2
|
||||
print(s)
|
||||
1
Practica2_rel/task4_rpo254.py
Normal file
1
Practica2_rel/task4_rpo254.py
Normal file
@@ -0,0 +1 @@
|
||||
print("To be\nor not\nto be")
|
||||
1
Practica2_rel/task5_rpo254.py
Normal file
1
Practica2_rel/task5_rpo254.py
Normal file
@@ -0,0 +1 @@
|
||||
print("<<Life is what happens\n \t\t\twhen\n \t\t\t\tyou're busy making other plans>>")
|
||||
13
Practica3/task1_rpo254.py
Normal file
13
Practica3/task1_rpo254.py
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env python
|
||||
a = int(input())
|
||||
b = 1
|
||||
while b < 10:
|
||||
print(f"{a} * {b} = {a*b}")
|
||||
b += 1
|
||||
|
||||
# Через for i можно реализовать полную таблицу умножения
|
||||
#for i in range(1, 10 + 1):
|
||||
# for b in range(1, 10 + 1):
|
||||
# n = i * b
|
||||
# print("{} * {} = {}".format(i, b, n))
|
||||
# print("-=-=-=-=-")
|
||||
28
Practica3/task2_rpo254.py
Normal file
28
Practica3/task2_rpo254.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import sys as os # удобнее так :3
|
||||
while True:
|
||||
print("список для перевода в руб\n"
|
||||
"- 1. В доллары\n"
|
||||
"- 2. В Юани\n"
|
||||
"- 3. В тенге\n"
|
||||
"- 4. в Гривны\n"
|
||||
"- 0. выход")
|
||||
choice = int(input("Выберите :: "))
|
||||
res = int(input("Сумма(RUB) :: "))
|
||||
if choice == 0:
|
||||
print("выход")
|
||||
os.exit(1)
|
||||
elif choice == 1:
|
||||
print(f"usd: {res / 83.66}")
|
||||
os.exit(1)
|
||||
elif choice == 2:
|
||||
print(f"cny: {res / 11.76}")
|
||||
os.exit(1)
|
||||
elif choice == 3:
|
||||
print(f"kzt: {res / 0.15}")
|
||||
os.exit(1)
|
||||
elif choice == 4:
|
||||
print(f"uah: {res / 2.02}")
|
||||
os.exit(1)
|
||||
else:
|
||||
print("ОШИБКА! не введено число из списка")
|
||||
os.exit(1)
|
||||
9
Practica3/task3_rpo254.py
Normal file
9
Practica3/task3_rpo254.py
Normal file
@@ -0,0 +1,9 @@
|
||||
mini = int(input("нач :: "))
|
||||
maxi = int(input("кон :: "))
|
||||
numb = int(input("чис :: "))
|
||||
while mini < maxi:
|
||||
if mini == numb:
|
||||
print(f" !{mini} !", end=' ')
|
||||
else:
|
||||
print(mini, end=' ')
|
||||
mini += 1
|
||||
15
Practica3/task4_rpo254.py
Normal file
15
Practica3/task4_rpo254.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from random import randint as r
|
||||
import sys as os
|
||||
|
||||
value = r(1,500)
|
||||
d = -50
|
||||
while d != 0:
|
||||
print("Загадано число от 1 до 500")
|
||||
d = int(input("введи число: "))
|
||||
if d < value:
|
||||
print("Меньше!")
|
||||
elif d > value:
|
||||
print("Больше!")
|
||||
elif d == value:
|
||||
print("Победа!")
|
||||
os.exit(1)
|
||||
15
Practica3/task5_vlkad_rpo254.py
Normal file
15
Practica3/task5_vlkad_rpo254.py
Normal file
@@ -0,0 +1,15 @@
|
||||
start_sum = int(input())
|
||||
percent = int(input())
|
||||
sum_year = int(input())
|
||||
|
||||
if start_sum > 0 or percent > 0 or years > 0:
|
||||
form = 1+percent/100
|
||||
print("\nрасчет")
|
||||
curr_sum = start_sum
|
||||
for i in range(1,sum_year+1):
|
||||
curr_sum = curr_sum * form
|
||||
curr_sum = curr_sum // 1 #убрать огромный хвост после запятой
|
||||
print(f"Год {i}: {curr_sum} руб.")
|
||||
print(f"Итог сумма через {i} лет: {curr_sum} руб")
|
||||
else:
|
||||
print("Числа меньше 0!")
|
||||
@@ -1,3 +1,3 @@
|
||||
# python_it_top
|
||||
# РЕПОЗИТОРИЙ АРХИВИРОВАН
|
||||
[НОВЫЙ_РЕПОЗИТОРИЙ](https://git.sophron.ru/sophron/itc_projects)
|
||||
|
||||
Мои файлы с пары
|
||||
48
test_time_func.py
Normal file
48
test_time_func.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from time import time
|
||||
from sys import exit as ex
|
||||
|
||||
REPET = [ 20_000, 40_000, 60_000, 80_000 ]
|
||||
REPET_INDEX = int(0) # началый индекс
|
||||
|
||||
while True: # Включаю цикл для повторения списков, в конце к индексу прибавляется 1
|
||||
print("Значение repet:", REPET[REPET_INDEX]) # легкое обозначение того на какой рипит сейчас идет цикл
|
||||
# Тест append
|
||||
start = time()
|
||||
arr = []
|
||||
for _ in range(REPET[REPET_INDEX]): # указание радиуса
|
||||
arr.append(5)
|
||||
stop = time()
|
||||
print("appd: ", stop - start)
|
||||
|
||||
# Тест pop(удаление последнего элемента)
|
||||
start = time()
|
||||
arr = []
|
||||
for _ in range(REPET[REPET_INDEX]):
|
||||
arr.append(5) # Без добавления элемента pop просто будет писать об отсуствии элементов в списке
|
||||
arr.pop()
|
||||
stop = time()
|
||||
print("pop(посл): ", stop - start)
|
||||
|
||||
# Тест pop(удаление первого элемента)
|
||||
start = time()
|
||||
arr = []
|
||||
for _ in range(REPET[REPET_INDEX]):
|
||||
arr.append(5) # Тоже самое что и в поп где удаление последнего элемента
|
||||
arr.pop(0)
|
||||
stop = time()
|
||||
print("pop(перв): ", stop - start)
|
||||
|
||||
# Тест insert
|
||||
start = time()
|
||||
arr = []
|
||||
for _ in range(REPET[REPET_INDEX]):
|
||||
arr.insert(0,5)
|
||||
stop = time()
|
||||
print("ins: ", stop - start)
|
||||
|
||||
# Добавление индекса и начало нового цикла
|
||||
print("--= кон репит =--") # оповещение об закончивании первого рипита
|
||||
REPET_INDEX += 1 # добавление индекса(тоесть от 0)
|
||||
if REPET_INDEX == 4: # если индекс больше 3 то сделать выход из программы
|
||||
ex(1) # Тоесть не выводить каждый раз трейсбак
|
||||
|
||||
8
th3rd_sergeevich.py
Normal file
8
th3rd_sergeevich.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# Принцип
|
||||
# Чтобы создать список циклом нужно обьявить i как интегер.
|
||||
# дальше выполняется цикл для i в радиусе(от 1 до 3*25+1(1 добавляется так как 25 целая и не указывается при выводе))
|
||||
# насколько понимаю при создании списка не нужно указывать двоеточия.
|
||||
# так что выполняю условие если, если i делится с остатком на 3 и остаток равен 0 то вывести список.
|
||||
# дальше просто принт(n)
|
||||
n = [ int(i) for i in range(1,3*25+1) if i % 3 == 0 ]
|
||||
print(n)
|
||||
Reference in New Issue
Block a user