如何将全局变量设置为等于用户在方法中的输入?例如,我尝试执行以下代码但它不起作用。
def ask_question(var, question):
global var
var = str(input(question))
ask_question(name, "what's your name?")
print("Welcome",name)
如果我做这样的事情就行了。
def ask_question(ques):
global name
name = str(input(ques))
ask_question("what's your name?")
print("Welcome",name)
但是在调用方法时我无法更改变量。例如,如果我也想询问用户的年龄等。
答案 0 :(得分:1)
为什么不能让函数返回输入的字符串?
示例 -
def ask_question(ques):
return str(input(ques))
然后,您可以将返回的字符串分配给脚本中的变量 -
name = ask_question("what's your name?")
print("Welcome",name)
age = ask_question("what's your age?")
print("Your age is ", age)
答案 1 :(得分:0)
为什么要使用这样的全球?如果你更清洁,更清晰:
def ask_question(ques):
return str(input(ques))
name = ask_question("what's your name?")
print("Welcome",name)
age = ask_question("what's your age?")
print("You're this old:",age)
答案 2 :(得分:0)
您无法以您想要的方式访问全局。如果你想能够选择"你可以做的全球:
def ask_question(var, question):
globals()[var] = str(input(question))
ask_question("name", "what's your name?")
print("Welcome",name)
但我同意其他人的意见,那样做更清楚:
def ask_question(question):
return str(input(question))
name = ask_question("what's your name?")
print("Welcome",name)