请帮我理解最简单的方法..

我想为每个ASCII字符分配关联的十进制值.有没有人可以为我指出正确的方向,而不需要手动定义每个角色?

# 回答1


也许这会有所帮助:

选择 | 换行 | 行号
  1. >>> import string
  2. >>> letters = string.letters
  3. >>> letters
  4. 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  5. >>> ord('a')
  6. 97
  7. >>> dd = dict(zip(letters, range(ord('a'), ord('z')+1)+range(ord('A'), ord('Z')+1)))
  8. >>> globals().update(dd)
  9. >>> A
  10. 65
  11. >>> B
  12. 66
  13. >>> C
  14. 67
  15. >>> 
# 回答2


DD=dict(Zip(字母,范围(顺序('a'),顺序('z')+1)+范围(顺序('A'),顺序('Z')+1))
嗯,这无疑给我指明了正确的方向(我认为).谢谢你的帖子!
然而,这确实给我带来了一个问题.在您的示例中,A的输出是66.当我复制代码时,我得到的输出是97.如果我多加注意,我会发现你的代码:

选择 | 换行 | 行号
  1. #
  2. >>> letters
  3. #
  4. 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW  XYZ'

人们会认为这样的想法是标准的.我将尝试此代码,我们将看看它在哪里结束.再次感谢你的帖子!
但当我做同样的步骤时,我会得到:

选择 | 换行 | 行号
  1. >>> letters
  2. 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
# 回答3


也许下面的方法可以解决这个可能的问题:

选择 | 换行 | 行号
  1. import string
  2.  
  3. letters = string.lowercase+string.uppercase
  4.  
  5. dd = dict(zip(letters, range(ord(string.lowercase[0]), \
  6.                              ord(string.lowercase[-1])+1)+\
  7.                        range(ord(string.uppercase[0]), \
  8.                              ord(string.uppercase[-1])+1))
  9.           )
  10.  
  11. globals().update(dd)
  12.  

>A
65
>a
九十七
>z
一百二十二
>Z
90
>>>

# 回答4


我不确定我是否能够理解如何将上面的代码应用于手头的目的.有没有办法把这个字符转换成它的十进制值?我见过用C/C++、C#,甚至是VB来做这件事,我很难相信Python做不到!
# 回答5


Ord()
也就是说,

选择 | 换行 | 行号
  1. ord('c')
  2. 99

标签: python

添加新评论