Python 在for循环中分割多个数字
试图在for循环中分割多个数字,结果是错误的 为答案创建一个变量,在每个for循环中,它将使答案等于前面的循环答案除以for循环列表中的整数Python 在for循环中分割多个数字,python,python-3.x,Python,Python 3.x,试图在for循环中分割多个数字,结果是错误的 为答案创建一个变量,在每个for循环中,它将使答案等于前面的循环答案除以for循环列表中的整数 def div(x): ans = 0 for i in x: ans = ans / int(i) b = int(input("How many numbers would you like to " + opt + "?")) c = range(0,b) d = list() for i in c: d.a
def div(x):
ans = 0
for i in x:
ans = ans / int(i)
b = int(input("How many numbers would you like to " + opt + "?"))
c = range(0,b)
d = list()
for i in c:
d.append(input("What number would you like to " + opt + "?"))
print(div(d))
如果列表(d)中输入了3个数字。我想把这3个数除以,使变量(ans)等于商
例如:
输入3个数字-200、10、2
结果:10
脚本的实际结果:0.0您有两个问题:
首先,我们的函数不返回值。您可以通过在函数末尾添加return ans
来解决此问题
第二,如果你从ans=0
开始,除以ans
只会得到更多的零
以下是一个解决方案,使用占位符跳过该解决方案:
def div(x):
ans = None
for i in x:
if ans is None:
ans = i
else:
ans = ans / int(i)
return ans
这里有一个稍微优雅一点的替代方案,使用
通过使用
*
声明函数参数,任何给定的额外参数都将作为列表打包到函数参数中。然后,您可以将参数传递给它,而无需将它们放入列表中,或者您可以使用另一个*
将列表解压为多个参数。函数div
实际上不返回任何内容,因此它应该打印None
这将解决您的问题:
def div(x):
ans = 0
for i in x:
ans = ans / i
return ans
在
div
中,从ans=0开始,零除以任何非零的值都是零。再次感谢你,并为noob的问题感到抱歉。不要担心犯错误:我们都必须从某个地方开始,没有人能在第一次尝试时就做到完美。继续走,你会到达那里的!
def div(x):
ans = 0
for i in x:
ans = ans / i
return ans