将循环/打印输出转换为字符串? Python

问题描述:

def reveal(): 
    guessright = 0 
    for letter in secretword: 
     if letter == usertry: 
      guessright = guessright + 1 
      print usertry, 
     else: 
      print "_", 
    return guessright 

reveal() 

当使用reveal()类似于_ _ _ _ a _将由for循环打印时 - 是否有将其打印的内容转换为字符串或获取函数返回2个输出的方式,整数猜测,以及在reveal()正在运行时打印的内容?将循环/打印输出转换为字符串? Python

获取函数返回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() 

def reveal(): 
    guessright = 0 
    result = "" 
    for letter in secretword: 
    if letter == usertry: 
     guessright = guessright + 1 
     result += usertry 
    else: 
     result += "_" 
    return guessright,result 

reveal() 

在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() 

然后你就可以访问`显示()”的范围guessrighttext外:

在代码中,你可以做喜欢的事返回英寸

+0

不需要将返回值放在圆括号中。 – 2014-09-19 21:55:59

+0

你说得对,但我一直很喜欢它的样子。 – Adam 2014-09-19 21:56:36

当然,也有很多方法 - 最简单的就是用一个列表来保存数据在结束(追加新的数据,而不是打印),然后''.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()