Python学习笔记(1)——Python的概述(Python的环境、变量、数据类型、基本运算) Python概述 Python的数据类型 Python的基本运算

开始学习Python,主要的材料有三:

  1. 《Head First Python》。入门,了解概念。
  2. coursera上的《用Python玩转数据》,中文视频,比较粗浅,容易跟得上。与上一材料互补。
  3. 《利用Python进行数据分析》,O'REILLY的大作,主要是数据分析用的。学完上面的,再开这个。

在这里只记知识点,和自己在学习过程遇到的问题。总结自己的过程,也为同样遇到问题的朋友提个醒.


Python的运行环境主要分为两大类:一种是IDE类的,即我们只可以输入代码,之后找地方执行代码(比较是和要输入大量代码的情况);另一种是Shell类的,即可以运行代码,显示结果的(比较适合代码量不大的情况);第三类是同时具备以上两类的功能。个人推荐新手使用第三类。下面简单介绍几种常见的编辑器(也是我筛选了很多信息以后最终选定的几种)。首先,本人的操作系统主要是windows(公司标配,无法改变),以及自己的一个Macbook Pro 13寸(自己便携用的),另外不好意思,新手不会用Linux,但是OSX是基于Uinux内核的,相信以后我会学会的,一定的。言归正传,想我一样的新手(windows用户)不推荐NotePad++(但是电脑上要装一个,改个什么配置什么的比记事本方便,别说Emacs之类的,本人是新手,一切都在学习中),缩进之类的不利于学习。因为不用Linux(至少现在不用),所以没有多了解Eclipse。这里简单说说IDLE,pycharm,python(xy),以及Emacs和VIM(列在这里主要是督促自己学习用的)

  • IDLE。安装Python自带的一个编辑器,缩进,颜色标注函数、变量之类的很好用。属于shell类的,可以直接显示运行结果。入门教材《Head First Python》就是用的这个编辑器讲解的Python。本人使用了一下,感觉还行,但是可能是还没有深入使用,感觉不太利于编辑。毕竟代码输入以后直接执行了。想调整,要把之前的代码Alt+p下来,然后再该,之前的显示也都在,不舒服。
  • python(xy)是一个第三类编辑器,而且优势在于把屏幕分成左右两部分,分别对应了第一类和第二类的功能,很方便。另外,Python包含的包之类的东西是各种丰富,重点推荐,科学计算的不错选择。很多人推荐课程时,提到了coursera上的一个南京大学的课程,叫《用Python玩转数据》。里面就主要用的是Python(xy)。
  • Ipython。也是一个不错的选择。经典教材,O'REILLY的《利用Python进行数据分析》推荐的。不用多说,绝对良选。
  • pycharm。上面三个都是我入门的资料推荐的,但是本人偏偏选中了pycharm,主要原因是——漂亮。绝对漂亮的界面,而且上手似乎很容易,但是对于新手也有的深入了解的点。属于上文说道的第三类,可以使用高亮的界面,各种设置。不错。
  • Emacs和VIM。前面说了,这两个放在这里是用来膜拜的,以后有机会一定学会。目前也只用Emacs的Org-mode写点笔记。感觉用好了,确实很好用。再叩首……

  • 大小写。Python对大小写是敏感的。换句话说变量CAT和变量cat是不一样的。通常情况下,全大写的变量是常量。

  • 函数的缩进是必须的。在IDLE中使用if函数的时候,直接输入代码会自动缩进,但是也不是完全自动的,比如直接输入后是这样的(《Head First Python》中的例子)

    def print_lol(the_list):
    for each_item in the_list:
    if isinstance(each_item,list):
    print_lol(each_item)
    else:
    print(each_item)

直接报错,不能使用,书上也没细说。自己第一次看的时候那叫一个晕菜,后来发现是缩进问题。在输入else的时候要Backspace一下,变成这样才可以。

def print_lol(the_list):
    for each_item in the_list:
        if isinstance(each_item,list):
           print_lol(each_item)
        else:
           print(each_item)

也就是要把同级的if和else对齐。这里还不确定是不是我的IDLE 版本的问题,但是说这个例子就是要强调# 缩进是必须的#

  • 特殊符号。‘’是续行符。‘;’是多行写成一行的意思。通常情况下,建议还是一行代码写成一行,方便阅读。
  • python的语句和表达式。语句是要完成一个任务(比如打印一份文件)。表达式是任务中的一个具体的组成部分(比如要打印文件的内容)。强调这个主要是为了便于交流。

Python 的变量主要有以下要注意的:

  • 变量首字母可以使用下划线或者字母,其它可以使用字母、下划线和数字,也就是说变量的开头不能使数字,变量中也不能用乱七八糟的字符。(由于Python的很多内建标识涉及到下划线,所以习惯上变量做好不要用下划线开头)
  • 大小写敏感(前面说了)
  • 关键字不可用(就是python自己的函数名字和变量不能用,可以直接输入dir(builtins_),查看这些不能用的东西)
  • Python是动态的,不需要声明变量的类型。(比C之类的东西更亲民啊)

Python变量不需要声明数据类型,这是极大的亲民,但是不代表Python没有数据类型。作为基础学习还是要了解一下的。Python主要的数据类型有整数型(integer)、浮点型(float)、布尔型(boolean)、复数型(complex)、序列类型和映射类型(即字典dictionary)

  1. 整数型。就是我们一般说的整数。分为短的和长的,对于很多语言(包括老的Python版本)这个很重要,现在的不用考虑了。(包括Python2.7)。比如对于32位的系统,短整数型的范围是-231 -231 -1,(64bit的系统就是63次方),要用长整数型的时候需要用字母L,目前Python版本都不需要了,大大解决了溢出的问题。体现了Python的友善性,大赞一下。

  2. 浮点型。就是有小数了。这里支持科学计数法。比如3.22,9.8e3(就是9800)

  3. 布尔型。布尔型只有两种值,Ture和False。一般用1和0表示。

  4. 复数型。用小写字母j表示虚部。例如x=4+5j。利用函数real和imag可以提取实部和虚部。比如输入x.real,结果为4。x.imag就是5。另外可以用x.conjugate求共轭复数。

  5. 序列类型主要有字符串、元组、列表。

    • 字符串,不可变类型,用引号表示。
    • 元组,不可变类型,用()表示。比如赋值是x=1;y=2。然后输入x,y。结果显示1,2。这个很方便,比如用x,y=3,4直接赋值。也可以用x,y=y,x交换两个变量的值。
    • 列表,可变类型,用[]表示。
  6. 映射类型,建立对应键值得对应关系,比如

    d={'sine':'sin','cosine':'cos','PI':3.14}
    d['sine']
    'sin'

这里就是建立键(比如‘sine’)和值(比如‘sin’)的对应关系,当然后面还有更多的用处,以后慢慢絮叨。

这里有一个有意思的事情,直接打开Python(不是编辑器),输入一个简单的计算,3除以2(输入3/2),应该是1.5,但是Python给的结果却是1。原因就是python默认的计算规则是如果你输入的是整数型计算,答案也是整数型,即把答案的小数部分抹去。解决的办法输入3.0/2.0。答案就变成了1.5,因为你输入的是浮点型,答案也就用浮点型了。另外一种方法是调用‘division’,即输入命令

from __future__ import division

再试试,答案变成1.5了。

Python的基本运算包括算术运算(“+”“-”“*”“/”,乘方“**”,整除“//”,取余“%”);比较运算(>,<,,!=,<=,>=,分别对应大于,小于,等于,不等于,小于等于,大于等于);逻辑运算(not、and、or)。这些好理解,不说了,强调等于是“”,两个等号,一个那是赋值。不是一回事。

重点说一下字符运算。只有两种:

  • 原始字符串操作符r/R,大小写都行。用于一些不必转移字符的地方,举个例子,建立一个在python文件夹下建立一个test.py文件。

    f=open('d:python est.py','w') ##w是命令一部分,不用管

运行结果必然报错。因为,Python没有把'd:python est.py'当成一个地址,而是转义为一个字符串。其实就是将转义了。怎么办?用r或者用双斜杠

f=open(r'd:python	est.py','w')

或者用open('d:\python\test.py')

  • Unicode字符串操作符u/U,大小写都行。用于转换成Unicode字符串