Python基础知识
Python简介
Python是一个具有解释性,编译性,互动性和面向对象的脚本语言。
python是解释性语言,python的执行实际是由python解释器执行的,因此我们要想运行python程序首先需要安装python解释器。
python是交互式语言,这意味着可以在python提示符>>后直接执行代码。
细节小点
python中的标识符的开始字符必须是字母或者下划线_;
python标识符对大小写敏感;
python中与其他语言不同的是使用缩进来表示代码块,不需要使用大括号{};
使用type()函数可以用来查询变量所指的对象类型;
python中不支持++自增运算符,可以使用+=之类的操作符;
python的幂运算符是**,使用方法是x**y求的是x的y次幂;
常用函数
choice(seq)从序列的元素中随机挑选一个元素;
random():随机生成一个数,范围是[0,1);
range(start,stop[,step]):可创建一个整数列表,从start开始,默认是0,stop是结束,不包括,step是步长,默认是1;
输入输出
python中的输入使用input函数来完成,具体语法是input("提示语句");
需要注意的是input输入进来之后的格式是string类型,需要自己转换成对应的数据类型;
python中的输出使用print函数来完成,默认是自动换行的,不需要换行则加一个end="";
输出可以类似c语言进行格式化,一般是先用格式化字符代替,然后在后面给出,比如下面的例子;
print("我叫%s,今年%d岁!"('小明',11)
还可以使用format函数,使用示例如下:
print('我叫{},今年{}岁!'.format('小明',11))
数据类型
python3中有六个标准的数据类型,分别是数字,字符串,列表,元组,集合,字典。
在这六个标准数据类型中,数字,字符串,元组是不可变类型;列表,字典,集合是可变类型;
这里的可变类型和不可变类型的理解是内否在原本的内存中进行改变,而不开辟新内存。
- 
数字 
 python3中支持int,float,bool,complex(负数);
 这里的int和其他语言的不太相同,它是动态长度的,理论上可以表示任意长度的整数。
 python中的除法有两种,一种是/,表示数学意义上的一般除法,一种是//,表示整除,只返回整数;
 这里的bool的理解是由两个值False和True,它们分别表示0和1,可以像一般数值一样进行数值运算。
 常用数学函数:
 abs():求数字的绝对值;ceil():返回数字的上入整数;
 max():求给定参数的最大值;min():求给定参数的最小值;
 rount(x,[n]):返回浮点数x的四舍五入值,若给定n值表示舍入的位数;
- 
字符串 
 python中的字符串用单引号或者双引号括起来,同时使用反斜杠\来讲特殊字符进行转义;在字符串前面加上r可以取消转义,表示原始字符串。
 python中没有单独的字符表示,字符都看作是长度为1的字符串;
 字符串可以使用+运算符来进行连接,用*表示前面字符串的复制,后面跟的数字表示复制的次数;
 python中的字符串可以从前面进行索引取值,起始值为0;也可以从后面进行索引取值,从-1起始;
 python字符串的截取支持切片,格式为str[start,stop,stride],其中stride为步长,可以不使用默认就是1;
- 
列表 
 list是python中使用最频繁的数据类型,列表是写在方括号[]之间,各个元素之间用逗号隔开;
 列表是可变数据类型,因此其中的元素可以来修改,可以使用索引的方式进行修改;
 len函数可以求列表的长度;append函数可以在末尾添加元素;pop函数移出最后一个元素;
 reverse函数是将列表进行反置;sort函数进行排序;clear函数进行清空列表;
 del删除列表元素,可以根据索引值进行删除;
- 
元组 
 元组和列表是类似的,不同之处在于元组的元素不能修改,元组是写在小括号中,可以存放不同类型的元素,元素之间用逗号隔开;
 元素,字符串,列表等都可以使用切片的方式进行取值,因为它们都属于序列;
 元组之间也可以使用+操作符来进行拼接;
 构造包含0个或1个元素的元组比较特殊,构造0个元素的元组是tup=();构造1个元素的元组是tup2=(2,)注意要加一个逗号;
- 
集合 
 python中的集合定义就类似与数学中集合的概念,其中不能有重复的元素;
 可以使用大括号{}或者set()来创建集合,其中set()函数同样可以进行去重操作;
 使用set创建的时候,参数是一个可迭代的对象,比如字符串,列表等;
 可以使用add函数进行添加元素,使用remove函数进行移出元素;
 可以使用in关键字来检查一个元素是否在集合中;
- 
字典 
 字典是一种映射类型,字典用{}标识,它是一个无序的键值对组合,其中键(key)必须是不可变类型;
 keys函数可以求出字典中的所有键值,values函数可以用来取所有的值,遍历字典的时候可以使用这种方式;
 遍历的时候可以使用items函数,如下所示:
for k,v in x.items():
      print(k,v)
- 数据类型转换
 在平常使用的时候我们经常要用到数据类型转换,比如在进行输入的时候,使用数据类型转换只需要将数据类型作为函数名即可;
 int():转换为整数;float():转换为浮点数;str():转换为字符串类型;list()转换为一个列表;
 ord():将一个字符转换为它的整数值;hex():将一个整数转换为十六进制字符串;oct():将一个整数转换为八进制字符串;
运算符
- 
位运算符 
 按位与:&
 按位或:|
 异或:^
 取反:~
 左移:<<
 右移:>>
- 
逻辑运算符 
 与操作:and; 或操作:or; 非操作:not;
流程控制
- 
顺序结构 
 代码按照前后顺序进行执行;
- 
分支结构 
 python中使用elif代替了else if;
 python中没有switch-case语句;
- 
循环结构 
 在python中有for和while两种方式来控制循环;
 其中while的使用和c语言类似,注意使用缩进即可;
 python中for循环的使用有一些区别,for循环可以遍历任何序列的项目,如一个列表或字符串等;
 一般格式为:
for i in seq:
      循环语句
函数
函数代码块用def关键字来定义,后面跟函数名和():;
括号内放的是参数,函数内部使用缩进;
需要注意的是如果传入的参数是可变类型,则函数内部的操作会影响原本的值,如果传入的是不可变类型,则函数内的操作实际是开辟了一块新内存,并不会影响原本的值;
因为python中的变量并没有固定的数据类型,因此在使用函数的时候一定要注意传入参数的顺序;
python函数定义中可以使用默认参数,直接使用=给它赋默认值,这样的话在调用函数的时候可以不用传入这个参数;
文件操作
进行文件操作首先需要使用open函数打开文件,会返回一个file对象;
然后就可以使用一些函数来进行操作,一般常用的操作如下:
with open() as  f:
      for line in f:
            #然后进行操作
详细的讲解可以参照这篇文章;
异常
python中使用try except语句来处理异常;
还可以加上else子句,执行条件是try中的部分并没有异常发生;
也可以加上finally子句,在任何条件下都会执行;
类
类的定义和其他的语言的方式类似,如下所示:
class 类名:
      类的实体部分
实例化对象的方法是x=类名();
需要注意的是类中定义的方法必须有一个参数是self,并且是第一个参数,self表示类的实例;
如果想在类中使用私有变量或者定义私有函数的时候只需要在名称前面加两个下划线__即可;
定义类时的构造方法的函数名固定为__init__(self)
python中的类同样可以实现继承,具体方式入下:
class 子类(父类):
      类的实体部分
数据库操作
使用python进行数据库操作时一般都是采用提供的库,在这里我们使用的库是PyMySQL,这并不是原装的库需要自己下载;
一般的使用过程如下所示:
#导入模块
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","用户名","密码","要连接的数据库名" )
 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
sql='要执行的sql语句'
#执行
cursor.execute("SELECT VERSION()")
#如果执行的是查询操作的话,可以使用下面的方法获取查询结果:
result=cursor.fetchall()
for row in result:
      针对每行的操作,具体的字段可以使用索引值来求
#关闭数据库连接
db.close()
多线程
在python3中一般使用threading模块来进行多线程操作;
我们可以通过直接从threading.Thread继承创建一个新的子类,并实例化后调用start()方法启动新线程,即调用线程的run()方法,一般使用方法如下:
import threading
#定义线程子类
class Mythread(threading.Thread):
      def __init__(self):
            threading.Thread.__init__()
            初始化操作
      def run(self):
            具体的线程活动
#创建线程对象
thread1=Mythread()
#启动线程
thread1.start()
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号