【Python】《python基础教程》学习笔记1

版权声明:本文为博主原创文章,想转载告诉一声。 https://blog.csdn.net/u012318329/article/details/60880312

第一章 快速改造:基础知识

1.1安装Python

1.1.1Windows

具体的我也就不赘述了,可以看我另一篇博客。

http://blog.csdn.net/u012318329/article/details/60479591

1.1.2Linux和UNIX

python解释器是默认存在的,我没有装虚拟机,就也不细说了,有机会用linux的时候再一起研究。

1.1.3苹果机(Macintosh)

没钱啊……

1.1.4其他发行版本

1.1.5时常关注,保持更新


1.2交互式解释器


图1.惯例hello world。

1.3算法是什么

书里举了个例子,我就不复述了,上定义。

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

1.4数字和表达式


图2.Python可以用作计算器,功能强大。


图3.整数除法,浮点数除法。(参与除法的两个数有一个是浮点数,运算结果亦为浮点数)


图4.如果希望只执行普通除法,可以在程序前加入这样一句:

from __future__ import division
division(除法)

图5.双斜线可以在这种情况下用于整除代替原本单斜线的功能。


图6.取余运算、幂运算。

1.4.1长整数


图7.python可以处理非常大的整数。

1.4.2十六进制和八进制


图8.python解释器中的八进制和十六进制。

1.5变量


图9.python中的变量与赋值。

1.6语句

表达式是某件事情,语句是【做】某件事情。


图10.简单的表达式和打印语句。


图11.表达式和语句的差别在赋值表达式上体现的比较明显。

1.7获取用户输入


图12.input()语句括号内的字符串将成为新的【提示符】。


图13.input()语句的赋值情况。

1.8函数


图14.幂运算函数。

 

图15.取绝对值运算函数。


图16.round函数会把浮点数四舍五入为最接近的整数值。

1.9模块

模块是导入到python以增强其功能的扩展,按照【模块.函数】的格式使用函数。


图17.导入自然语言处理模块

在使用了【form模块import函数】这种形式的import命令之后,就可以直接使用函数而不再需要模块名作为前缀了。


图18. 通过nltk.book导入所有自带的文本/通过 math直接使用sqrt函数,sqrt函数用于计算平方根。

1.9.1cmath和复数


图19.cmath下的sqrt函数支持对复数开平方根。


图20.python本身就支持复数。

1.9.2回到__future__

Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动。有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了。
从Python 2.7到Python 3.x就有不兼容的一些改动,比如2.x里的字符串用'xxx'表示str,Unicode字符串用u'xxx'表示unicode,而在3.x中,所有字符串都被视为unicode,因此,写u'xxx'和'xxx'是完全一致的,而在2.x中以'xxx'表示的str就必须写成b'xxx',以此表示“二进制字符串”。
要直接把代码升级到3.x是比较冒进的,因为有大量的改动需要测试。相反,可以在2.7版本中先在一部分代码中测试一些3.x的特性,如果没有问题,再移植到3.x不迟。
Python提供了__future__模块,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。

1.10保存并执行程序

1.10.1通过命令提示符运行Python脚本

1.10.2让脚本像普通程序一样运行

1.10.3注释

这部分没什么好说的,重点讲一下书里提到的input()和raw_input()函数。首先是input()函数,input('please input:')之后会返回一个值,可以用tpye()查看他的类型,然而当我们输入字符串或者字符的时候, 要用双引号或者单引号包起来不然就会报错。input()函数输入什么类型,就显示什么类型。

图20.input()函数,类型按输入数据类型。

再来看raw_input()函数,不论输入什么类型,都是str类型。也就不用另外输入引号了。


图21.raw_input()函数,无论输入什么,都是str类型。

通过上面的实验我们知道input它会根据用户输入变换相应的类型,而且如果要输入字符和字符串的时候必须要用引号包起来,而raw_input则是不管用户输入什么类型的都会转变成字符型。

我们来看input的源码。

def input(prompt):
  return eval(raw_input(prompt))
其实input也是调用了raw_input,只是做了eval处理。
而eval有什么作用呢?eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果。

1.11字符串

1.11.1单引号字符串和转义引号

python里单引号和双引号大部分时间意义相同,双引号用在单引号出现在句子中时。转义字符为“\”。

1.11.2拼接字符串

用加号“+”来拼接字符串。

1.11.3字符串表示,str和repr

Python打印值的时候会保持该值在Python代码中的状态,不是用户所希望看到的状态。而使用print打印值则不一样,print打印出来的值是用户所希望看到的状态。 
例如:

>>> "Hello, world!"
'Hello, world!'   # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号
>>> 1000L         # python理解为Long型的数字,所以它打印出来的时候也带着后缀L
1000L
>>> print "Hello, world!"    # 打印一个字符串,给用户看的,所以不带引号
Hello, world!
>>> print 1000L              # 用户看到的当然是一个数字1000,而不是字符串1000L
1000
str和repr实际就分别对应上述两种显示方式。

str把值转换为合理形式的字符串,给用户看的。str实际上类似于int,long,是一种类型。

>>> print str("Hello,  world!")
Hello,  world!            
>>> print str(1000L)
1000                         
>>> str("Hello, world!")
'Hello, world!'               # 字符串转换之后仍然是字符串
>>> str(1000L)
'1000'
repr()创建一个字符串,以合法python表达式的形式来表示值。repr()是一个函数。

>>> print repr("Hello,  world!")
'Hello,  world!'
>>> print repr(1000L)
1000L
>>> repr("Hello,  world!")
"'Hello,  world!'"
>>> repr(1000L)
'1000L'
总而言之,str出来的值是给人看的字符串,repr出来的值是给机器看的,括号中的任何内容出来后都是在它之上再加上一层引号。
1.11.4input和raw_input的比较

上面写过了,此处略。

1.11.5长字符串、原始字符串和Unicode

1.长字符串

长字符串可以用三个单引号或者三个双引号代替普通引号。

2.原始字符串

换行符可以写为\n,原始字符串前面为r,可在字符串中放入任何字符。

p.s.不能在原始字符串结尾输入反斜线。

1.12小结


没有更多推荐了,返回首页