whenever I run following code of adding two lists in python below mentioned error appears
def add_lists(L1, L2):
R = []
for i in range(0, len(L1)):
R.append(L1[i] L2[i])
return R
L2 = [3, 3, 3, 3]
L1 = [1, 2, 3, 4]
add_lists(L1, L2)
print("Resultant list of: ", str(L1), '& ' str(L2), 'is', R)
this code yields NameError: name 'R' is not defined
CodePudding user response:
The variable R
is local to your function and so is not accessible to your print
statement. (Generally, this is good! It makes the function self-contained and avoids dependencies on what global variables may or may not exist.)
To print the result of the function, assign the result to an in-scope variable and use that.
def add_lists(L1, L2):
R = []
for i in range(0, len(L1)):
R.append(L1[i] L2[i])
return R
L2 = [3, 3, 3, 3]
L1 = [1, 2, 3, 4]
res = add_lists(L1, L2) # assigns the result of the function call to a variable we can access
print("Resultant list of: ", str(L1), '& ' str(L2), 'is', res)
CodePudding user response:
You defined R in a local scope "it looks like inside a function" while you are trying to use it outside of that scope in the last line.
Try moving the initialization of "R = []" to the outer scope.
CodePudding user response:
its because R = [] is inside the function and print is outside the function... so try this :
R = []
def add_lists(L1, L2):
for i in range(0, len(L1)):
R.append(L1[i] L2[i])
return R
L2 = [3, 3, 3, 3]
L1 = [1, 2, 3, 4]
add_lists(L1, L2)
print("Resultant list of: ", str(L1), '& ' str(L2), 'is', R)