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