函数不修改python中的变量
我创建了两个列表a和b,其中有10个从0到61的随机数,然后比较这些列表是否有公共数 我将常用号码存储在一个单独的列表中 如果列表中确实有数字,则commonCount将上升,如果列表为空,则noCommonCount将上升 但是,当我要在对函数随机排列10次之后打印计数时,它会打印出0 我不知道为什么,因为我在函数外声明了commonCount和noCommonCount变量函数不修改python中的变量,python,python-3.x,Python,Python 3.x,我创建了两个列表a和b,其中有10个从0到61的随机数,然后比较这些列表是否有公共数 我将常用号码存储在一个单独的列表中 如果列表中确实有数字,则commonCount将上升,如果列表为空,则noCommonCount将上升 但是,当我要在对函数随机排列10次之后打印计数时,它会打印出0 我不知道为什么,因为我在函数外声明了commonCount和noCommonCount变量 import random noCommonCount = 0 commonCount = 0 def list_
import random
noCommonCount = 0
commonCount = 0
def list_overlap():
a = []
b = []
count = 0
while count < 10:
count = count + 1
a.append(random.randint(0, 61))
b.append(random.randint(0, 61))
commonNumbers = []
for i in a:
if i in b:
if i not in commonNumbers:
commonNumbers.append(i)
if not commonNumbers:
noCommonCount + 1
else:
commonCount + 1
functionCount = 0
while functionCount < 10:
functionCount = functionCount + 1
list_overlap()
print(noCommonCount)
print(commonCount)
随机导入
noCommonCount=0
commonCount=0
def列表_重叠():
a=[]
b=[]
计数=0
当计数小于10时:
计数=计数+1
a、 追加(random.randint(0,61))
b、 追加(random.randint(0,61))
CommonNumber=[]
对于我来说,在一个:
如果我在b:
如果我不是普通人:
公共数字。附加(i)
如果不是普通号码:
noCommonCount+1
其他:
公共计数+1
functionCount=0
当functionCount<10时:
functionCount=functionCount+1
列表_重叠()
打印(noCommonCount)
打印(通用计数)
对于修改在外部作用域上声明的变量的函数,还需要一个表单声明
global variable_name
在函数中是必需的(通常直接在函数声明之后。对于修改在外部作用域上声明的变量的函数,还需要表单声明
global variable_name
在函数中是必需的(通常直接在函数声明之后。这应该做什么:
noCommonCount+1
?它是否修改了noCommonCount
变量?它不会,它会创建一个比noCommonCount
多一个的新变量,并立即将其丢弃。除非使用全局noCommonCount
,否则函数会创建局部变量变量的阴影。作为一种风格,使用全局变量来存储状态常常令人困惑,您应该返回结果。而且,您实际上没有将结果分配给变量,您只需添加并丢弃结果。@Max所以我应该在函数中创建并返回noCommonCount和commonCount。您可以吗请告诉我它是如何完成的?提前感谢这应该做什么:noCommonCount+1
?它是否修改了noCommonCount
变量?它不会,它会创建一个比noCommonCount
多一个的新变量,并立即将其丢弃。除非使用全局noCommonCount
,否则函数会创建局部变量变量的用法。作为一种风格,使用全局变量来存储状态常常令人困惑,您应该返回结果。而且,您实际上并没有将结果分配给变量,您只需添加并丢弃结果。@Max所以我应该在函数中创建并返回noCommonCount和commonCount。您可以这样做吗请告诉我它是如何完成的?提前感谢此函数甚至不尝试修改变量,因此这不会解决问题problem@Simplex,实际上,我会修改变量,使用noCommonCount+=1
,对commonCount
也一样。如果这样做,您将得到一个错误,将使用本节中的解决方案解决这个函数甚至不尝试修改变量,所以这不会解决问题problem@Simplex,我实际上会修改变量,使用noCommonCount+=1
,对commonCount
也一样。如果这样做,您将得到一个错误,将使用此答案中的解决方案解决。