2014-06-07 91 views
-2

以下是來自類示例的代碼。 是什麼在困擾我的是這個部分:用字母循環評估爲False?

up = False 
for i in x: 
    if up: 
     i=i.upper() 

我真的不明白怎麼在字的信正在通過爲虛實可以評估迭代?

這裏是整個問題:

def mirror(x): 
    return x+x[::-1] 

def steps(x): 
    result="" 
    x=x.lower() 
    up=False 
    for i in x: 
    if up: 
     i=i.upper() 
    result+=i 
    up = not up 
    return result 

print(steps("jabberwocky")) 
print(steps(mirror("CAT"))) 
+0

是在'if'聲明評估的變量'up',而不是其中的一個字母(這些字母存儲在'i'中)。 – usr2564301

+1

這是什麼語言?它看起來像Python,但你真的應該告訴我們。理想情況下,通過標記。或者我們應該把它當作僞碼嗎? –

+0

@JanDvorak對不起,它是Python。新的網站,我不知道 - 謝謝:) – annikab

回答

0

您有一個循環遍歷字符串中的每個字符。 up是最初設置爲Falseboolean變量。所以一開始你有

if False: 
    i=i.upper() 

在你的for循環結束時,你有up設置爲Trueup = not up總是會切換boolean值 - False變得TrueTrue成爲False)。所以,你的for循環的第二次迭代你有

if True 
    i=i.upper() 

這個循環將在一個字符串和所有其他字符將被大寫:

>>> print(steps("jabberwocky")) 
jAbBeRwOcKy 
0

什麼步驟功能正在做的是:

1)將所有的X字符轉換爲小寫

2)設置一個變量 「向上」 初步False

3)對於x中的每個字母,

  • 如果變量起來爲真,則使該字母大寫
  • 追加的信導致
  • 設置到它的相反(如果真=>假//如果假=>真)

4)返回結果