我知道for循环:
for i range(2, 6):
print i
给出这个输出:
2
3
4
5
我也可以用字母来做这件事吗?例如:
# an example for what i'm looking for
for i in range(c, h):
print i
c
d
f
g
我知道for循环:
for i range(2, 6):
print i
给出这个输出:
2
3
4
5
我也可以用字母来做这件事吗?例如:
# an example for what i'm looking for
for i in range(c, h):
print i
c
d
f
g
我认为添加1
比ord('g')
使用更好ord('h')
for code in range(ord('c'), ord('g') + 1):
print chr(code)
因为如果你想去'z',你需要知道'z'后面的内容。我敢打赌,你打字+ 1
的速度比你查的快。
for i in 'cdefg':
...
for i in (chr(x) for x in range(ord('c'), ord('h'))):
这也有效,这样可以非常明确地处理您正在使用的内容:
import string
s = string.ascii_lowercase
for i in s[s.index('c'):s.index('h')]:
print i
没有理由不使用:
>>> for char in "cdefg":
... print(char)
c
d
e
f
g
即使您不是程序员,您也可以弄清楚循环的作用,它基本上是英语。它也更干净,更短,最好的部分是它比chr(ord())
解决方案快 6 倍:
>>> import timeit
>>> timeit.timeit("for i in 'abcdefg': x = i")
0.27417739599968627
>>> timeit.timeit("for i in range(ord('a'), ord('g') + 1): x = chr(i)")
1.7386019650002709
这个怎么样?
for code in range(ord('c'), ord('h')):
print chr(code)