Reputation: 1
Why is x
not defined outside the function? Is return x
placed wrong?
def find():
x else:
find()
Upvotes: 0
Views: 3732
Reputation: 15205
Your function never returns anything. Check this, with some added error handling for no end of metadata detection
def find():
data=file('file.dat')
x=0
for line in data:
if 'metaend' in line:
return x
x += 1
raise Exception('heeey no end of metadata')
By the way, python has a very nice function for a counter in a loop:
def find():
data=file('file.dat')
for counter, line in enumerate(data):
if 'metaend' in line:
return counter
raise Exception('heeey no end of metadata')
Upvotes: 2
Reputation: 782407
Put return x
outside the loop:
def find():
data=file('file.dat')
x=0
for line in data:
if 'metaend' in line:
break
else:
x+=1
return x
To get the value of x
, you use the return value of the function:
count = find()
Upvotes: 6