123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- import random
- def game_guesse():
- x = random.randint(1, 101)
- print(x)
- print("Добро пожаловать в числовую угадайку")
- number = int(input())
- trys = 1
- while number:
- if is_valid(number) == False:
- print('А может быть все-таки введем целое число от 1 до 100?')
- number = int(input())
- trys += 1
- continue
- if number > x:
- print('Ваше число больше загаданного, попробуйте еще разок')
- elif number < x:
- print('Ваше число меньше загаданного, попробуйте еще разок')
- else:
- print('Вы угадали, поздравляем!')
- print(f'Число попыток: {trys}')
- print('Спасибо, что играли в числовую угадайку. Еще увидимся...')
- break
- number = int(input())
- trys += 1
- def is_valid(num):
- return 1 <= num <= 100
- # game_guesse()
- # Шифр Цезаря. Очень плохая реализация.
- def caesar_cipher_1(data: str, rot: int):
- RU_LEN = 32
- chipher_date = ''
- a = ord('а')
- A = ord('А')
- low_case_ch = [chr(x) for x in range(a, a + RU_LEN)]
- low_case = [x for x in range(a, a + RU_LEN)]
- up_case_ch = [chr(x) for x in range(A, A + RU_LEN)]
- up_case = [x for x in range(A, A + RU_LEN)]
- print(''.join(low_case_ch))
- # print(up_case, len(up_case))
- if rot > 31:
- rot = rot%31
- for i in data:
- code = ord(i)
- if code in low_case:
- if rot > (low_case[-1] - code):
- chipher_date += chr(low_case[0] + rot - (low_case[-1] - code) - 1)
- else:
- chipher_date += chr(code + rot)
- elif code in up_case:
- if rot > (up_case[-1] - code):
- chipher_date += chr(up_case[0] + rot - (up_case[-1] - code) - 1)
- else:
- chipher_date += chr(code + rot)
-
- else:
- chipher_date += i
- return chipher_date
- # Шифр Цезаря. Нормальная реализация.
- def caesar_cipher_2(data: str, rot: int, lang='ru'):
- RU_LEN = 31
- EN_LEN = 25
- chipher_date = ''
- d = [chr(x) for x in range(ord('а'), ord('я') + 1)]
- ru_low_case = ''.join(d) * 2
- d = [chr(x) for x in range(ord('А'), ord('Я') + 1)]
- ru_up_case = ''.join(d) * 2
- d = [chr(x) for x in range(ord('a'), ord('z') + 1)]
- en_low_case = ''.join(d) * 2
- d = [chr(x) for x in range(ord('A'), ord('Z') + 1)]
- en_up_case = ''.join(d) * 2
- if lang == 'ru':
- if rot > RU_LEN:
- rot = rot%RU_LEN
- for i in data:
- if i in ru_low_case:
- chipher_date += ru_low_case[ru_low_case.index(i) + rot]
- elif i in ru_up_case:
- chipher_date += ru_up_case[ru_up_case.index(i) + rot]
- else:
- chipher_date += i
- elif lang == 'en':
- if rot > EN_LEN:
- rot = rot%EN_LEN
- for i in data:
- if i in en_low_case:
- chipher_date += en_low_case[en_low_case.index(i) + rot]
- elif i in en_up_case:
- chipher_date += en_up_case[en_up_case.index(i) + rot]
- else:
- chipher_date += i
- else:
- return '-1'
-
- return chipher_date
- # Шифр Цезаря. Нормальная реализация.
- def caesar_recipher_2(data: str, rot: int, lang='ru'):
- RU_LEN = 31
- EN_LEN = 25
- chipher_date = ''
- d = [chr(x) for x in range(ord('а'), ord('я') + 1)]
- ru_low_case = ''.join(d) * 2
- d = [chr(x) for x in range(ord('А'), ord('Я') + 1)]
- ru_up_case = ''.join(d) * 2
- d = [chr(x) for x in range(ord('a'), ord('z') + 1)]
- en_low_case = ''.join(d) * 2
- d = [chr(x) for x in range(ord('A'), ord('Z') + 1)]
- en_up_case = ''.join(d) * 2
- if lang == 'ru':
- if rot > RU_LEN:
- rot = rot%RU_LEN
- for i in data:
- if i in ru_low_case:
- chipher_date += ru_low_case[ru_low_case.index(i) - rot]
- elif i in ru_up_case:
- chipher_date += ru_up_case[ru_up_case.index(i) - rot]
- else:
- chipher_date += i
- elif lang == 'en':
- if rot > EN_LEN:
- rot = rot%EN_LEN
- for i in data:
- if i in en_low_case:
- chipher_date += en_low_case[en_low_case.index(i) - rot]
- elif i in en_up_case:
- chipher_date += en_up_case[en_up_case.index(i) - rot]
- else:
- chipher_date += i
- else:
- return '-1'
-
- return chipher_date
- # print(caesar_cipher_2("Блажен, кто верует, тепло ему на свете!", 10, 'ru'))
- # print(caesar_recipher_2("Лхкрпч, фьш мпъэпь, ьпщхш пцэ чк ымпьп!", 10, 'ru'))
- # print(caesar_cipher_2("To be, or not to be, that is the question!", 17, 'en'))
- def length(data: str):
- ret = 0
- for i in data:
- if i.isalpha():
- ret += 1
- return len([x for x in data if x.isalpha()])
-
- def caesar_cipher_test(data: str):
- l = data.split()
- ret = ''
- for sim in l:
- rot = length(sim)
- for i in sim:
- ret += caesar_cipher_2(i, rot, 'en')
- ret += ' '
- return ret
- # print(caesar_cipher_test("my name is Python!"))
- # print(caesar_cipher_test('Day, mice. "Year" is a mistake!'))
- def test(num):
- bin_num = bin(num) # 0b1111111
- oct_num = oct(num) # 0o177
- hex_num = hex(num) # 0x7f
- print(bin_num[2:]) # 1111111
- print(oct_num[2:]) # 177
- print(hex_num[2:]) # 7f
- # test(124)
- def my_range_gen(*args):
- if len(args) == 1:
- cnt = 0
- while cnt != args[0]:
- yield cnt
- cnt += 1
- elif len(args) == 2:
- cnt = args[0]
- while cnt < args[1]:
- yield cnt
- cnt += 1
- elif len(args) == 3:
- if args[2] > 0:
- cnt = args[0]
- while cnt < args[1]:
- yield cnt
- cnt += args[2]
- elif args[2] == 0:
- return
- else:
- cnt = args[0]
- while cnt > args[1]:
- yield cnt
- cnt += args[2]
- for i in my_range_gen(8):
- print(i)
- # for i in my_range_gen(8, 5, -1):
- # print(i)
- # for i in my_range_gen(10, 30, 3):
- # print(i)
- # for i in my_range_gen(30, 1, 0):
- # print(i)
- # for i in my_range_gen(30, 1, -5):
- # print(i)
- # for i in my_range_gen(5):
- # print(i)
- # s = my_range_gen(5)
- # print(next(s))
- # print(next(s))
- # print(next(s))
- # print(next(s))
- # print(next(s))
- # print(next(s))
-
- # def f(*args, **kwargs):
- # print(args, kwargs)
- # f(5, 4, 5, 6, 1, a = 1, b = 5, c = 6, name = 123)
|