Python从列表中的输入中保存降序数

时间:2016-03-15 13:11:54

标签: 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()
 else:
     return num

get_input_number()

这就是我的全部,但我该怎么办?

2 个答案:

答案 0 :(得分:0)

试试这个:

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.

你应该read more on list comprehension

答案 1 :(得分:0)

我建议你使用list comprehension来创建你需要的第一个列表,小例子:

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循环来乘以你想要的每个数字并打印结果。

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

祝你好运!