我正在尝试验证我选择的所有元素中具有不同数字的数字列表。如果列表中的所有值都不相同,则将标志变量设置为true,否则设置为false。但是我的函数返回零,而不是true或false。我知道我将标志变量初始化为零,因为我需要在函数开始时定义相同的变量
我已经想出了一个代码,但是我的函数返回了零。我的for句子不反复使用
v=[]
def creat_function():
v=[int(input('digit a number\n')) for j in range(0,int(input('number of elements\n')))]
return v
print(creat_function())
def diferences(v):
flag=0
for j in range(0,len(v)):
if v[j-1]!=v[j]:
flag=True
else:
flag=False
return flag
print(diferences(v))
答案 0 :(得分:2)
您需要获取从creat_function
获得的列表输出,并将其传递给diferences
函数
def creat_function():
v=[int(input('digit a number\n')) for j in range(0,int(input('number of elements\n')))]
return v
def diferences(v):
flag=0
for j in range(0,len(v)):
if v[j-1]!=v[j]:
flag=True
else:
flag=False
return flag
#Get list from creat_function
v = creat_function()
#Pass it to diferences
print(diferences(v))
更新:如果您确实要使用全局,则可以执行以下操作
v=[]
def creat_function():
#v is global
global v
v=[int(input('digit a number\n')) for j in range(0,int(input('number of elements\n')))]
def diferences():
# v is global
global v
flag=0
for j in range(0,len(v)):
if v[j-1]!=v[j]:
flag=True
else:
flag=False
return flag
#Get list from creat_function
creat_function()
#Pass it to diferences
print(diferences())
输出将为
number of elements
5
digit a number
1
digit a number
2
digit a number
3
digit a number
4
digit a number
5
True
number of elements
5
digit a number
1
digit a number
1
digit a number
2
digit a number
3
digit a number
3
False
答案 1 :(得分:2)
看起来他假设v是全局的,他不必在v中存储返回值。
要访问全局变量,我们需要使用 global 关键字
v=[]
def creat_function():
global v
v=[int(input('digit a number\n')) for j in range(0,int(input('number of elements\n')))]
return v
print(creat_function())
def diferences(v):
flag=0
for j in range(0,len(v)):
if v[j-1]!=v[j]:
flag=True
else:
flag=False
return flag
print(diferences(v))