Модуль 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 # возвращаем самое длинное слово
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
В этой задаче вам необходимо скачать файл,
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