2014-09-19 70 views
0
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

回答

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() 
1
def reveal(): 
    guessright = 0 
    result = "" 
    for letter in secretword: 
    if letter == usertry: 
     guessright = guessright + 1 
     result += usertry 
    else: 
     result += "_" 
    return guessright,result 

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

然後你就可以訪問`顯示()」的範圍guessrighttext外:

在代碼中,你可以做喜歡的事返回英寸

+0

不需要將返回值放在圓括號中。 – 2014-09-19 21:55:59

+0

你說得對,但我一直很喜歡它的樣子。 – Adam 2014-09-19 21:56:36

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