输出未格式化?

时间:2011-03-05 00:44:15

标签: python

我是Python的新手。在Zed Shaw先生的LearnPythonTheHardWay中进行锻炼。 我一直坚持这个问题

这是代码:

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”? 请帮忙!!!

2 个答案:

答案 0 :(得分:4)

看起来你正在使用Python 3.在Python 3中,input()函数返回一个字符串,这是你在提示符下输入的内容。在Python 2中,input()函数返回一个已计算的表达式,在您的情况下,如果键入数字则为整数。

您有三个基本选择:

  • 查找使用Python 3的教程
  • 安装Python 2以与当前教程一起使用
  • 使用input()
  • 模拟Python 2 eval(input(...))

答案 1 :(得分:0)

在某些系统中,newline字符(语言理解您点击enter键的方式)的出现是\n的出现(更常见)称为换行符或\r(通常称为返回字符)或两者兼而有之。

在各种操作系统开发历史的某个时候,有些人占用了\n而有些人占用了\r(实际上有些人使用了\r\n。这就是为什么在一些非常低级别的C程序中,你必须检查CRLF,顺便说一下,它受到carriage returnline feed的启发对打字机的操作。

因此,您真正需要做的是从每行的末尾删除\r\n(无论哪个存在)。

然而,可能并不总是很清楚使用哪个,但幸运的是python为您提供了一种处理方法,即strip函数,它处理\r和{{的所有可能组合。 1}}。

希望这有帮助