NameError occurring after calling nested function
So I split a .txt file into a list of lists (shown below). However, when I try to run print(splitKeyword(keywords[1][0]))
to try and print the first element of the second list/element within keywordList, I get the error: NameError: name 'keywordList' is not defined
. How can I fix this?
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
splitKeyword(textFileVar)
print(keywordList[1][0])
results = functionOne("text1.txt")
print(results)
This is the text1.txt/textFile/textFileVar contents
hello,world
123,456
This is what keywordList looks like when printed:
[[hello, world], [123, 456]]
python list function file
add a comment |
So I split a .txt file into a list of lists (shown below). However, when I try to run print(splitKeyword(keywords[1][0]))
to try and print the first element of the second list/element within keywordList, I get the error: NameError: name 'keywordList' is not defined
. How can I fix this?
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
splitKeyword(textFileVar)
print(keywordList[1][0])
results = functionOne("text1.txt")
print(results)
This is the text1.txt/textFile/textFileVar contents
hello,world
123,456
This is what keywordList looks like when printed:
[[hello, world], [123, 456]]
python list function file
1
you are returning from the function but not catching. so try to keywordList = splitKeyword(textFileVar) as keywordList is local to that function.
– Jay Parikh
Nov 11 '18 at 5:41
add a comment |
So I split a .txt file into a list of lists (shown below). However, when I try to run print(splitKeyword(keywords[1][0]))
to try and print the first element of the second list/element within keywordList, I get the error: NameError: name 'keywordList' is not defined
. How can I fix this?
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
splitKeyword(textFileVar)
print(keywordList[1][0])
results = functionOne("text1.txt")
print(results)
This is the text1.txt/textFile/textFileVar contents
hello,world
123,456
This is what keywordList looks like when printed:
[[hello, world], [123, 456]]
python list function file
So I split a .txt file into a list of lists (shown below). However, when I try to run print(splitKeyword(keywords[1][0]))
to try and print the first element of the second list/element within keywordList, I get the error: NameError: name 'keywordList' is not defined
. How can I fix this?
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
splitKeyword(textFileVar)
print(keywordList[1][0])
results = functionOne("text1.txt")
print(results)
This is the text1.txt/textFile/textFileVar contents
hello,world
123,456
This is what keywordList looks like when printed:
[[hello, world], [123, 456]]
python list function file
python list function file
asked Nov 11 '18 at 5:38
CosmicCatCosmicCat
825
825
1
you are returning from the function but not catching. so try to keywordList = splitKeyword(textFileVar) as keywordList is local to that function.
– Jay Parikh
Nov 11 '18 at 5:41
add a comment |
1
you are returning from the function but not catching. so try to keywordList = splitKeyword(textFileVar) as keywordList is local to that function.
– Jay Parikh
Nov 11 '18 at 5:41
1
1
you are returning from the function but not catching. so try to keywordList = splitKeyword(textFileVar) as keywordList is local to that function.
– Jay Parikh
Nov 11 '18 at 5:41
you are returning from the function but not catching. so try to keywordList = splitKeyword(textFileVar) as keywordList is local to that function.
– Jay Parikh
Nov 11 '18 at 5:41
add a comment |
3 Answers
3
active
oldest
votes
Try this:
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
output = splitKeyword(textFileVar)
print(output[1][0])
return output
results = functionOne("text1.txt")
print(results)
look at return keywordList
in splitKeyword
function. it returns the value(keywordList
). but in other scopes you can not access that variable, so you need to store that in something.
is the 'return output' needed? when I remove it, I get the console output I'm looking for but the word 'None' appears right under it
– CosmicCat
Nov 11 '18 at 6:23
I think it is because of another line of your code. but remove it and check if you want.
– Mehrdad Pedramfar
Nov 11 '18 at 6:30
when I keep return output, I don't get none, but when I remove it, i get none, will this cause any issues?
– CosmicCat
Nov 11 '18 at 6:37
that is because ofresults = functionOne("text1.txt")
. return output will return the value soresults
won't be empty(None), if you remove it, your function does not have any outputs so results would be None.
– Mehrdad Pedramfar
Nov 11 '18 at 6:44
add a comment |
Your keywordList
is local to the function splitKeyword()
, not to the function functionOne()
. That's why you're getting a NameError.
Is there a workaround?
– CosmicCat
Nov 11 '18 at 5:49
@CosmicCat Well your function splitKeyword() returns something, so you might as well use this return right? Take what it returns in a variable and then use this variable to print it.
– Arjofocolovi
Nov 11 '18 at 5:51
add a comment |
keywordlist is a local variable to the function splitKeyword which return it so you can directly use this function and reduce the code.
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
print(splitKeyword(textFileVar))
results = functionOne("text1.txt")
print(results)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53246143%2fnameerror-occurring-after-calling-nested-function%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try this:
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
output = splitKeyword(textFileVar)
print(output[1][0])
return output
results = functionOne("text1.txt")
print(results)
look at return keywordList
in splitKeyword
function. it returns the value(keywordList
). but in other scopes you can not access that variable, so you need to store that in something.
is the 'return output' needed? when I remove it, I get the console output I'm looking for but the word 'None' appears right under it
– CosmicCat
Nov 11 '18 at 6:23
I think it is because of another line of your code. but remove it and check if you want.
– Mehrdad Pedramfar
Nov 11 '18 at 6:30
when I keep return output, I don't get none, but when I remove it, i get none, will this cause any issues?
– CosmicCat
Nov 11 '18 at 6:37
that is because ofresults = functionOne("text1.txt")
. return output will return the value soresults
won't be empty(None), if you remove it, your function does not have any outputs so results would be None.
– Mehrdad Pedramfar
Nov 11 '18 at 6:44
add a comment |
Try this:
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
output = splitKeyword(textFileVar)
print(output[1][0])
return output
results = functionOne("text1.txt")
print(results)
look at return keywordList
in splitKeyword
function. it returns the value(keywordList
). but in other scopes you can not access that variable, so you need to store that in something.
is the 'return output' needed? when I remove it, I get the console output I'm looking for but the word 'None' appears right under it
– CosmicCat
Nov 11 '18 at 6:23
I think it is because of another line of your code. but remove it and check if you want.
– Mehrdad Pedramfar
Nov 11 '18 at 6:30
when I keep return output, I don't get none, but when I remove it, i get none, will this cause any issues?
– CosmicCat
Nov 11 '18 at 6:37
that is because ofresults = functionOne("text1.txt")
. return output will return the value soresults
won't be empty(None), if you remove it, your function does not have any outputs so results would be None.
– Mehrdad Pedramfar
Nov 11 '18 at 6:44
add a comment |
Try this:
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
output = splitKeyword(textFileVar)
print(output[1][0])
return output
results = functionOne("text1.txt")
print(results)
look at return keywordList
in splitKeyword
function. it returns the value(keywordList
). but in other scopes you can not access that variable, so you need to store that in something.
Try this:
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
output = splitKeyword(textFileVar)
print(output[1][0])
return output
results = functionOne("text1.txt")
print(results)
look at return keywordList
in splitKeyword
function. it returns the value(keywordList
). but in other scopes you can not access that variable, so you need to store that in something.
answered Nov 11 '18 at 6:13
Mehrdad PedramfarMehrdad Pedramfar
5,10711237
5,10711237
is the 'return output' needed? when I remove it, I get the console output I'm looking for but the word 'None' appears right under it
– CosmicCat
Nov 11 '18 at 6:23
I think it is because of another line of your code. but remove it and check if you want.
– Mehrdad Pedramfar
Nov 11 '18 at 6:30
when I keep return output, I don't get none, but when I remove it, i get none, will this cause any issues?
– CosmicCat
Nov 11 '18 at 6:37
that is because ofresults = functionOne("text1.txt")
. return output will return the value soresults
won't be empty(None), if you remove it, your function does not have any outputs so results would be None.
– Mehrdad Pedramfar
Nov 11 '18 at 6:44
add a comment |
is the 'return output' needed? when I remove it, I get the console output I'm looking for but the word 'None' appears right under it
– CosmicCat
Nov 11 '18 at 6:23
I think it is because of another line of your code. but remove it and check if you want.
– Mehrdad Pedramfar
Nov 11 '18 at 6:30
when I keep return output, I don't get none, but when I remove it, i get none, will this cause any issues?
– CosmicCat
Nov 11 '18 at 6:37
that is because ofresults = functionOne("text1.txt")
. return output will return the value soresults
won't be empty(None), if you remove it, your function does not have any outputs so results would be None.
– Mehrdad Pedramfar
Nov 11 '18 at 6:44
is the 'return output' needed? when I remove it, I get the console output I'm looking for but the word 'None' appears right under it
– CosmicCat
Nov 11 '18 at 6:23
is the 'return output' needed? when I remove it, I get the console output I'm looking for but the word 'None' appears right under it
– CosmicCat
Nov 11 '18 at 6:23
I think it is because of another line of your code. but remove it and check if you want.
– Mehrdad Pedramfar
Nov 11 '18 at 6:30
I think it is because of another line of your code. but remove it and check if you want.
– Mehrdad Pedramfar
Nov 11 '18 at 6:30
when I keep return output, I don't get none, but when I remove it, i get none, will this cause any issues?
– CosmicCat
Nov 11 '18 at 6:37
when I keep return output, I don't get none, but when I remove it, i get none, will this cause any issues?
– CosmicCat
Nov 11 '18 at 6:37
that is because of
results = functionOne("text1.txt")
. return output will return the value so results
won't be empty(None), if you remove it, your function does not have any outputs so results would be None.– Mehrdad Pedramfar
Nov 11 '18 at 6:44
that is because of
results = functionOne("text1.txt")
. return output will return the value so results
won't be empty(None), if you remove it, your function does not have any outputs so results would be None.– Mehrdad Pedramfar
Nov 11 '18 at 6:44
add a comment |
Your keywordList
is local to the function splitKeyword()
, not to the function functionOne()
. That's why you're getting a NameError.
Is there a workaround?
– CosmicCat
Nov 11 '18 at 5:49
@CosmicCat Well your function splitKeyword() returns something, so you might as well use this return right? Take what it returns in a variable and then use this variable to print it.
– Arjofocolovi
Nov 11 '18 at 5:51
add a comment |
Your keywordList
is local to the function splitKeyword()
, not to the function functionOne()
. That's why you're getting a NameError.
Is there a workaround?
– CosmicCat
Nov 11 '18 at 5:49
@CosmicCat Well your function splitKeyword() returns something, so you might as well use this return right? Take what it returns in a variable and then use this variable to print it.
– Arjofocolovi
Nov 11 '18 at 5:51
add a comment |
Your keywordList
is local to the function splitKeyword()
, not to the function functionOne()
. That's why you're getting a NameError.
Your keywordList
is local to the function splitKeyword()
, not to the function functionOne()
. That's why you're getting a NameError.
answered Nov 11 '18 at 5:45
ArjofocoloviArjofocolovi
82
82
Is there a workaround?
– CosmicCat
Nov 11 '18 at 5:49
@CosmicCat Well your function splitKeyword() returns something, so you might as well use this return right? Take what it returns in a variable and then use this variable to print it.
– Arjofocolovi
Nov 11 '18 at 5:51
add a comment |
Is there a workaround?
– CosmicCat
Nov 11 '18 at 5:49
@CosmicCat Well your function splitKeyword() returns something, so you might as well use this return right? Take what it returns in a variable and then use this variable to print it.
– Arjofocolovi
Nov 11 '18 at 5:51
Is there a workaround?
– CosmicCat
Nov 11 '18 at 5:49
Is there a workaround?
– CosmicCat
Nov 11 '18 at 5:49
@CosmicCat Well your function splitKeyword() returns something, so you might as well use this return right? Take what it returns in a variable and then use this variable to print it.
– Arjofocolovi
Nov 11 '18 at 5:51
@CosmicCat Well your function splitKeyword() returns something, so you might as well use this return right? Take what it returns in a variable and then use this variable to print it.
– Arjofocolovi
Nov 11 '18 at 5:51
add a comment |
keywordlist is a local variable to the function splitKeyword which return it so you can directly use this function and reduce the code.
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
print(splitKeyword(textFileVar))
results = functionOne("text1.txt")
print(results)
add a comment |
keywordlist is a local variable to the function splitKeyword which return it so you can directly use this function and reduce the code.
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
print(splitKeyword(textFileVar))
results = functionOne("text1.txt")
print(results)
add a comment |
keywordlist is a local variable to the function splitKeyword which return it so you can directly use this function and reduce the code.
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
print(splitKeyword(textFileVar))
results = functionOne("text1.txt")
print(results)
keywordlist is a local variable to the function splitKeyword which return it so you can directly use this function and reduce the code.
def functionOne(textFile):
textFileVar = open(textFile, 'r')
def splitKeyword(argument):
keywordList =
for line in argument:
keywordList.append(line.strip().split(','))
return keywordList
print(splitKeyword(textFileVar))
results = functionOne("text1.txt")
print(results)
answered Nov 11 '18 at 5:52
MoussaMoussa
788
788
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53246143%2fnameerror-occurring-after-calling-nested-function%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
you are returning from the function but not catching. so try to keywordList = splitKeyword(textFileVar) as keywordList is local to that function.
– Jay Parikh
Nov 11 '18 at 5:41