在Python

时间:2017-07-12 20:43:15

标签: python-3.x

我是Python的新手,我现在正在免费在线课程。

我一直试图弄清楚如何编写在我的课程中找到的这个简单的可选问题:

[]使用范围(x)乘以数字1到7

1x2x3x4x5x6x7 = 5040

我为范围7创建了一个变量,并为循环中使用的产品创建了一个变量:

x = 7
product = 0

for item in range(x):

这就是我被困住的地方。 我在循环中尝试的事情如下:

product = item * item

甚至没有任何意义。我现在有一个完整的心理障碍。我意识到这应该是一件容易的事,但不能出于任何原因。我已经尝试过制作“number”和“previous_number”等其他变量来让事情变得更轻松,但我感到很困惑。

我需要在此解决方案中使用for循环。我现在只是不理解逻辑。解决方案和解释会很棒!请帮忙!

5 个答案:

答案 0 :(得分:2)

您需要初始化product = 1(因为1是乘法身份)并且在您的循环中只需要:

product *= item

这是简写:

product = product * item

在python中还有一个reduce函数来处理这些类型的问题:

In []:
import operator as op
import functools as ft

x = 7
ft.reduce(op.mul, range(1,x+1))

Out:
5040

答案 1 :(得分:0)

尝试这样的事情:

x = 7
product = 1

for item in range(1, x + 1):
    product = item * product

print(product)

请注意,产品从1开始,范围功能也从1开始。否则,项目将继续乘以零。

答案 2 :(得分:0)

检查出来:

answer = 1

for i in range(1,8):
    print("Right now, answer is", answer)
    print("Right now, i      is", i)
    print("I am going to multiply answer ({}) with i ({}) and store the result in answer".format(answer, i))
    answer = answer * i
    print("Now, answer is", answer)

print("Finally, answer is", answer)

答案 3 :(得分:0)

digit = range(1,8)    
print("digit", list(digit))  
product = 1   
for item in digit:  
    product = product * item  
    print("product is",product)  

答案 4 :(得分:0)

var strings2 = ["a", "b", "c", "d"]

if strings2.isEmpty {
print("empty")

}
else {
 print("populated")                   // populated
}
strings2.insert("a", at: 0)            // Insert, not replace
print(strings2.removeAtIndex(0))          // a