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