Python使用ord将字母转换为ASCII

时间:2017-03-13 13:59:22

标签: python ord

我正在尝试做一些课程,但我已经碰壁了。我正在尝试编写一个以字母和数字作为输入的函数,并将字母移位的键位置返回到字母表中的右侧。 这就是我到目前为止所做的:

def code_char(c,key):
    letter=input("Enter letter to be moved")
    shift=int(input("Enter degree of shift"))
    letter=ord(letter)    

    if letter>=65 and letter <=90: 
          letter=letter+shift
          while letter>90:
                  letter=letter-26

    elif letter>=97 and letter <=122:
          letter=letter+shift
          while letter>122:
                  letter=letter-26

    letter=chr(letter)
    print(letter)

code_char("",0)

问题是letter = ord(字母),因为我一直得到TypeError:ord()期望的字符串,长度为1,但是找到了列表。我尝试了不同的变化。 我需要将输入'letter'转换为ASCII。

1 个答案:

答案 0 :(得分:-4)

正如Willem在OP评论中所建议的,input()正在为您提供包含该字母的str新行字符\n ,请使用{ {1}}如果您使用的是旧的Python版本,请解决此问题:

.strip()

新的Python版本(例如3.6.0)不需要def code_char(): letter = ord(input("Enter letter to be moved").strip()) shift = int(input("Enter degree of shift")) if (letter >= 65) and (letter <= 90): letter += shift while (letter > 90): letter -= 26 elif (letter >= 97) and (letter <= 122): letter += shift while letter > 122: letter -= 26 print(chr(letter)) code_char() 部分,在格式编辑完成后我的代码完全正常工作:

.strip()