打印范围内的英文字母
我想A, b, c, d...使用 range()打印Python中包含的英文字母,但出现 TypeError。有没有一种方法可以做到这一点而不必手动定义英文字母列表?
>>> for letter in range('a', 'z'):
... print(letters)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
>>>
回答
使用内置的字符串库可以得到一串英文字母,但是如果要以range的形式来做,可以单独写一个函数:
import string
def EnRange(from_='a', to='z', upper=False):
from_, to = from_.lower(), to.lower()
letters = string.ascii_lowercase
return [i.upper() if upper else i for i in letters[letters.index(from_):letters.index(to)+1]]
for letter in EnRange('a', 'z'):
print(letter)
您还可以使用 upper 参数获取大写字母。例子 :EnRange('a', 'z', upper=True)