Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python练习的问题-按顺序将字母转换为数字(使用ord和chr)_Python_Numbers_Type Conversion_Letters - Fatal编程技术网

Python练习的问题-按顺序将字母转换为数字(使用ord和chr)

Python练习的问题-按顺序将字母转换为数字(使用ord和chr),python,numbers,type-conversion,letters,Python,Numbers,Type Conversion,Letters,我很抱歉,但我对这里的每个人都感到不知所措。不知道从哪里开始。我是Python新手,自从我上次尝试任何编程以来已经很多年了。我从来都不是很有经验。我正在网上学习这门Python课程,在一次练习中走到了死胡同。它与上一个例子不同 x = int(input()) if x>=1 and x<=26: print('letter', x, 'in the alphabet:', chr(ord('A')+(x-1))) else: print('invalid input

我很抱歉,但我对这里的每个人都感到不知所措。不知道从哪里开始。我是Python新手,自从我上次尝试任何编程以来已经很多年了。我从来都不是很有经验。我正在网上学习这门Python课程,在一次练习中走到了死胡同。它与上一个例子不同

x = int(input())
if x>=1 and x<=26:
    print('letter', x, 'in the alphabet:', chr(ord('A')+(x-1)))
else:
    print('invalid input:', x)
以下是练习描述的内容:

编码练习:26个字母 写一个与上面例子相反的程序:它应该以一个字符作为输入,并输出相应的数字(1到26之间)。您的程序应该只接受大写字母。作为错误检查,如果输入不是大写字母,则打印无效

这是我能做的,但不是它希望我做的,也不是我应该做的。我可以这样做:

if letter == 'A':
    letter = int(1)
    print(letter)
elif letter == 'B':
    letter = int(2)
    print(letter)
当然,那将是非常漫长和草率的。有人对我有什么建议吗?这个让我卡住了。对不起,我知道这可能很简单,这对我来说似乎比它应该的复杂得多。我已经试着查找过了,但是我在网上找到的所有东西都非常不同,以至于我不知道如何在代码中实现它。老实说,chr和ord的东西让我很困惑。我很感激任何一个在这里呆了足够长时间读到这篇文章的人。非常感谢。我不知道该怎么处理这个。此外,这是我第一次在这里发布任何东西,因此如果我做了任何马虎或错误的事情,我道歉,并将尽快删除/编辑它

问题可在此处找到:


添加一些信息。CScircles要求A=1而不是0。谢谢你的快速回复。今天晚些时候我将再次处理此问题。

您必须再次使用上一个练习中使用的
ord
函数来获取字符的字符号。然后可以减去字符
A
的字符值,以获得介于
1
26
之间的值

inp = input()
if (len(inp) > 1 or inp != inp.upper()):
    print("invalid input")
else:
    print(ord(inp)-ord("A")+1)
ord(x)
函数接受字符
x
(例如任何
UTF8
字符)并返回整数。这个整数值表示编码表中字符的数量:让我们看看下面的代码< >代码ASCII 。 这里您可以看到字符的
char
值和
dec
/
int
值。例如,字符
A
int
65
表示,依此类推

chr(x)
函数的作用正好相反:它获取
int
值并返回
char
,这表示:

ord("A") = 65
chr(65) = "A"
chr(ord(anyCharacter)) = anyCharacter

使用
ord
获取字符的数值,然后从中减去一个数字,使“a”的代码变为0。那么,让你困惑的是什么?
ord("A") = 65
chr(65) = "A"
chr(ord(anyCharacter)) = anyCharacter