我有一个非常简单的问题,但我无法理解它。
我试图让用户输入所需的网站名称,然后使用它来决定在另一个功能中使用该名称的全名。这是该功能的基础知识。
def website():
x = input("Enter url:")
global url
if 'Google' in x:
url = ("www.google.com")
else:
"Try again!"
website()
这只有在我有全局网址的情况下才有效。否则,它会中断。在main函数中,它尝试立即使用来自website()的输出url,但返回:
NameError: name 'url' is not defined
如果全球网址不在那里。下一个函数按字面打印前一个函数的结果。它会做得更多但是因为我甚至无法进行印刷,但我还没到达那个阶段。
答案 0 :(得分:0)
您可以通过从函数返回变量来传递变量。如:
def foo():
url="google.com"
return url #this will send the variable URL to wherever it was called from
def bar(url):
print url
bar(foo()) #this calls the function `bar()`
函数bar()
接受我们称为url的变量(这不需要与函数foo()
中的变量相同,但它可以是)。然后在括号内部调用foo()
,它返回url中的数据。
答案 1 :(得分:0)
我不明白也不知道你有没有尝试过,但我会尽力猜测:
def website():
x = input("Enter url:")
if 'Google' in x:
url = ("www.google.com")
return url
else:
print("Try again!")
return website()
if __name__ == '__main__':
url = website()
print(url)
但请注意,如果调用次数超过1024次(在默认实现中),此递归调用可能会使您遇到麻烦(堆栈溢出)。
更好
def website():
while True:
x = input("Enter url:")
if 'Google' in x:
url = ("www.google.com")
return url
print("Try again!")
人们可能会发现使用无限循环很难看,但它优于递归调用。