Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在for循环中分割多个数字_Python_Python 3.x - Fatal编程技术网

Python 在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

试图在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.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