Модуль 18. Задача 3. Файлы

В одной IT-компании существует негласный закон об именовании текстовых документов:

  1. Название файла не должно начинаться на один из специальных символов: @№$%^&*()
  2. Файл заканчивается расширением “.txt” или “.docx”

Напишите программу, которая получает на вход полное название файла и проверяет его по этим правилам.

Пример 1:

Название файла: @example.txt

Ошибка: название начинается на один из специальных символов

Пример 2:

Название файла: example.ttx

Ошибка: неверное расширение файла. Ожидалось .txt или .docx

Пример 3:

Название файла: example.txt

Файл назван верно.

Решение:

import string

extensions = ('.txt', '.docx')
file_name = input('Название файла: ').lower()
err = 0
correct_ext = False

if file_name[0] in string.punctuation:
    print('Ошибка: название начинается на один из специальных символов')
    err += 1

if err == 0:
    if file_name.endswith(extensions):
        correct_ext = True

    if correct_ext:
        print('Файл назван верно.')
    else:
        print('Ошибка: неверное расширение файла. Ожидалось .txt или .docx')

Решение от преподователя:

# TODO Верно, но есть лишние флаги и условные операторы, можно обойтись без них:
if file_name[0] in string.punctuation:
    print('Ошибка: название начинается на один из специальных символов')
elif not file_name.endswith(extensions):
    print('Ошибка: неверное расширение файла. Ожидалось .txt или .docx')
else:
    print('Файл назван верно.')

Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
4320login-checkМодуль 18. Задача 3. Файлы

Добавить комментарий