5

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
4

5 に答える 5

9

使うより追加1したほうがいいと思いますord('g')ord('h')

for code in range(ord('c'), ord('g') + 1):
    print chr(code)

'z' に移動したい場合は、 'z' の後に何が続くかを知る必要があるからです。+ 1検索するよりも速く入力できるはずです。

于 2013-06-18T07:41:17.720 に答える
5

これも機能します。このようにして、作業内容が非常に明確になります。

import string
s = string.ascii_lowercase
for i in s[s.index('c'):s.index('h')]:
    print i
于 2013-06-18T07:40:11.180 に答える
3

使用しない理由はありません:

>>> 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
于 2013-06-18T09:37:30.553 に答える