
1.Напишите функцию, которая вычисляет количество цифры «5» в введенном трёхзначном числе. 2.В
файле записано в столбик 5 чисел и требуется найти их произведение. Python

Ответы на вопрос

Ответ:
--- Python 3.8.3 ---
#Не удаляйте импорты
import typing
from typing import Callable
from typing import AnyStr
from typing import Any
from typing import Iterable
from typing import List
#DEFINING USER TYPES
Numeric = typing.TypeVar('Numeric', int, float, complex)
#ENDDEF
#Решение задания 1
def StringCount(RawString: AnyStr, Selector: Callable[[AnyStr], bool], splitter: AnyStr = None) -> int:
counter = 0
if splitter:
ToAnalyse = RawString.split(splitter)
else:
ToAnalyse = list(RawString)
for item in ToAnalyse:
if Selector(item): counter += 1
return counter
#Вспомогательная функция для решения задания 2. Возвращает считанные из файла данные
def LoadDataFromFile(fname:AnyStr, encoding:AnyStr):
with open(fname, 'r', encoding=encoding) as f:
rawData = f.read()
return rawData
def Product(data: Iterable[Numeric]):
#Перемножает все значения в переданной последовательности.
#Последовательность НЕ МОЖЕТ содержать какие либо элементы, кроме чисел
p = 1
for i in data: p *= i
return p
def Dump(fname: AnyStr, data: AnyStr, encoding: AnyStr):
with open(fname, 'w', encoding=encoding) as f:
f.write(str(data))
def Task1():
'''
Использует фукнцию StringCount(RawString: AnyStr, Selector: Callable[[AnyStr], bool], splitter: AnyStr = None)
При помещении в отдельный файл функции Task2, в этот же файл необходимо поместить фукнцию StringCount(), а так же выполнить следующие импорты:
import typing
from typing import Any
from typing import AnyStr
from typing import Callable
При помещении в отельный файл код из функции Task1() можно поместить в глобальную область.
'''
RawNum = input()
fives = StringCount(RawNum, lambda s: s == '5')
print(f'"5" count: {fives}')
def Task2():
'''
Использует функции:
LoadDataFromFile(fname:AnyStr, encoding:AnyStr)
Dump(fname: AnyStr, data: AnyStr, encoding: AnyStr)
При помещении функции Task2 в отдельный файл,
в этот же файл необходимо поместить функцию LoadDataFromFile(), Функцию Dump(),
а так же выполнить следующие импорты:
import typing
from typing import Any
from typing import AnyStr
from typing import Iterable
а так же сразу после импортов добавить следующую строку:
Numeric = typing.TypeVar('Numeric', int, float, complex)
при помещении в отдельный файл код из функции Task2() можно поместить в глобальную область.
'''
Numbers = [int(i) for i in LoadDataFromFile('input.txt', 'utf-8').split('\n')]
Dump('Output.txt', Product(Numbers), 'utf-8')
P.S Не советую что то менять, если вы плохо разбираетесь. Решение представляет собой цельную программу, которая выполняет оба задания сразу.
P.S 2 Код работает для интерпретатора Python 3.5 и выше
P.S 3 Код протестирован
P.S 4 Файл, в котором лежат входные данные для задачи 2, должен называться input.txt и лежать в одной директории с файлом программы
P.S 5 Если вы тупо скопируете код, Интерпретатор может начать ругаться. Это вызвано тем, что наш любимый сайт подменяет табуляции и подряд идущие пробелы каким то своим дурацким символом, который не может переварить интерпретатор



Конечно, вот примеры кода для обеих задач:
Задача 1: Вычисление количества цифр "5" в трёхзначном числе:
pythondef count_digit_5(number):
if not isinstance(number, int) or number < 100 or number > 999:
raise ValueError("Введите трёхзначное число")
digit_count = 0
while number > 0:
if number % 10 == 5:
digit_count += 1
number //= 10
return digit_count
# Ввод числа от пользователя
try:
num = int(input("Введите трёхзначное число: "))
result = count_digit_5(num)
print(f"В числе {num} количество цифр '5' равно {result}")
except ValueError as e:
print(e)
Задача 2: Нахождение произведения чисел из файла:
Допустим, у вас есть файл с именем "numbers.txt", содержащий числа в столбик:
2 3 4 5 6
pythondef multiply_numbers_from_file(filename):
total_product = 1
with open(filename, "r") as file:
for line in file:
number = int(line.strip())
total_product *= number
return total_product
filename = "numbers.txt"
result = multiply_numbers_from_file(filename)
print(f"Произведение чисел из файла '{filename}' равно {result}")
Убедитесь, что у вас есть файл "numbers.txt" с соответствующими числами в столбик перед выполнением кода для второй задачи.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili