Skip to content

Commit b5ee1c7

Browse files
committed
p3
1 parent 495c1b0 commit b5ee1c7

1 file changed

Lines changed: 58 additions & 20 deletions

File tree

‎106.md‎

Lines changed: 58 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111
聊天!看视频!打游戏!处理文档!
1212

13-
显然,已经“忘记初心”,计算机再不是当初的计算机了,成为了“电脑”。也正是忘记初心,变成“电脑”,才成为大众的工具。而支持她作为“电脑”只用的,就是里面的软件。
13+
显然,已经“忘记初心”,计算机再不是当初的计算机了,成为了“电脑”。也正是忘记初心,变成“电脑”,才成为大众的工具。而支持她作为“电脑”之用的,就是里面的软件。
1414

1515
电脑中的软件,只有少数是用来计算的,多数是不用于计算的。处理文档则是多数功能之一。
1616

1717
软件程序如何处理文档?要再看看自然语言。
1818

19-
如果对自然语言分类,有很多种分法,比如英语、法语、汉语等,这种分法是最常见的。
19+
如果对自然语言,有很多种,比如英语、法语、汉语等,这是对自然语言的分类。
2020

2121
我还有一种分类方法,固然尚未得到广泛认同,但“真理是掌握在少数人的手里”是我的信念,至少可以让自己成为“民科”。
2222

@@ -61,6 +61,8 @@ google,不至于让我盲目。
6161

6262
不论使用单引号还是双引号,结果都是一样的,都是字符串。
6363

64+
Python 2的用户,可以看到:
65+
6466
>>> 250
6567
250
6668
>>> type(250)
@@ -71,16 +73,30 @@ google,不至于让我盲目。
7173
>>> type("250")
7274
<type 'str'>
7375

74-
仔细观察上面的区别,同样是250,一个没有放在引号里面,一个放在了引号里面,用`type()`函数来检验一下,发现它们居然是两种不同的对象类型,前者是int类型,后者则是str类型,即字符串类型。所以,务必注意,不是所有数字都是int(or float),必须要看看,它在什么地方,如果在引号里面,就是字符串了。如果搞不清楚是什么类型,就让`type()`来帮忙搞定。
76+
Python 3则是这样的结果:
77+
78+
>>> type(250)
79+
<class 'int'>
80+
>>> type("250")
81+
<class 'str'>
82+
83+
仔细观察,同样是250,一个没有放在引号里面,一个放在了引号里面,用`type()`函数来检验一下,发现它们居然是两种不同的对象类型,前者是int类型,后者则是str类型,即字符串类型。所以,务必注意,不是所有数字都是int(or float),必须要看看,它在什么地方,如果在引号里面,就是字符串了。如果搞不清楚是什么类型,就让`type()`来帮忙搞定。
7584

7685
操练一下字符串吧。
7786

87+
先看Python 2下的操作
88+
7889
>>> print "good good study, day day up"
7990
good good study, day day up
8091
>>> print "----good---study---day----up"
8192
----good---study---day----up
8293

83-
在print后面,打印的都是字符串。注意,是双引号里面的,引号不是字符串的组成部分。它是在告诉计算机,它里面包裹着的是一个字符串。
94+
在`print`后面,打印的都是字符串。注意,是双引号里面的,引号不是字符串的组成部分。它是在告诉计算机,它里面包裹着的是一个字符串。
95+
96+
在Python 3中,区别就是`print()`是一个函数了。
97+
98+
>>> print("good good study, day day up")
99+
good good study, day day up
84100

85101
爱思考,有惊喜;多尝试,有收获。
86102

@@ -115,7 +131,7 @@ google,不至于让我盲目。
115131

116132
**解决方法二:**使用转义符
117133

118-
所谓转义,就是让某个符号不在表示某个含义,而是表示另外一个含义。转义符的作用就是它能够转变符号的含义。在Python中,用`\`作为转义符(其实很多语言,只要有转义符的,都是用这个符号)。
134+
所谓转义,就是让某个符号不再表示某个含义,而是表示另外一个含义。转义符的作用就是它能够转变符号的含义。在Python中,用`\`作为转义符(其实很多语言,只要有转义符的,都是用这个符号)。
119135

120136
>>> 'What\'s your name?'
121137
"What's your name?"
@@ -145,15 +161,24 @@ google,不至于让我盲目。
145161
>>> b = "hello,world"
146162
>>> b
147163
'hello,world'
148-
>>> print b
164+
>>> print b #Python 2
149165
hello,world
166+
#>>> print(b) #Python 3
167+
#hello,world
150168

151-
检查类型的命令`type`总是在我们需要的时候被想起来。
169+
检查类型的函数`type()`总是在我们需要的时候被想起来。
152170

171+
#Python 2
153172
>>> type(a)
154173
<type 'int'>
155174
>>> type(b)
156175
<type 'str'>
176+
177+
#Python 3
178+
>>> type(a)
179+
<class 'int'>
180+
>>> type(b)
181+
<class 'str'>
157182

158183
有一种说法:a称之为数字型变量,b叫做字符(串)型变量。
159184

@@ -187,18 +212,16 @@ google,不至于让我盲目。
187212

188213
>>> a = 1989
189214
>>> b = "free"
190-
>>> print b+a
215+
>>> print b+a # Python 2的写法,如果是Python 3,请使用print(b + a)
191216
Traceback (most recent call last):
192217
File "<stdin>", line 1, in <module>
193218
TypeError: cannot concatenate 'str' and 'int' objects
194-
195-
>这里引入了一个指令:`print`,意思就是打印后面的字符串(或者指向字符串的变量),上面是Python 2中的使用方式,在python 3中,它变成了一个函数。应该用`print(b+a)`的样式了。
196219

197-
报错了,其错误原因已经打印出来(一定要注意看打印出来的信息):`cannot concatenate 'str' and 'int' objects`。原来`a`对应的对象是一个`int`类型的,不能将它和`str`对象连接起来。
220+
报错了,其错误原因已经打印出来(一定要注意看打印出来的信息):`cannot concatenate 'str' and 'int' objects`。原来`a`对应的对象是一个`int`类型的,不能将它和`str`对象连接起来。如果是Python 3,报错信息是`TypeError: unsupported operand type(s) for +: 'int' and 'str'`。
198221

199222
怎么办?
200223

201-
原来,用`+`所连接的两个对象,必须是同一种类型。
224+
原来,用`+`所连接的两个对象,必须是同一种类型。如果是不同类型的,则"cannot concatenate"或者"unsupported"。
202225

203226
如果两个都是数字,毫无疑问是正确的,就是求和;如果都是字符串,那么就得到一个新的字符串。
204227

@@ -207,36 +230,40 @@ google,不至于让我盲目。
207230
>>> print b + `a`
208231
free1989
209232

210-
注意,上面的代码,一不小心就会犯错误。包裹着字母`a`的,不是单引号,是键盘中通常在数字1左边的那个,在英文半角状态下输入的符号——叫做“反引号”。这种方法,在编程实践中比较少应用,特别是在python 3中,已经把这种方式弃绝了。窃以为原因就是这个符号太容易和单引号混淆了。在编程中,也不容易看出来,可读性太差。
233+
注意,上面的代码,不要使用在Python 3中。
234+
235+
在Pytohn 2中,也要注意,一不小心就会犯错误。包裹着字母`a`的,不是单引号,是键盘中通常在数字1左边的那个,在英文半角状态下输入的符号——叫做“反引号”。
236+
237+
这种方法,在编程实践中比较少应用,特别是在python 3中,已经把这种方式弃绝了。窃以为原因就是这个符号太容易和单引号混淆了。在编程中,也不容易看出来,可读性太差。
211238

212239
常言道,“困难只有一个,解决困难的方法不止一种”,既然反引号可读性不好,在编程实践中就尽量不要使用。于是乎就有了下面的方法,这是被广泛采用的。不但简单,更主要是直白,一看就懂什么意思了。
213240

214-
>>> print b + str(a)
241+
>>> print b + str(a) # 如果是Python 3,请使用print(b + str(a))
215242
free1989
216243

217244
用`str(a)`实现将整数对象转换为字符串对象。虽然`str`是一种对象类型,但是它也能够实现对象类型的转换——`str()`是函数,关于函数,后面会详述。其实前面已经遇到过`int()`了。比如:
218245

219246
>>> a = "250"
220247
>>> type(a)
221-
<type 'str'>
248+
<type 'str'> # 对于Pytohn 3,返回值略有差异,前面已经演示过了。
222249
>>> b = int(a)
223250
>>> b
224251
250
225252
>>> type(b)
226253
<type 'int'>
227254

228-
>提醒列位,如果你对int和str比较好奇,可以在交互模式中,使用help(int),help(str)查阅相关的更多资料。
255+
>提醒列位,如果你对int和str比较好奇,可以在交互模式中,使用`help(int)`,`help(str)`查阅相关的更多资料。或许看不懂,不用担心,权当混个脸熟。
229256
230257
还有第三种:
231258

232-
>>> print b + repr(a) #repr(a)与上面的类似
259+
>>> print b + repr(a) # 这是Python 2的写法,Python 3则为:>>> print(b + repr(a))
233260
free1989
234261

235-
这里repr()是一个函数,其实就是反引号的替代品,它能够把结果字符串转化为合法的python表达式。
262+
这里repr()是一个函数,其实就是反引号的替代品,它能够把结果字符串转化为合法的Python表达式。
236263

237264
三种解决方法,有区别吗?
238265

239-
首先,repr()和反引号是一致的,就不用区别了。
266+
首先,repr()和反引号是一致的(Python 3弃绝了反引号的使用),就不用区别了。
240267

241268
然后区分repr()和str,不用消耗脑细胞,交给Google,查询到这样的描述:
242269

@@ -293,16 +320,27 @@ google,不至于让我盲目。
293320

294321
以上所有转义符,都可以通过交互模式下`print`来测试,感受实际上是什么样子的。例如:
295322

323+
Python 2:
324+
296325
>>> print "hello.I am qiwsir.\ #这里换行,下一行接续
297326
... My website is 'http://qiwsir.github.io'."
298327
hello.I am qiwsir.My website is 'http://qiwsir.github.io'.
299328

300329
>>> print "you can connect me by qq\\weibo\\gmail" #\\是为了要后面那个\
301330
you can connect me by qq\weibo\gmail
302331

332+
Python 3:
333+
334+
>>> print("hello.I am qiwsir.\
335+
My website is 'http://qiwsir.github.io'.")
336+
hello.I am qiwsir.My website is 'http://qiwsir.github.io'.
337+
338+
>>> print("you can connect me by qq\\weibo\\gmail")
339+
you can connect me by qq\weibo\gmail
340+
303341
自己动手,丰衣足食,试试吧。
304342

305-
`print`解决了显示问题,要向程序输入一个内容,这就需要`raw_input()`粉墨登场了。
343+
`print`或者`print()`解决了显示问题,但是输入怎么办?这就需要`raw_input()`或者`input()`粉墨登场了。
306344

307345
------
308346

0 commit comments

Comments
 (0)