Апгрейд калькулятора python - Общение Python мододелов

Вопрос Апгрейд калькулятора python

Регистрация
23 Окт 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Апгрейд калькулятора

Степан использует калькулятор для расчёта суммы и разности чисел, но на работе ему требуются не только обычные арифметические действия. Он ничего не хочет делать вручную, поэтому решил немного расширить функциональность калькулятора.



Что нужно сделать

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



Запрошенные числа должны передаваться в функции суммы, максимума и минимума при помощи аргументов.



Пример 1



Пример 2



Пример 3



Введите число: 984



Введите номер действия:

1 - сумма цифр

2 - максимальная цифра

3 - минимальная цифра: 1



Сумма цифр: 21



Введите число: 546



Введите номер действия:

1 - сумма цифр

2 - максимальная цифра

3 - минимальная цифра: 2



Максимальная цифра: 6



Введите число: 741



Введите номер действия:

1 - сумма цифр

2 - максимальная цифра

3 - минимальная цифра: 3



Минимальная цифра: 1





У меня что то не выходит



def amount(number):

amount = 0

while number > 0:

amount += (number % 10)

amount //= 10

print('Сумма цифр числа', number,'=', amount)



def maxx(number):

maxx = -1

while number > 0:

if number % 10 > maxx:

maxx = number % 10

number //= 10

print( 'Максимальная цифра числа', number,'=', maxx)



def minn(number):

minn = 10

while number > 0:

if number % 10 < minn:

minn = number % 10

number //= 10

print('Минимальное цифра числа', number, '=', minn)



while True:

number = int(input('Введите число: '))

figure = int(input('1 - вывести сумму чисел, 2 - максимальная цифра, 3 - минимальная цифра'))

if figure == 1:

amount(number)

elif figure == 2:

maxx(number)

elif figure == 3:

minn(number)

else:

print('Ошибка ввода')
 
Регистрация
21 Июл 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
def amount(number):
amount = 0
while number > 0:
amount += number % 10
number //= 10
print(f'Сумма цифр числа {number} = {amount}')

def maxx(number):
maxx = -1
while number > 0:
digit = number % 10
if digit > maxx:
maxx = digit
number //= 10
print(f'Максимальная цифра числа {number} = {maxx}')

def minn(number):
minn = 10
while number > 0:
digit = number % 10
if digit < minn:
minn = digit
number //= 10
print(f'Минимальная цифра числа {number} = {minn}')

while True:
number = int(input('Введите число: '))
figure = int(input('Введите номер действия:\n1 - сумма цифр\n2 - максимальная цифра\n3 - минимальная цифра\n'))
if figure == 1:
amount(number)
elif figure == 2:
maxx(number)
elif figure == 3:
minn(number)
else:
print('Ошибка ввода')
 
Регистрация
21 Июл 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
Всё максимально просто:

def sum_of_digits(number):
"""Вычисляет сумму цифр числа."""
return sum(int(digit) for digit in str(number))

def max_digit(number):
"""Находит максимальную цифру числа."""
return max(int(digit) for digit in str(number))

def min_digit(number):
"""Находит минимальную цифру числа."""
return min(int(digit) for digit in str(number))

def main():
while True:
print("\nМеню калькулятора:")
print("1. Сумма цифр")
print("2. Максимальная цифра")
print("3. Минимальная цифра")
print("4. Выход")

choice = input("Выберите действие: ")

if choice == "4":
print("Выход из программы.")
break

elif choice in ["1", "2", "3"]:
number = input("Введите число: ")

if not number.isdigit():
print("Пожалуйста, введите целое положительное число.")
continue

number = int(number)

if choice == "1":
print(f"Сумма цифр числа {number}: {sum_of_digits(number)}")
elif choice == "2":
print(f"Максимальная цифра числа {number}: {max_digit(number)}")
elif choice == "3":
print(f"Минимальная цифра числа {number}: {min_digit(number)}")

else:
print("Недопустимый выбор. Пожалуйста, выберите действие из меню.")

if __name__ == "__main__":
main()
 
Сверху Снизу