我是来自Java,C和Haskell环境的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 :(得分: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 :(得分: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)