Python入门
一、数据类型
在Python中,常见的数据类型有数、字符串、列表、元祖、集合以及字典等。
数:就是数学上的数字,比如“a=7”就是将数字7赋值给a,这里的等号是赋值的意思。想要查看对应的数据是什么类型可以使用type()函数查看,比如7就是int整形,7.0就是float浮点型
![](https://img.haomeiwen.com/i11483058/47a0816dabc5b92b.png)
字符串:一系列字符所组成的序列叫做字符串。字符串一般使用引号将其引起来,这里使用单引号和双引号均可。
![](https://img.haomeiwen.com/i11483058/ee10ddcec2bca963.png)
列表:存储多个元素的容器,列表中的元素可以被重新赋值,也就是说列表中的元素是可以变化的。例如:list=[]表示list是一个空列表,也可以list=[a1,a2],列表中每个元素之间使用逗号隔开,list这个列表中包含了a1和a2两个元素。取其中的元素可以通过下标实现,例如list[1]就是取出a1的值。列表中的元素可以被重新定义,例如使用list[1]="hello" 就可以对原本list[1]的位置进行赋值。
![](https://img.haomeiwen.com/i11483058/7622b3e1ec4437e8.png)
元组:存储多个元素的容器,但是元组中的元素不可以被重新赋值。例如c=(7,"cd",9),c存储了一组数据,如果想要对c中任意位置赋值成为其他的数据,都是不可以的,这也是元组与列表的区别。
![](https://img.haomeiwen.com/i11483058/79274ad6c0f0ed91.png)
字典:相当于关联数组,就是里面需要存储一对信息的数组。列表和元组存储的元素都是一个,而字典存储的元素是一对信息。例如d={"name":"X_ice","sex":"girl","job":"teacher"}这样的{键:值, 键:值, ...}。在取值的时候直接使用字典名["对应键名"],例如d["name"]就可以取到"X_ice"这个值。
![](https://img.haomeiwen.com/i11483058/5c764b2608bd416d.png)
集合:用于存储一组数据,但是不允许出现重复的元素,所以,集合的一个非常简单的应用就是去重。可通过set建立集合,例如e=set("abcdefgabc")
![](https://img.haomeiwen.com/i11483058/d456b4ce5ff446c8.png)
二、控制结构
Python中常用的控制结构:顺序结构、选择结构、循环结构、中断结构;
顺序结构:就是按照顺序写,程序也按照顺序执行;
选择结构:通常使用if语句实现;
![](https://img.haomeiwen.com/i11483058/90833201743d00b0.png)
循环结构:常用的有两种:while和for;
while的语句如下,a从0打印到9
![](https://img.haomeiwen.com/i11483058/a61f6f8d13209ad6.png)
for循环常用的写法是for i in range(),例如for i in range(2,5)就是遍历2、3、4,不包括5
![](https://img.haomeiwen.com/i11483058/c166bdf446a34c2c.png)
也可以for i in x,x是一组数据,for循环遍历列表,循环输出列表中的各个元素
![](https://img.haomeiwen.com/i11483058/b740f456508537ae.png)
中断循环:是在程序执行过程中进行中断,可以使用break与continue。break是直接退出循环,整个循环都会中断;而continue指的是中断单次循环,会继续下一次循环。
![](https://img.haomeiwen.com/i11483058/ad8ca4b4b25d1679.png)
![](https://img.haomeiwen.com/i11483058/25297873d8b9d953.png)
三、函数与模块
函数:相当于封装。例如某个程序段可能会被经常调用,如果不进行功能封装,那么每次调用这个功能时就需要重新实现一遍该段程序,这就会带来很多麻烦。而将这个经常被调用的程序段封装成一个函数,如果需要实现这个功能就可以直接调用这个封装好的函数。
![](https://img.haomeiwen.com/i11483058/0a02ff0104371713.png)
模块:相当于函数的再次封装。在Python的安装目录下,有一个“Lib”目录,该目录一般就用于放置模块,而且也可以自己写模块,这样的模块就叫做自定义模块。
在Python中想要使用模块,可以用:导入和使用。
导入模块:第一种方法是使用import语句直接导入某个模块,第二种方法是从某个模块中仅导入某个方法。
![](https://img.haomeiwen.com/i11483058/d670f9caabb2f010.png)
第三方的模块一般放置在lib目录下的site-packages中
四、文件操作
文件的打开:open(文件地址,操作形式),open函数的参数中的操作形式有:w(写入)、r(读取)、b(二进制)、a(追加),其中的a表示可以实现追加写入,这样就不会丢失原来的内容,如果使用w就是全新写入,将会覆盖原本的内容。
![](https://img.haomeiwen.com/i11483058/799dc38a9be391ae.png)
read()指的是将文件中的内容全部读取出来,readline()则是一行行地读取
![](https://img.haomeiwen.com/i11483058/3298a27a3eb8d37b.png)
文件的写入:在进行文件写入时,open函数中的操作形式的参数应该为“w”或者“a”,参数中的文件地址则是输出地址
![](https://img.haomeiwen.com/i11483058/f781a97cfccfd679.jpg)
五、数据库操作
以mysql数据库为例,先安装pip install pymysql
安装完成后,练习数据库操作,如下,执行有返回结果的SQL语句,首先通过conn的cursor方法建立游标,之后使用execute方法执行SQL语句,这样就可以遍历游标,查询结果存储在cs中,使用for i in cs可逐个将查询结果取出来。
![](https://img.haomeiwen.com/i11483058/38be05e1524e8461.png)
六、异常处理
在Python中经常会出现这样或那样的错误,有些错误是不可避免的,甚至是未知的。对于未知的错误,当Python执行时遇到后就会自动终结。而如果希望在遇到错误之后程序能够继续运行,则需要使用异常处理。
![](https://img.haomeiwen.com/i11483058/4706c4f1b113ada9.png)
try后面的代码段就是尝试着去执行这段程序,发现jkj未定义,出现异常,触发except从句,except后面是对应的Exception类型,可以直接使用Exception(通用异常),只要发生异常,Exception都会将其捕获到,并打印出来name 'jkj' is not defined,as表示对于异常起一个别名。
如果未使用异常处理,当程序出现错误时,会直接标红
![](https://img.haomeiwen.com/i11483058/d2e0921d0f762e34.png)
七、类和对象
“对象”是具体的,将“对象”共有的特点抽象出来就形成“类”,“类”是抽象的;
例如小明是一个对象,小红是一个对象,他们都是人,人就是一个类。
建立类是使用class字段进行声明,将类实例化成为对象可以使用类名后面加括号并直接赋值给一个对象,例如建立类A,a=A(),那么a就是A这个类的一个对象:
![](https://img.haomeiwen.com/i11483058/e63bea07d10d6d07.png)
构造函数:也称构造方法,专门用于初始化的方法。一般在类中的方法必须加上self参数,其代表类本身。在Python中__init__(self,参数)就是构造方法,构造方法的名字是固定的,在括号里面加上self以及对应的参数。
![](https://img.haomeiwen.com/i11483058/235aef7f21cc6687.png)
属性:相当于是类中的变量;
方法:相当于类中的函数;
属性是静态的,方法是动态的。例如“人”这个类,手、头这些都属于属性,而人会说话、写字这些都是方法。在Python里面,属性的使用方式一般是self.属性
![](https://img.haomeiwen.com/i11483058/697b3f60cd982bbb.png)
在上述代码的A这个类的构造方法中,传递了两个参数,之后就在构造函数中变成了类的属性(self.myname和self.older)。因此,接下来在使用到时候直接调用self.属性即可。
继承:将某个类中所有的属性和方法都拿过来直接使用,被继承的这个类被称为基类或者父类,继承的类叫做子类。
首先创建父亲类,他的功能是可以说话;接着建立儿子这个子类,继承了父亲类,所以在son类定义的时候括号里写上了father。虽然son类中没有写任何方法,但是其仍然拥有speak方法,这是因为其继承了father类的所有方法,如下:
![](https://img.haomeiwen.com/i11483058/5fad348f67ff1fa2.png)
多继承:多继承只需要在类定义时加多个参数即可,例如女儿类同时继承了父亲和母亲,除了继承了两个基类之外,她还有新的听的能力:
![](https://img.haomeiwen.com/i11483058/3acb9772b797875d.png)
重写:小儿子继承了父亲类,但是优化了说的能力,所以需要实现一个同名方法,在实际使用的时候会调用自己重写的speak方法,如下:
![](https://img.haomeiwen.com/i11483058/3e7618e72868790c.png)