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

    xiaoxiao2021-03-25  148

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

    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 divisiondivision(除法)

    图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小结

    转载请注明原文地址: https://ju.6miu.com/read-5909.html

    最新回复(0)