Python 输出未匹配?
我是Python的新手。泽德·肖先生正在做一个关于学习的练习。 我一直被这个问题困扰着 代码如下:Python 输出未匹配?,python,Python,我是Python的新手。泽德·肖先生正在做一个关于学习的练习。 我一直被这个问题困扰着 代码如下: age=input("How old are you?"); height=input("How tall are you?"); weight=input("How much do you weight?"); print ("age = %r height = %r weight = %r" %(age,height,weight)) 其输出: D:\Python>python sam
age=input("How old are you?");
height=input("How tall are you?");
weight=input("How much do you weight?");
print ("age = %r height = %r weight = %r" %(age,height,weight))
其输出:
D:\Python>python sample1.py
How old are you?22
How tall are you?182
How much do you weight?178
age = '22\r' height = '182\r' weight = '178\r'
我不明白,这是怎么回事,我的输出是“\r”?
请帮忙 看起来您正在使用Python 3。在Python3中,
input()
函数返回一个字符串,该字符串就是您在提示符处键入的字符串。在Python2中,input()
函数返回一个经过计算的表达式,在您的情况下,如果键入一个数字,该表达式将是一个整数
您有三个基本选择:
- 查找使用Python 3的教程
- 安装Python 2以便与当前教程一起使用
- 使用
eval(输入(…)
换行符
字符(语言理解您点击了回车键的方式)是通过出现\n
(更常见的称为换行符)或\r
(更常见的称为返回字符)或两者
在各种操作系统的开发历史上,有些人开始使用\n
,有些人开始使用\r
(事实上,有些人同时使用这两种操作系统,即\r\n
)。这就是为什么在一些真正低级的C程序中,必须检查CR
和LF
,顺便说一下,这是受到打字机上回车
和换行
操作的启发
因此,您真正需要做的是从每行末尾同时删除\r
和\n
(以存在的为准)
然而,可能并不总是清楚使用了哪些,但幸运的是python为您提供了一种处理方法,即strip
函数,它处理\r
和\n
的所有可能组合
希望这对Python代码中的分号有所帮助!顺便说一句,这仅适用于Python3.x。在Python2.7上,input()
正确地将'\r\n'
解析为换行符,而不仅仅是'\n'
。有人知道为什么吗?虽然%r而不是%s,或者更好的是,使用string的format()方法?@NullUserException,但实际上我没有使用分号,但当我尝试使用可能出现的不同错误时,我发现分号被接受了!!是的,但是我不会用它:)。。。或者int(input(…)
在这种情况下。但是,如果您在windows上的Python3(或2)中键入一些内容并按enter键,您将不会得到任何\r\n或\n。@Greg,您能给我推荐一些好的Python3.0书籍吗?如果我得到它,我将非常感谢:)。还有,哪种方式是获得输入的最佳方式???@Jochen Ritzel:我不太确定。目前我手头没有一台Windows机器可以尝试,而且我所有的其他机器都没有输入任何换行符。