【问题标题】:Returning a value under if statement for Python 2.7在 Python 2.7 的 if 语句下返回一个值
【发布时间】:2015-12-12 11:25:57
【问题描述】:

我正在尝试计算一个数字的阶乘。如果用户输入负数,我希望循环重新运行。但是,当我在 if 语句下对负值使用 return 函数时,它给了我一个错误

"SyntaxError: 'return' outside function"

如果用户输入负数,我如何重新运行循环。

# Calculating the Factorial of a Number

number = input ("Please enter a positive number: ")
factorial = 1

if number > 0:
    for n in range (1, number):
        factorial = factorial * (n+1)
        print ("You entered the number of " + str(number) + ". The factorial of that number is " + str (factorial))
else:
    number = input ("You entered a negative number. Please enter a positive number: ")
    return number

【问题讨论】:

    标签: python if-statement return factorial


    【解决方案1】:

    您确实有一个函数之外的return 语句。

    如果用户输入负数,如何重新运行循环?

    使用while循环:

    number = -1
    while number < 0:
        try:
            # since factorial applies to integers only
            number = int(input("Please enter a positive number: "))
        except ValueError: # so we don't crash if the user enters a string or a float
            pass
    # here number is guaranteed to be a positive integer
    factorial = 1
    for n in range (1, number):
        factorial = factorial * (n+1)
    print 'The factorial of {number} is {factorial}'.format(number=number,
                                                            factorial=factorial)
    

    【讨论】:

    • 首先谢谢你。但是当您说数字 = -1 时,您是在说明应该由用户确定的数字。我没有弄清楚,其余的代码如何在这里。因为,在这种情况下,程序将进入 while number
    • 我已将number 设置为-1,因此我们进入while 循环。在其中我们获取用户输入,将其转换为整数,然后将其重新分配给number. 如果它恰好是负整数,我们再次进入while 循环。
    • 现在,我明白了。谢谢你的澄清。
    猜你喜欢
    • 2021-02-26
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多