Python将输入的降序数字保存到列表中

Python将输入的降序数字保存到列表中,python,Python,我是编程新手,一直在练习。我向用户索要一个号码,然后我想将低于输入号码的所有号码保存在列表中 然后我需要计算列表中每一秒数字的阶乘并打印出来。我该怎么做 def get_input_number(): num = int(input("Enter number between 1 and 10: ")) if num < 1 or num > 10: print ("Invalid input. Try again ") get_input_number()

我是编程新手,一直在练习。我向用户索要一个号码,然后我想将低于输入号码的所有号码保存在列表中

然后我需要计算列表中每一秒数字的阶乘并打印出来。我该怎么做

def get_input_number():
 num = int(input("Enter number between 1 and 10: "))
 if num < 1 or num > 10:
     print ("Invalid input.  Try again ")
     get_input_number()
 else:
     return num
获取\u输入\u编号

这是我的全部,但我如何继续?

试试这个:

import math
while True:
    num = int(input("Give me a number: "))  # Get the number
    if(1<=num<=10):
        break;
list_num = [x for x in range(1, num + 1)]  # A list with every second number
print([math.factorial(z) for z in list_num[0::2]])  # The factorial of every element in that list.

您应该这样做。

我建议您使用列表理解来创建您需要的第一个列表,例如:

foo = 20
list = [i for i in xrange(foo, 0, -1)]
这将创建以下内容:

[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
然后,您需要创建一个for循环,将所需的每个数字相乘并打印结果

小费!! 注意xrange中的第三个参数?这是控制参数,在上面的例子中,当迭代完成时,结果是i-1


祝你好运

你能告诉我们到目前为止你都做了些什么吗?什么对您不起作用?查看:,并编辑您的问题以包含代码I get name错误:名称“math”未定义,但如果我希望它将输入的数字下面的所有数字保存到列表中,然后每隔一秒计算一次阶乘,该怎么办。我的问题是输入的数字必须在1到10之间。@Robert我添加了while true以确保数字在1到10之间,并且list_num是低于用户现在给出的值的所有数字。list_num[0::2]每秒钟获取一个元素。我获取的list_num[0::2]中的z的print[math.factorialz可能缺少某些内容error@Robert那里,错过了一个]