def reveal():
guessright = 0
for letter in secretword:
if letter == usertry:
guessright = guessright + 1
print usertry,
else:
print "_",
return guessright
reveal()
当使用reveal()之类的_ _ _ _ _ _将由for循环打印 - 是否有一种方法可以将打印的内容转换为字符串,或者让函数返回2个输出,整数猜测,和reveal()运行时打印的东西?
答案 0 :(得分:4)
当然,有很多方法 - 最简单的方法是使用列表来保存数据(附加新数据而不是打印),然后在最后''.join
使用它:
def reveal():
text = []
guessright = 0
for letter in secretword:
if letter == usertry:
guessright = guessright + 1
text.append(usertry)
else:
text.append('_')
return guessright, ''.join(text)
reveal()
这里我返回一个tuple
,这是python返回多个值的方法。如果您愿意,可以在作业中解压缩元组:
guessright, text = reveal()
答案 1 :(得分:1)
让函数返回2个输出
def reveal():
guessright = 0
show = []
for letter in secretword:
if letter == usertry:
guessright = guessright + 1
show.append(usertry)
else:
show.append("_")
return guessright, ''.join(show)
reveal()
答案 2 :(得分:1)
def reveal():
guessright = 0
result = ""
for letter in secretword:
if letter == usertry:
guessright = guessright + 1
result += usertry
else:
result += "_"
return guessright,result
reveal()
答案 3 :(得分:0)
在python中,您可以使用tuple返回两个输出。
在您的代码中,您可以通过执行以下操作返回:
def reveal():
guessright = 0
text = ''
for letter in secretword:
if letter == usertry:
guessright = guessright + 1
text += usertry,
else:
text += "_",
print text
return (guessright, text)
(guessright, text) = reveal()
然后,您可以访问`reveal()'范围之外的guessright
和text
。