книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
Упражнение 100. Случайный пароль## # Генерируем и отображаем случайный пароль, содержащий от 7 до 10 символов # from random import randint SHORTEST = 7 LONGEST = 10 MIN_ASCII = 33 MAX_ASCII = 126 ## Генерируем случайный пароль # @return строка, содержащая случайный пароль def randomPassword(): # Выбираем случайную длину пароля randomLength = randint(SHORTEST, LONGEST) # Генерируем соответствующее количество случайных символов, добавляя их к результату result = "" for i in range(randomLength): randomChar = chr(randint(MIN_ASCII, MAX_ASCII)) result = result + randomChar Функция chr принимает код ASCII в качестве единственного параметра и возвращает символ, соответствующий этому коду. # Возвращаем случайный пароль return result # Генерируем и отображаем случайный пароль def main(): print("Ваш случайный пароль:", randomPassword()) # Вызываем основную функцию, только если файл не импортирован if __name__ == "__main__": main() Упражнение 102. Проверка пароля на надежность## # Проверка пароля на надежность # ## Проверяем, является ли пароль надежным. Надежным будем считать пароль, в котором # как минимум 8 символов, есть большие и маленькие буквы, а также цифры # @param password – пароль для проверки # @return True, если пароль надежен, иначе False def checkPassword(password): has_upper = False has_lower = False has_num = False # Проверяем каждый символ в пароле for ch in password: if ch >= "A" and ch <= "Z": has_upper = True elif ch >= "a" and ch <= "z": has_lower = True elif ch >= "0" and ch <= "9": has_num = True # Если пароль отвечает всем четырем требованиям if len(password) >= 8 and has_upper and has_lower and has_num: return True # Если как минимум одно требование не соблюдено return False # Демонстрируем работу функции def main(): p=input("Введите пароль: ") if checkPassword(p): print("Это надежный пароль.") else: print("Это ненадежный пароль.") # Вызываем основную функцию, только если файл не импортирован if __name__ == "__main__": main() Упражнение 105. Произвольные системы счисления## # Переводим значение из одной системы счисления в другую. Диапазон систем – от 2 до 16 # from hex_digit import * Модуль hex_digit содержит функции hex2int и int2hex, которые мы написали, решая упражнение 104. Инструкция import * позволит загрузить все функции из модуля. ## Переводим число из десятичной системы в произвольную # @param num – число в десятичной системе для преобразования # @param new_base – основание для выходного результата # @return строка в новой системе счисления def dec2n(num, new_base): # Формируем представление числа в новой системе счисления, сохраняя в result result = "" q = num # Первый запуск тела будущего цикла r = q % new_base result = int2hex(r) + result q=q // new_base # Продолжаем цикл, пока q не станет равен нулю while q > 0: r = q % new_base result = int2hex(r) + result q = q // new_base # Возвращаем результат return result
## Переводим число из произвольной системы # в десятичную # @param num – число в системе по основанию b, # сохраненное в виде строки # @param b – основание преобразуемого числа # @return число в десятичной системе счисления def n2dec(num, b): decimal = 0 # Обрабатываем каждую цифру по основанию b for i in range(len(num)): decimal = decimal * b decimal = decimal + hex2int(num[i]) # Возвращаем результат return decimal # Преобразуем число между произвольными системами счисления def main(): # Запрашиваем у пользователя исходную систему счисления и число from_base = int(input("Исходная система счисления (2–16): ")) if from_base < 2 or from_base > 16: print("Допустимый диапазон систем счисления: от 2 до 16.") print("Выходим...") quit() from_num = input("Введите число по этому основанию: ") # Преобразуем в десятичное число и отображаем результат dec = n2dec(from_num, from_base) print("Результат: %d по основанию 10." % dec) # Преобразуем в число с новым основанием и отображаем результат to_base = int(input("Введите требуемую систему счисления (2–16): ")) if to_base < 2 or to_base > 16: print("Допустимый диапазон систем счисления: от 2 до 16.") print("Выходим...") quit() to_num = dec2n(dec, to_base) print("Результат: %s по основанию %d." % (to_num, to_base)) # Вызов основной функции main() |