2015-06-14 132 views
0

我對來自Java,C和Haskell環境的python非常陌生,我想知道是否存在類似於以下內容的字符串而不是數字,所以我有:在Python數組中使用字符或字符串的範圍

for i in range(5,11) 
    print "Index : %d" %i 

並且結果將是:5,6,7,8,9,10(每個都在新的路線上)。所以,我想爲字符串相同,如:

for c in range("a","e") 
    print "Alphabet : %s" %c 

我只是好奇,我已經嘗試了許多事情都串和字符,但我不能得到我想要的結果。提前致謝。

+0

不清楚是什麼導致你的期望。你想要什麼結果? –

+1

我假設他問是否Python會理解他希望兩個參數之間的ASCII符號。現在無法測試它, –

回答

3

字符串是可迭代在Python,所以你可以簡單地做:

for c in 'abcde': 
    print 'Alphabet:', c 

Alphabet: a 
Alphabet: b 
Alphabet: c 
Alphabet: d 
Alphabet: e 

如果你想用一個明確的range替代,有(相當醜陋的):

for c in range(ord('a'), ord('e')+1): 
    print 'Alphabet:', chr(c) 

Alphabet: a 
Alphabet: b 
Alphabet: c 
Alphabet: d 
Alphabet: e 

range不在Python中將字符串作爲參數,所以您必須將字符轉換爲它們的ASCII對等字符,然後再返回。

1

Python 2如果您只想打印範圍Alphabet,則不能使用range()作爲字符串。你只能用它來integers,但你可以這樣做:

Alphabet = 'abcdefghijklmnopqrstuvwxyz' 
x = Alphabet[5:11] 
print "Alphabet : %s" % x 

輸出是:

Alphabet : fghijk 

如果你想在一個新行每個字符串:

for i in x: 
    print i 

輸出:

f 
g 
h 
i 
j 
k 

在Python 3中,您將打印這樣print(i)