我是编程的新手,并且坚持练习。我要求用户提供一个号码,然后我想保存所有低于列表输入号码的号码。
然后我需要计算该列表中每秒数的阶乘并打印出来。我怎样才能做到这一点?
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()
这就是我的全部,但我该怎么办?
答案 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.
答案 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.
祝你好运!