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

时间:2014-09-19 21:50:49

标签: python string

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()运行时打印的东西?

4 个答案:

答案 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()'范围之外的guessrighttext