Главная страница

книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python


Скачать 2.24 Mb.
НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Анкоркнига заданий пайтон
Дата02.10.2022
Размер2.24 Mb.
Формат файлаdocx
Имя файлакнига практических заданий, pyton.docx
ТипСборник упражнений
#709959
страница59 из 69
1   ...   55   56   57   58   59   60   61   62   ...   69

Упражнение 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

Значение по основанию b должно быть представлено в виде строки, поскольку оно может содержать буквы, если основание счисления превышает 10.

## Переводим число из произвольной системы

# в десятичную

# @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()
1   ...   55   56   57   58   59   60   61   62   ...   69


написать администратору сайта