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

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


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

Упражнение 146. Карточка лото


##

# Создадим и отобразим случайную карточку лото #

from random import randrange NUMS_PER_LETTER = 15

## Создание случайной карточки для игры в лото

# @return словарь с ключами, представляющими буквы B, I, N, G и O, # и списком номеров под каждой буквой def createCard(): card = {}

# Диапазон целых чисел для букв lower = 1 upper = 1 + NUMS_PER_LETTER

# Для каждой из пяти букв for letter in ["B", "I", "N", "G", "O"]: # Создаем пустой список для буквы card[letter] = []

# Генерируем случайные номера, пока не наберется пять уникальных while len(card[letter]) != 5:

next_num = randrange(lower, upper) # Убеждаемся, что не храним дубликаты номеров if next_num not in card[letter]: card[letter].append(next_num)

# Обновляем диапазон номеров для следующей буквы lower = lower + NUMS_PER_LETTER

upper = upper + NUMS_PER_LETTER

# Возвращаем сгенерированную карточку return card

## Выводим отформатированную карточку лото

# @param card – карточка лото для отображения # @return (None) def displayCard(card): # Заголовки print("B I N G O")

# Отображаем номера for i in range(5): for letter in ["B", "I", "N", "G", "O"]: print("%2d " % card[letter][i], end="") print()

# Создаем случайную карточку для игры в лото и отображаем ее def main():

card = createCard() displayCard(card)

# Вызываем основную функцию, только если файл не импортирован if __name__ == "__main__":

main()


Глава 15 Файлы и исключения

Упражнение 149. Отображаем заголовок файла


## # Показываем первые 10 строк файла, имя которого передано в качестве аргумента командной строки # import sys NUM_LINES = 10

# Проверяем, что программе был передан только один аргумент командной строки if len(sys.argv) != 2:

print("Передайте имя файла в качестве аргумента командной строки.") quit()

По вызову функции quit программа мгновенно завершается.

try: # Открываем файл на чтение inf = open(sys.argv[1], "r")

# Читаем первую строку из файла line = inf.readline()

# Продолжаем цикл, пока не прочитаем 10 строк или не дойдем до конца файла count = 0 while count < NUM_LINES and line != "": # Удаляем символ конца строки и увеличиваем счетчик line = line.rstrip() count = count + 1

# Отображаем строку print(line)

# Читаем следующую строку из файла line = inf.readline()

# Закрываем файл inf.close() except IOError: # Отображаем ошибку, если с чтением из файла возникли проблемы print("Ошибка при доступе к файлу.")

Упражнение 150. Отображаем конец файла


## # Показываем первые 10 строк файла, имя которого передано в качестве аргумента командной строки # import sys NUM_LINES = 10

# Проверяем, что программе был передан только один аргумент командной строки if len(sys.argv) != 2:

print("Передайте имя файла в качестве аргумента командной строки.") quit()

try: # Открываем файл на чтение inf = open(sys.argv[1], "r")

# Читаем файл, сохраняя NUM_LINES последних строк lines = [] for line in inf: # Добавляем последнюю прочитанную строку к концу списка lines.append(line) # Если у нас накопилось больше NUM_LINES строк, удаляем самую старую if len(lines) > NUM_LINES: lines.pop(0)

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

except: print("Ошибка при доступе к файлу.") quit()

# Отображаем последние строки из файла for line in lines: print(line, end="")

Упражнение 151. Сцепляем файлы


##

# Сцепляем два или более файлов и отображаем результат # import sys

# Убедимся, что хотя бы один параметр был передан в качестве аргумента командной строки if len(sys.argv) == 1:

print("Нужно передать программе хотя бы один аргумент.") quit()

# Обрабатываем все файлы, имена которых были переданы в качестве аргументов for i in range(1, len(sys.argv)):

Элемент с индексом 0 в списке sys. argv является ссылкой на исполняемый файл Python. Поэтому наш цикл for начинает анализировать параметры с индекса 1.

fname = sys.argv[i] try: # Открываем текущий файл на чтение inf = open(fname, "r")

# Отображаем файл for line in inf: print(line, end="")

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

except: # Отображаем предупреждение, но не завершаем выполнение программы print("Невозможно открыть/отобразить файл", fname)
1   ...   61   62   63   64   65   66   67   68   69


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