Как условно вывести «Нет значения, если нет значения для вывода» - PullRequest
0 голосов
/ 11 июля 2020

Как я могу изменить этот код, чтобы сделать следующее: Если есть значение для вывода, тогда он должен напечатать "Нет числа Армстронга ч / б числа"

def armstrong(num1, num2):
for x in range(num1, num2 + 1):
    temp = x
    new_val = 0
    while x > 0:
        val = x % 10
        x //= 10
        new_val = new_val + val**3
  
    if new_val == temp:
        print(new_val)

1 Ответ

0 голосов
/ 11 июля 2020

Сначала я бы разбил его на 2 отдельные функции.

Первая функция возвращает, является ли число N числом Армстронга, а вторая печатает все числа Армстронга в заданном диапазоне ИЛИ сообщение что номер Армстронга не найден:

def is_armstrong(n):
    return n == sum(int(c)**3 for c in str(n))

def print_armstrong(begin, end):
    armstrong_found = False
    
    for n in range(begin, end+1):
        if is_armstrong(n):
            print(n)
            armstrong_found = True
    
    if not armstrong_found:
        print('There is no armstrong number in the given range')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...