提问人:Ifeoma Ogbodo 提问时间:9/4/2023 更新时间:9/4/2023 访问量:73
带有 while 循环的函数内的 Python 输入函数
Python Input function inside a function with a while loop
问:
我已经尝试了一段时间的 python 练习,但它不起作用。
在练习中,我定义了一个函数make_album它接受两个参数:artistName 和 albumTitle。
该函数应该有一个 While 循环,允许用户输入专辑的艺术家和标题。一旦我获得了该信息,我就会调用该函数,它返回一个包含这些信息的字符串。
While 循环旨在不断请求用户的输入,直到他们键入“Quit”,这意味着中断循环并停止代码运行。
在无数次试验和错误中,我这样做了:
def make_album(artistName, albumTitle):
code_run = input("Enter 'CONTINUE' to continue code or 'QUIT' to quit code: ")
respond = 'My favorite artist is ' + artistName + ' and their latest album is ' + albumTitle
while code_run == 'continue':
artistName = input("What is your favorite artist's name? ")
albumTitle = input("What is their latest album? ")
if code_run == 'quit':
break
return respond
res = make_album(artistName, albumTitle)
print(res)
问题是,当我调用函数时,函数调用中的参数在某种程度上“未定义”。我不知道问题出在哪里。
我尝试将输入提示作为参数放在函数调用本身中。它起作用了,但它没有像预期的那样自动再次运行。
答:
0赞
Héber Júlio
9/4/2023
#1
因为您将 make_album 函数分配给具有未定义变量的变量,然后尝试打印。正确的代码如下所示:
code_run = "continue" # start as "continue to make the loop work"
def make_album(artistName, albumTitle):
return 'My favorite artist is ' + artistName + ' and their latest album is ' + albumTitle
while code_run == 'continue':
code_run = input("Enter 'CONTINUE' to continue code or 'QUIT' to quit code: ")
if code_run == 'quit':
break
artistName = input("What is your favorite artist's name? ")
albumTitle = input("What is their latest album? ")
res = make_album(artistName, albumTitle)
print(res)
return 关键字将让函数返回由 yout 函数上的参数指定的定义值,这要干净得多。您的代码尝试调用超出范围的变量,并且调用从不在该块之外交互的函数内部的变量。
评论
1赞
Ifeoma Ogbodo
9/4/2023
感谢您尝试解决它,但不幸的是,代码不起作用。
0赞
Héber Júlio
9/4/2023
如何?我在我的环境中运行了两个代码并调整了这个问题,还有什么具体问题吗?
0赞
Ifeoma Ogbodo
9/10/2023
嗨,我在尝试自己更正代码时犯了一个错误。您的解决方案完美无缺。谢谢。
0赞
Héber Júlio
9/28/2023
凉爽的,将其标记为已解决
评论