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

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


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

Упражнение 156. Сумма чисел


##

# Подсчитаем сумму переданных пользователем чисел, не считая нечислового ввода

#

# Запрашиваем у пользователя первое число line = input("Введите число: ") total = 0

# Продолжаем запрашивать числа, пока пользователь не оставит ввод пустым while line != "":

try: # Пытаемся конвертировать значение в число num = float(line) # Если все прошло успешно, прибавляем введенное число к общей сумме total = total + num print("Сумма сейчас составляет", total) except ValueError: # Отображаем предупреждение и переходим к следующему вводу print("Это было не число")

# Запрашиваем следующее число line = input("Введите число: ")

# Отображаем сумму print("Общая сумма:", total)

Упражнение 158. Удаляем комментарии


##

# Удаляем все комментарии из файла Python (за исключением ситуаций, когда

# символ комментария указан в середине строки)

#

# Запрашиваем у пользователя имя исходного файла и открываем его try:

in_name = input("Введите имя файла Python: ") inf = open(in_name, "r")

except: # Выводим сообщение и завершаем работу программы в случае возникновения ошибки print("При открытии файла возникла проблема.") print("Завершение работы программы...") quit()

# Запрашиваем у пользователя имя итогового файла и открываем его try:

out_name = input("Введите имя нового файла: ") outf = open(out_name, "w")

except: # Закрываем исходный файл, показываем сообщение об ошибке и завершаем программу inf.close() print("С создаваемым файлом возникла проблема.") print("Завершение работы программы...") quit()

Позиция символа комментария сохраняется в переменной pos. Так что выражение line[0 : pos] указывает на все символы в строке до знака комментария, не включая его.

try: # Читаем строки из исходного файла, избавляем их от комментариев и # сохраняем в новом файле for line in inf: # Находим позицию символа комментария (–1, если его нет) pos = line.find("#") # Если комментарий есть, создаем

# строковый срез со всеми знаками до него # и сохраняем обратно в переменную line if pos > –1:

line = line[0 : pos] line = line + "\n"

# Записываем потенциально измененную # строку в новый файл outf.write(line)

# Закрываем файлы inf.close() outf.close() except: # Выводим сообщение об ошибке, если что–то пошло не так print("При обработке файла возникла проблема.") print("Завершаем программу...")

Упражнение 159. Случайный пароль из двух слов


##

# Генерируем пароль путем сцепления двух случайных слов. Длина пароля должна составлять

# от 8 до 10 символов, а каждое слово должно быть длиной минимум 3 символа #

from random import randrange WORD_FILE = "../Data/words.txt"

Пароль, который мы создаем, должен содержать от 8 до 10 символов. Поскольку минимальная длина слова составляет 3 символа, а в пароле должно быть два слова, получается, что в пароле не может присутствовать слово длиной более 7 символов.

# Читаем все слова из файла, оставляя только те из них, длина которых варьируется # от 3 до 7 символов, и сохраняем их в список words = [] inf = open(WORD_FILE, "r") for line in inf: # Удаляем символ новой строки line = line.rstrip()

# Оставляем слова длиной от 3 до 7 символов if len(line) >= 3 and len(line) <= 7: words.append(line)

# Закрываем файл inf.close()

# Случайным образом выбираем первое слово для пароля first = words[randrange(0, len(words))] first = first.capitalize()

# Выбираем второе слово для пароля до тех пор, пока оно не будет подходить по размеру password = first while len(password) < 8 or len(password) > 10: second = words[randrange(0, len(words))] second = second.capitalize() password = first + second

# Отображаем случайный пароль print("Случайный пароль:", password)

Упражнение 162. Книги без буквы E


##

# Выводим процент слов, использующих все буквы в алфавите

# Также найдем букву, реже остальных встречающуюся в словах

#

WORD_FILE = "../Data/words.txt"

# Создадим словарь со счетчиком слов, содержащих каждую букву. # Для каждой буквы инициализируем счетчик нулем counts = {} for ch in "ABCDEFGHIJKLMNOPQRSTUVWXYZ": counts[ch] = 0

# Открываем файл, обрабатываем каждое слово и обновляем словарь со счетчиками num_words = 0 inf = open(WORD_FILE, "r") for word in inf: # Переводим слово в верхний регистр и избавляемся от символа новой строки word = word.upper().rstrip() # Перед обновлением словаря нужно создать список уникальных букв в слове.

# Иначе мы будем увеличивать счетчик для повторяющихся букв в слове. # Также будем игнорировать небуквенные символы unique = [] for ch in word: if ch not in unique and ch >= "A" and ch <= "Z": unique.append(ch)

# Увеличим счетчики для всех букв в списке уникальных символов for ch in unique: counts[ch] = counts[ch] + 1

# Увеличиваем количество обработанных слов num_words = num_words + 1

# Закрываем файл inf.close()

# Выводим результат для каждой буквы. Параллельно определяем, какая буква # встречается в словах наиболее редко, чтобы вывести ее отдельно.

smallest_count = min(counts.values()) for ch in sorted(counts): if counts[ch] == smallest_count:

smallest_letter = ch percentage = counts[ch] / num_words * 100 print(ch, "встречается в %.2f процентах слов" % percentage)

# Отображаем самую редко используемую букву в словах print() print("Буква, от которой легче всего будет избавиться:", smallest_letter)
1   ...   61   62   63   64   65   66   67   68   69


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