2017-01-31 60 views
1

我試圖遍歷字符串做一個if語句來檢查,如果它的大寫字母或沒有,例如:迭代使用for循環和蟒蛇accesing指數串3

s="abcd" 
for x in s: 
    if s[x].isupper(): 
     print(s[x]) 

然而這並未」工作。但是,如果使用一個while循環,它的工作原理:

i=0 
while i < len(s): 
    if s[i].isupper(): 
     print(s[i]) 

我只是想知道,如果同樣的while迴路可以用for

回答

2

這是進行,因爲for循環遍歷字符 。所以xfor循環是一個字符,不是索引

s="abcd" 
for x in s: 
    if x.isupper(): 
     print(x) 

應該工作。 Python看到字符串作爲字符的有序集合。甲for遍歷集合通常遍歷它的元素(在字典中的情況下,密鑰)。

+0

所有這些人用自己的頭腦用C :)損壞@ –

+0

讓FrançoisFabre:良好的JavaScript也有怪異的行爲,一個'foreach'迭代指數。我的意思是,如果您提供列表,則發佈索引是沒有意義的。編程語言的設計者只是奇怪的人:) –

+0

我剛剛得到了同樣的解決方案:)謝謝 –