编程语言学习之旅总是从各种 Print 和 Input 语句中开始, Python 也不例外,那你能看出什么问题呢?没有?那我提几个吧……
Python 中的一般 Print 的语法
对单引号('')和双引号("")的显示问题
print 需要用引号来标记输出信息,但如果输出中含有单引号或者双引号时,有时需要转义。
1
2
3
4
  | 
 >>> print "I don't like Tony's dog."
 I don't like Tony's dog.
 >>> print 'I don"t like Tony"s dog.'
 I don"t like Tony"s dog.
  | 
 
上述例子可以看出,对于两边的引号, Python 会将其默认为标记符,只要句子中的引号和标记符不同,可以不使用转义。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  | 
>>> print "I don't like Tony's dog, But Tony said that I don't care you."
I don't like Tony's dog, But Tony said that I don't care you.
>>> print "I don't like Tony's dog, But Tony said : I don't care you."
I don't like Tony's dog, But Tony said : I don't care you.
>>> print "I don't like Tony's dog, But Tony said: "I don't care you.""
  File "<stdin>", line 1
    print "I don't like Tony's dog, But Tony said: "I don't care you.""
                                                    ^
SyntaxError: invalid syntax
>>> print "I don't like Tony's dog, But Tony said: \"I don't care you.\""
I don't like Tony's dog, But Tony said: "I don't care you."
  | 
 
上述例子看出,如何两边默认的标记符中出现相同的标记符,需要加上转义符号(\)。当然要显示(\),需要使用(\\)。
| 转义字符 | 
描述 | 
| \(在行尾时) | 
续行符 | 
| \\ | 
反斜杠符号 | 
| \' | 
单引号 | 
| \" | 
双引号 | 
| \a | 
响铃 | 
| \b | 
退格 (Backspace) | 
| \e | 
转义 | 
| \000 | 
空 | 
| \n | 
换行 | 
| \v | 
纵向制表符 | 
| \t | 
横向制表符 | 
| \r | 
回车 | 
| \f | 
换页 | 
| \oyy | 
八进制数 yy 代表的字符,例如:\o12 代表换行 | 
| \xyy | 
十进制数 yy 代表的字符,例如:\x0a 代表换行 | 
| \other | 
其它的字符以普通格式输出 | 
Print 中 %s 和 %r 的区别
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  | 
>>> print "Good %s!" % 'luck'
Good luck!
>>> print "Good %r!" % 'luck'
Good 'luck'!
>>> print "Good %r!" % "luck"
Good 'luck'!
>>> print "Hi,%s!" % "Tom's son"
Hi,Tom's son!
>>> print "Hi,%r!" % "Tom's son"
Hi,"Tom's son"!
  | 
 
可以看出, %s 输出为你想要输出的内容,而 %r 输出为原始内容。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
  | 
input(...)
    input([prompt]) -> value
    Equivalent to eval(raw_input(prompt)).
(END)
raw_input(...)
    raw_input([prompt]) -> string
    Read a string from standard input.  The trailing newline is stripped.
    If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
    On Unix, GNU readline is used if enabled.  The prompt string, if given,
    is printed without a trailing newline before reading.
(END)
  | 
 
上述由 pydoc 得到。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  | 
>>> input()
2
2
>>> raw_input()
2
'2'
>>> input(),2
2
(2, 2)
>>> raw_input(),2
2
('2', 2)
>>> [input(),2]
2
[2, 2]
>>> [raw_input(),2]
2
['2', 2]
  | 
 
不知道你发现了什么没有,希望你能够理解。比较不同哦。
相关说明
- 上述代码在 
Python2.7.12 环境下测试 
- 【2017-08-16 19:09:15】更新: 
python3+ 仅支持 input()