Проверка дня рождения
Меня всегда интересовало, не встречается ли мой день рождения среди цифр числа «пи»? Воспользуемся только что созданной программой для проверки того, входит ли запись дня рождения пользователя в первый миллион цифр. Для этого можно записать день рождения в виде строки из цифр и посмотреть, присутствует ли эта строка в pi_string:
filename = 'pi_million_digits.txt'
with open(filename) as file_object:
lines = file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.rstrip()
(1) birthday = input("Enter your birthday, in the form mmddyy: ")
(2)if birthday in pi_string:
. .print("Your birthday appears in the first million digits of pi!")
else:
. .print("Your birthday does not appear in the first million digits of pi.")
В точке (1) программа запрашивает день рождения пользователя, а затем в точке (2) проверяет вхождение этой строки в pi_string. Пробуем:
Enter your birthdate, in the form mmddyy: 120372
Your birthday appears in the first million digits of pi!
Оказывается, мой день рождения встречается среди цифр «пи»! После того как данные будут прочитаны из файла, вы сможете делать с ними все, что сочтете нужным.
Упражнения
10-1. Изучение Python: откройте пустой файл в текстовом редакторе и напишите несколько строк текста о возможностях Python. Каждая строка должна начинаться с фразы: «In Python you can…» Сохраните файл под именем learning_python.txt в каталоге, использованном для примеров этой главы. Напишите программу, которая читает файл и выводит текст три раза: с чтением всего файла, с перебором строк объекта файла и с сохранением строк в списке с последующим выводом списка вне блока with.
10-2. Изучение C: метод replace() может использоваться для замены любого слова в строке другим словом. В следующем примере слово ‘dog’ заменяется словом ‘cat’:
>>> message = "I really like dogs."
>>> message.replace('dog', 'cat')
'I really like cats.'
Прочитайте каждую строку из только что созданного файла learning_python.txt и замените слово Python названием другого языка, например C. Выведите каждую измененную строку на экран.