-
Notifications
You must be signed in to change notification settings - Fork 0
Сhange 1 #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Сhange 1 #18
Changes from all commits
51ba277
028369a
a01532c
893e007
28820e6
170567c
ab0820a
b4d9b75
dd6a802
5b088a2
8d6d5c5
7a335f5
4002e0f
bbc000c
18e9a0b
35f043b
51f0abb
9ff0238
3abf1a3
5a56e7f
7686879
3bfc44b
3478f1c
541f31c
c8877d5
0360793
a644901
19f730e
2e6f0db
9cc28c2
eb12806
2090f32
1488e61
d6b159f
a920f23
61c5ccf
e363ea1
ba7b2af
62ca9c9
1fd6c15
007feae
1c3f8bf
97f4435
be38b9e
cb91fa8
7a9d0e0
d23a711
8c09263
d9bb32c
837c45c
fefbdf5
2311458
1b713ba
679b66c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| lst = ["10", "5", "a", "3", "b"] | ||
| lst1 = [x**2 for z in lst if z.isdigit() and (x := int(z))%5 == 0] | ||
| print(lst1) | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| #-*- coding: utf-8 -*- | ||
| import random | ||
|
|
||
| hello = ["Привет!", "Здравствуйте!", "Добрый день!"] | ||
| mood = ["Хорошо!", "Так себе", "Что-то не очень хорошо"] | ||
| weather = ["Сегодня ветренно", "Сегодня солнечно", "Дождь"] | ||
|
|
||
| while True: | ||
| match input('Что Вы хотели спросить: '): | ||
| case "Привет": | ||
| print(random.choice(hello)) | ||
| case "Как дела?": | ||
| print(random.choice(mood)) | ||
| case "Какая сегодня погода": | ||
| print(random.choice(weather)) | ||
| case _: | ||
| print("Вопрос некорректен, попробуйте сформулировать его по-другому") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| # -*- coding: utf-8 -*- | ||
|
|
||
| import time | ||
| import threading | ||
| import multiprocessing | ||
|
|
||
| def find_primes(*args): | ||
| if len(args) == 1: | ||
| start = 3 | ||
| end = args[0] | ||
| else: | ||
| start = args[0] | ||
| end = args[1] | ||
|
|
||
| lst = [] | ||
| for i in range(start, end + 1): | ||
| if i > 1: | ||
| for y in range(2, i): | ||
| if i % y == 0: | ||
| break | ||
| else: | ||
| lst.append(i) | ||
| return lst | ||
|
|
||
| if __name__ == "__main__": | ||
| lst_time = [] | ||
| start = time.perf_counter() | ||
| find_primes(10000) | ||
| find_primes(10001, 20000) | ||
| find_primes(20001, 30000) | ||
|
|
||
| lst_time.append(time.perf_counter() - start) | ||
| print(f"Общее время обычного расчета занял в секундах: {lst_time}") | ||
|
|
||
| start = time.perf_counter() # считаем что-то много раз с разными параметрами | ||
| lst_time1 = [] | ||
| thr1 = threading.Thread(target=find_primes, args=(10000,)) | ||
| thr2 = threading.Thread(target=find_primes, args=(10001, 20000)) | ||
| thr3 = threading.Thread(target=find_primes, args=(20001, 30000)) | ||
| thr1.start() # если 'забыть' выполнить start, то будет ошибка RuntimeError: cannot join thread before it is started | ||
| thr2.start() | ||
| thr3.start() | ||
| thr1.join() # если 'забыть' выполнить join, то ошибки не будет, но выполнится только один поток | ||
| thr2.join() | ||
| thr3.join() | ||
| lst_time1.append(time.perf_counter() - start) | ||
| print(f"Общее время расчета через многопоточность занял в секундах: {lst_time1}") | ||
|
|
||
| start = time.perf_counter() | ||
| lst_time2 = [] | ||
| p1 = multiprocessing.Process(target=find_primes, args=(10000,)) | ||
| p2 = multiprocessing.Process(target=find_primes, args=(10001, 20000)) | ||
| p3 = multiprocessing.Process(target=find_primes, args=(20001, 30000)) | ||
| p1.start() # если 'забыть' выполнить start, то будет ошибка AssertionError: can only join a started process | ||
| p2.start() | ||
| p3.start() | ||
| p1.join() # если 'забыть' выполнить join, то ошибки не будет, но выполнится только один процесс | ||
| p2.join() | ||
| p3.join() | ||
| lst_time2.append(time.perf_counter() - start) | ||
| print(f"Общее время расчета через многопроцессорность занял в секундах: {lst_time2}") | ||
|
|
||
| # Быстрее всего данная задача решается через многопоточность | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Стоит получше присмотреться к результатам! У многопоточности здесь вообще не оснований выбиться в лидеры. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| # -*- coding: utf-8 -*- | ||
| from multiprocessing import Pool | ||
|
|
||
| def addition(data): | ||
| t = data[0] | ||
| match t: | ||
| case int(t): | ||
| res = 0 | ||
| for y in data: | ||
| res += y | ||
| case str(t): | ||
| res = "" | ||
| for y in data: | ||
| res += y | ||
| case list(t): | ||
| res = [] | ||
| for y in data: | ||
| res += y | ||
| return res | ||
|
|
||
|
|
||
|
|
||
| if __name__ == '__main__': | ||
| data = ([1, 2, 4], [[1, 2], [4, 7], [9, 0]], ["Hello", "world"]) | ||
| pool = Pool(processes=3) | ||
| res = pool.map(addition, data) | ||
| print(res) | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # -*- coding: utf-8 -*- | ||
| import socket | ||
| import pickle | ||
|
|
||
|
|
||
| s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||
| host = '192.168.1.35' | ||
| port = 64698 | ||
| s.bind((host, port)) | ||
| s.listen(2) | ||
| conn, addr = s.accept() | ||
| print('Server got connection from {}'.format(addr)) | ||
| while True: | ||
| data = conn.recv(1024) | ||
| if not data: | ||
| break | ||
| data1 = pickle.loads(data) | ||
| d = {"house": "дом", "car": "машина", "three": "дерево", "cat": "кошка", "apple": "яблоко"} | ||
| c = d.keys() | ||
| a = [] | ||
| for i in c: | ||
| for y in data1: | ||
| if y == i: | ||
| a.append(d[i]) | ||
| conn.send(pickle.dumps(a)) | ||
| conn.close() |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| import math | ||
|
|
||
|
|
||
| def square(r): | ||
|
IlyaOrlov marked this conversation as resolved.
|
||
| return math.pi * r ** 2 | ||
|
|
||
|
|
||
| radius = input("Введите радиус: ") | ||
| result = square(int(radius)) | ||
| print(f"Площадь круга: {result}") | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| start = input("Топлива было: ") | ||
| end = input("Топлива осталось: ") | ||
| distance = input("Расстояние: ") | ||
| diff = int(start) - int(end) | ||
| result = diff / int(distance) | ||
| print(f"Средний расход бензина: {result}") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| a = int(input("Введите длину прямоугольника: ")) | ||
| b = int(input("Введите ширину прямоугольника: ")) | ||
| p = 2*(a + b) | ||
| print(f"Периметр прямоугольника: {p}") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| time = int(input("Введите время, проведенное в пути: ")) | ||
| distance = int(input("Введите пройденное расстояние: ")) | ||
| speed = distance / time | ||
| print(f"Средняя скорость автомобиля равна: {speed}") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| password = int(input("Введите пароль :")) | ||
| key = 888 | ||
| result = password ^ key | ||
| print(result) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| code = int(input("Введите зашифрованный код :")) | ||
| key = 888 | ||
| password = code ^ key | ||
| print(password) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| word = input("Введите слово: ") | ||
| corrected_word = word.replace("А" , "*") | ||
| print(corrected_word) | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| word = input("Введите слово для проверки: ") | ||
| _lower = word.lower() | ||
| left = _lower | ||
| rights = _lower[::-1] | ||
| print(left == rights) | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| number = 1 | ||
| while number <= 100: | ||
| if number % 15 == 0: | ||
| print("FizzBuzz") | ||
| elif number % 5 == 0: | ||
| print("Buzz") | ||
| elif number % 3 == 0: | ||
| print("Fizz") | ||
| else: | ||
| print(number) | ||
| number += 1 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| numbers = input("Введите пятизначное число: ") | ||
| for i, d in enumerate(numbers): | ||
| print(f"{i+1} цифра равна {d}") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| numbers="" | ||
| while (symbol := input("Введите числовой символ: ")).lower() != "stop": | ||
| if symbol.isdecimal(): | ||
| numbers += symbol | ||
| else: | ||
| print("Введен нечисловой символ") | ||
| else: | ||
| print(f"Сформированное число: {int(numbers)}") | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| import random | ||
|
|
||
| answer = ["Ты сам-то понял, что написал?", "Аргументируй", "И?"] | ||
| while (request := input("Введите запрос: ")) != "хватит": | ||
| print(random.choice(answer)) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| import random | ||
|
|
||
| range = input("Введите диапазон чисел: ").split() | ||
| hidden_numbers = random.randint(int(range[0]), int(range[1])) | ||
| numbers_1 = input("Угадайте целое число: ") | ||
| while True: | ||
| if not numbers_1.isdigit(): | ||
| print("Вы ввели нечисловой символ") | ||
| break | ||
| else: | ||
| numbers_1 = int(numbers_1) | ||
| if numbers_1 < hidden_numbers: | ||
| print("Загаданное число больше введенного") | ||
| elif numbers_1 > hidden_numbers: | ||
| print("Загаданное число меньше введенного") | ||
| else: | ||
| print("Вы угадали") | ||
| break | ||
| numbers_1 = input("Угадайте целое число: ") | ||
|
|
||
|
|
||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| def choose_max(a, b): | ||
| if a > b: | ||
| max_1 = a | ||
| else: | ||
| max_1 = b | ||
| print(f"Большее число из введенных: {max_1}") | ||
|
|
||
|
|
||
| def finds_max(a, b): | ||
| if a > b: | ||
| max_2 = a | ||
| else: | ||
| max_2 = b | ||
| return max_2 | ||
|
|
||
|
|
||
| a, b = map(int, input("Введите два числа: ").split()) | ||
| choose_max(a, b) | ||
| finds_max(a, b) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| def decorator1(func): | ||
| def equality(*args, **kwargs): | ||
| print("===========") | ||
| res = func(*args, **kwargs) | ||
| print("===========") | ||
| return res | ||
| return equality | ||
|
|
||
|
|
||
| @decorator1 | ||
| def func(): | ||
| print("Привет") | ||
|
|
||
| func() | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| import random | ||
|
|
||
| play = ["камень", "ножницы", "бумага"] | ||
| while (player_1 := input("Введите ваш вариант: ").lower()) != "хватит": | ||
| player_2 = random.choice(play) | ||
| print(f"Вариант компьютера: {player_2}") | ||
| if player_1 == "камень": | ||
| if player_2 == "камень": | ||
| print("Ничья") | ||
| elif player_2 == "ножницы": | ||
| print("Вы выиграли") | ||
| elif player_2 == "бумага": | ||
| print("Вы проиграли") | ||
| elif player_1 == "ножницы": | ||
|
|
||
| if player_2 == "камень": | ||
| print("Вы проиграли") | ||
| elif player_2 == "ножницы": | ||
| print("Ничья") | ||
| elif player_2 == "бумага": | ||
| print("Вы выиграли") | ||
| elif player_1 == "бумага": | ||
|
|
||
| if player_2 == "камень": | ||
| print("Вы выиграли") | ||
| elif player_2 == "ножницы": | ||
| print("Вы проиграли") | ||
| elif player_2 == "бумага": | ||
| print("Ничья") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| def find_min_index(lst): | ||
| for i,d in enumerate(lst): | ||
| d = min(lst[i:]) | ||
| d, lst[i] = lst[i], d | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Мы так элементы теряем. Не стоит здесь надеяться на стандартную функцию min. min_idx = 0
min_val = lst[min_idx]
for i, d in enumerate(lst):
if d < min_val:
min_val = d
min_idx = i
return min_idxА перестановку можно и за пределами функции сделать. |
||
|
|
||
|
|
||
| arr = [0, 3, 24, 2, 3, 7] | ||
| #for i in range(0, len(arr)): | ||
| find_min_index(arr) | ||
| print(arr) | ||
|
|
||
| #def find_min_index(lst): | ||
| # a = min(lst[i:]) | ||
| # c = lst.index(a, i) | ||
| #lst[c], lst[i] = lst[i], lst[c] | ||
|
|
||
|
|
||
| #arr = [0, 3, 24, 2, 3, 7] | ||
| #for i in range(0, len(arr)): | ||
| # find_min_index(arr) | ||
| #print(arr) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| def repeat(lst): | ||
| set_new = set() | ||
| for i in lst: | ||
| if not i in set_new: | ||
| set_new.add(i) | ||
| else: | ||
| print(i) | ||
| return i | ||
|
|
||
|
|
||
| lst_new = [2, 3, 4, 5, 3, 2] | ||
| repeat(lst_new) | ||
|
|
||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| str_new = "Петров - 2 , Иванов - 5 , Сидоров - 4" | ||
| lst = list(str_new.split()) | ||
| dict_1 = {2: "неудовлетворительно", 3: "удовлетворительно", 4: "хорошо", 5: "отлично"} | ||
| for y, b in enumerate(lst): | ||
| if b.isdigit(): | ||
| b = int(b) | ||
| if b in dict_1: | ||
| lst[y] = dict_1[b] | ||
| str_1 = "" | ||
| for i in lst: | ||
| print(str_1.join(i), end=" ") | ||
|
|
||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Достаточно проверять делители до корня квадратного из i.