Reputation: 143
I'm trying to verify is a list of numbers i choose has in all elements diferent numbers. I set a flag variable true if all values in list were diferent and false otherwise. However my function is returning zero and not true or false. I know i inicialize my flag variable at zero because i needed to defined that same variable at the start of the function
i already came up with a code but my function is returning zero. My for sentence is not beeing iterated
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))
Upvotes: 0
Views: 798
Reputation: 20490
You need to take the list output which you get from creat_function
and pass it to diferences
function
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))
Update: If you really want to use global, you can do as follows
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())
Output will be
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
Upvotes: 2
Reputation: 430
looks like he is assuming v is global and he don't have to store return value in v.
for accessing global variables we need to use global keyword
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))
Upvotes: 2