使用Python 生成字母表

in #cn-programming7 years ago

因为要用在Python中到字母表,又懒得一个一个敲进去
于是就有个想法生成一个字母表

失败的办法

因为在C语言中,我们
我们可以用:
char b= 'a' + 1; 的方式的得到字符b
我以为应该大同小异呗

于是想到用以下代码生成b

b='a'+1
print(b)

结果失败

    b='a'+1
TypeError: Can't convert 'int' object to str implicitly

正确的方法

既然不能直接用就搜索了一下,如何用python操作ASCII码
然后发现俩函数ord()chr()看了一下帮助

  • 把单字符转换成整数
ord(...)
    ord(c) -> integer
    Return the integer ordinal of a one-character string.
  • 把数字转换成unicode字符 (ASCII编码部分[0-127]的unicode编码是一样)
chr(...)
    chr(i) -> Unicode character
    Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.

就他们了,没错
于是,将上述代码b='a'+1改写成b=chr(ord('a')+1)搞定,正确的得到b

生成字母表

有了上述理论,那么生成字母表,貌似没啥问题了

list = []
for i in range(0, 26):
        temp = chr(ord('a')+i)
        list.append(temp)
print(list)

输出如下:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

回头看看,觉得不优雅,似乎可以用列表推导式,于是改写一下:
list = [chr(ord('a')+i) for i in range(0, 26)]
嗯,顺眼多了。

别人的做法

试完了,也写完了,想看看网上人家都咋做的
然后搜索python 生成字母表
[chr(i) for i in range(97,123)]

额,我很后悔我当时搜索的关键字是python操作ASCII码:(
不过我的代码看起来更好理解是不是?只能这样自我安慰了

Sort:  

记录一下:)
我确定我N年以前用过ord()chr()
但是我找到他们的时候,才有了一点点印象
我的大脑就像一块有坏道的硬盘,总丢数据呢

py不会哈哈,要是js 直接用unicode 就行了。A=65 以此类推。
楼主转行js吧,像node.js这些最近几年发展碉堡了

谢谢大神:)

与其说分享,不如说记录的功能更占主要目的
当然了,若有谁遇到类似问题
通过搜索到这个页面解决了
一方面帮助了他人,另一方面也给steemit 带来流量

虽然这种可能以及过来的流量可能微乎其微
但是不积跬步无以至千里,不是嘛
😄

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 63222.17
ETH 3486.30
USDT 1.00
SBD 2.53