Вопрос задан 05.07.2023 в 16:35. Предмет Информатика. Спрашивает Шевченко Катя.

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

файле записано в столбик 5 чисел и требуется найти их произведение. Python
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Маханов Никита.

Ответ:

--- 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 Если вы тупо скопируете код, Интерпретатор может начать ругаться. Это вызвано тем, что наш любимый сайт подменяет табуляции и подряд идущие пробелы каким то своим дурацким символом, который не может переварить интерпретатор

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот примеры кода для обеих задач:

Задача 1: Вычисление количества цифр "5" в трёхзначном числе:

python
def 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
python
def 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" с соответствующими числами в столбик перед выполнением кода для второй задачи.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос