Решение модуля 9.1 Инди-курс программирования на Python

Модуль 9.1 (Чтение и запись данных. Функция open). В файлах хранится основная информация, необходимая для работы. Поэтому необходимо научиться считывать данные с файлов и записывать их туда.

Напишите функцию file_read, которая принимает имя файла, и печатает его содержимое.

Учитывайте, что содержимое файла может быть как на русском языке, так и на английском

def file_read(file_name):
    file = open(file_name) # открываем полученный файл
    print(file.read())     # считываем и выводим его содержимое
    file.close()           # закрываем файл

Напишите функцию file_n_lines, которая печатает первые n-строка файла. Функция file_n_lines принимает на вход название файла и количество строк для прочтения.

Не забывайте избавляться от символа переноса строки

К примеру, если бы имелся файл hello.txt со следующим содержимым:

h
he
hel
hell
hello

То вызов file_n_lines(hello.txt, 3) должен распечатать следующее:

h
he
hel

Ваша задача написать только определение функции file_n_lines

def file_n_lines(name: str, n: int):
    f = open(name, 'r', encoding = 'utf-8') # открываем файл
    for i in range(n):                      # выводим необходимое количество строк из файла
        print(f.readline(), end = '')
    f.close()                               # закрываем файл

Напишите функцию create_file_with_numbers, которая принимает на вход одно целое положительное число — n.

Функция должна создать файл с название «range_<number>.txt» и наполнить его целыми числами от 1 до n включительно, причем каждое число записывается  в отдельной строке

Пример: функция create_file_with_numbers(5) должна создать файл range_5.txt с содержимым

1
2
3
4
5
def create_file_with_numbers(n):
    file = open(f'range_{n}.txt', 'x')  # открываем файл, если его не существует - он его создает
    for i in range(n):                  # в файл записываем числа от 1 до введенного числа
        file.write( str(i + 1) + '\n')
    file.close()                        # закрываем файл

Напишите функцию longest_word_in_file, которая принимает имя файла и внутри его содержимого находит самое длинное слово и возвращает его в качестве ответа. В случае,  если есть несколько слов с максимальной длиной, нужно вернуть слово, которое встречается последнее в тексте.

При этом слова в тексте отделяются друг от друга пробелами, любые другие знаки пунктуации необходимо исключить.  И также учитывайте, что слова в тестах будут как на русском языке, так и на английском.

Если бы содержимое файла было таким:

He was running, but it was like running through deep water. There were trees all around him, 
trees which tried to stop him. They reached out with their branches. 
And it was behind him. It was coming nearer. 

то ответом было бы слово branches

Все возможные знаки пунктуации можно получить из модуля string

from string import punctuation
from string import punctuation         # импортируем необходимую переменную из модуля

def remove_punctuations(word):         # создаем функцию удаления знаков пунктуации
    for punct in punctuation:          # проходимся по переменной в которой хранятся все знаки пунктуации
        if punct in word:              # если этот знак есть в нашем слове
            word = word.replace(punct, "")     # удаляем этот знак
    return word                        # возвращаем слово без знаков препинания

def longest_word_in_file(file_name):
    """return the longest word"""
    file = open(file_name, "r", encoding="utf-8")         # открываем файл 
    max_word = ""                      # создаем переменную для хранения самого длинного слова
    for line in file:                  # циклом проходимся по файлу
        words = line.split()           # разбиваем строку на список со словами из строки
        for word in words:             # проходимся по данному списку
            word_without_punct = remove_punctuations(word) # удаляем знаки пунктуации
            if len(word_without_punct) >= len(max_word):   # если длина встречающегося слова больше или равна слова сохраненного в переменной с самым длинным словом
                max_word = word_without_punct              # то это слово записываем это слово в переменную

    return max_word                    # возвращаем самое длинное слово

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
liony
liony
1 год назад

В этой задаче вам необходимо скачать файл,
 
with open(‘numbers.txt’, ‘r’) as file:
   nums = [int(line.strip()) for line in file]

three_digits = 0
two_digits_sum = 0

for num in nums:
   if 100 <= num <= 999:
       three_digits += 1
   elif 10 <= num <= 99:
       two_digits_sum += num

print(f»{three_digits},{two_digits_sum}»)

9041,46947

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x