python基础知识
-
注释
- 单行注释:# 这是单行注释
- (注释和#之间添加一个空格)
- 在代码后面增加注释。和代码之间有2个空格
- 多行注释:""“这是多行注释”""
- 单引号或双引号都可以
- 函数的注释:在定义下面用多行注释。在函数调用文职,使用快捷键ctrl+q可以查看函数的说明信息。注意:因为函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留两个空行
3.TODO注释
- 单行注释:# 这是单行注释
-
算数运算符
- 在python中*还可以用于字符串中
print('--'*50)
-
计算机中的三大件
- CPU :负责处理数据、计算
- 内存:临时存储数据(断电之后,数据会消失)
- 硬盘:永久存储数据
-
变量的基本使用
- 变量名在第一次出现的时候才是定义变量
- 变量名再次出现不是定义变量,而实直接使用之前定义过的变量
-
变量的类型
-
变量类型演练
-
数字型
- 整数:int
- long:长整数
- 布尔:bool
- 真:True 非0
- 假:False 0
- 浮点数:float
- 复数型(complex):主要用于科学计算:eg:平面场问题、波动问题、电感电容等问题
- 整数:int
-
非数字型
字符串(str)
-
常用操作
-
判断类型
方法 说明 string.isspace() 如果string中只包含空格,则返回True string.isalnum() 如果string至少有一个字符并且所有字符都是字母或数字则返回True string.isalpha() 如果string至少有一个字符并且所有字符都是字母则返回True string.isdecimal() 如果string只包含数字则返回True,全角数字 string.isdigit() 如果string只包含数字则返回True,全角数字、{1}、\u00b2 string.isnumeric() 如果string只包含数字则返回True,全角数字,汉字数字 string.istitle() 如果string是标题化的(每个单词的首字母大写)则返回True string.islower() 如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True string.isupper() 如果string包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True -
大小写转换
-
查找和替换
方法 说明 string.startwith(str) 检查字符串是否是以str开头 string.endwith(str) 检查字符串是否是以str结束 string.find(str,start=0,end=len(string)) 检测str是否包含在string中,如果start和end指定范围,则检查是否包含在指定范围内,,如果是返回开始的索引值,否则返回-1 string.rfind(str,start=0,end=len(string)) 类似于find()函数,不过是从右边开始查找 string.rindex(str,start=0,end=len(string)) 类似于index(),不过是从右边开始 string_replace(old_str,new_str,num=string.count(old)) 把string中的old_str替换成new_str,如果num指定,则替换不超过num次。注:不会修改原有字符串的内容 - 文本对齐
方法 说明 string.ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度width的新字符串 string.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度width的新字符串 string.center(width) 返回一个原字符串居中,并使用空格填充至长度width的新字符串 -
去除空白字符
方法 说明 string.partition(str) 把字符串string分成一个3元素的元组(str前面,str,str后面) -
拆分和连接
方法 说明 string.partition(str) 把字符串string分成一个3元素的元组(str前面,str,str后面) string,rpartition(str) 类似于partition()方法,不过是从右边开始查找 string.split(str=”“,num) 以str为分隔符拆分string,如果num有指定值,则仅分隔num+1个子字符串,str默认包含‘\r’,’\t’,’\n’和空格 string.splitlines() 按照行(‘\r’,’\n’,’\r\n’)分隔,返回一个包含各行作为元素的列表 string.join(seq) 以string作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串 -
字符串的切片
字符串[开始索引:结束索引:步长]
-
列表(list)
-
列表常用的操作
列表.
序号 分类 关键字/函数/方法 说明 1 增加 列表.insert(索引,数据) 在指定位置插入数据 列表.append(数据) 在末尾追加数据 列表.extend(列表2) 将列表2的数据追加到列表 2 修改 列表【索引】=数据 修改指定索引的数据 3 删除 del 列表【索引】 删除指定索引的数据。本质上是将变量从内存中删除 列表.remove(数据) 删除第一个出现的指定数据。 列表.pop 删除末尾数据 列表.pop(索引) 删除指定索引数据 列表.clear 清空列表 4 统计 len(列表) 列表长度 列表.count(数据) 数据在列表中 出现的次数 5 排序 列表.sort() 升序排序 列表.sort(reverse=True) 降序排序 列表.reverse() 逆序,反序 列表.index()
:取索引
-
循环遍历
iteration遍历:从头到尾依次从列表中获取数据
#for 循环内部使用的变量 in 列表 for name in name_list: 循环内部针对列表元素进行操作 print(name)
列表可以存储不同类型的数据
元组(tuple)
-
tuple(元组)与列表类似,不同之处在于元组的元素不能修改
- 元组表示多个元素组成的序列
- 元组在python开发中,有特定的应用场景
-
用于存储一串信息,数据之间使用
,
分隔 -
元组用
()
定义 -
元组的索引从0开始
-
定义一个空元组:tuple = ()
-
定义一个只有一个元素的元组,需要在元素后面添加一个逗号:
tuple=(元素,)
-
方法:count()和index()
-
应用场景
- 函数的参数和返回值,一个函数可以接收任意多个参数,或者一次返回多个数据
- 格式字符串,格式化字符串后面()本质上就是一个元组
- 让列表不可以被修改,以保护数据安全
info = ("zhangsan",18) print("%s 的年龄是 %d" %info)
- 元组和列表之间的转换
字典
def:字典是无序的对象集合(使用Print函数输出字典时,通常输出的顺序和定义的顺序是不一致的)。用
{}
定义-
字典使用键值对存储数据,键值对之间使用
,
分隔 -
键
key
是索引 -
值
value
是数据 -
键和值之间使用
:
分隔 -
键必须是唯一的
-
值可以取任何数据类型,但键只能使用字符串、数字或元组
-
常用操作
- 合并字典:字典1.update(字典2)
-
遍历字典
#for循环内部使用的‘key的遍历’in字典 for k in xiaoming: print("%s:%s" %(k,xiaoming[k]))
-
应用
- 用列表存储多个字典
-
总结公共方法
-
python 内置函数
函数 描述 备注 len(item) 计算容器中元素个数 del(item) 删除变量 del有两种方式(del也可以作为关键字) max(item) 返回容器中元素最大值 如果是字典,只针对key比较 min(item) 返回容器中元素最小值 如果是字典,只针对Key比较 cmp(item1,item2) 比较两个值,-1小于/0想等/1大于 python3.x取消了cmp函数 注意:字符串比较符合以下规则:”0“<”A”<”a”
-
切片
描述 python表达式 结果 支持的数据类型 切片 “0123456789”[::-2] “97531” 字符串、列表、元组 -
运算符
运算符 python表达式 结果 描述 支持的数据类型 + [1,2]+[3,4] [1,2,3,4] 合并 字符串、列表、元组 * [’hi’]*4 [’hi’,’hi’,’hi’,’hi] 重复 字符串、列表、元组 in 3 in (1,2,3) True 元素是否存在 字符串、列表、元组、字典 not in 4 not in (1,2,3) True 元素是否不存在 字符串、列表、元组、字典 > > = == < = (1,2,3)<(2,2,3) True 元素比较 字符串、列表、元组
注:在字典中用 in时,判断的是Key;In和not in 被称为 成员运算符
-
-
-
-
变量的类型
-
type:可以查看一个变量的类型。
name = 'xiaoming' type(name) =>str
-
-
不同类型变量之间的计算
- 数字型变量之间可以直接计算
- 如果变量是boo型,在计算时:
- True对应的数字是1
- False对应的数字是0
- 如果变量是boo型,在计算时:
- 字符串之间使用+拼接字符串
- 字符串变量可以和整数使用*重复拼接相同的字符串
- 数字型变量和字符串之间不能进行运算
- 数字型变量之间可以直接计算
-
变量的输入
input函数
-
关于函数
一个提前准备好的功能,可以直接使用,而不用关心内部的细节
-
input函数实现输入
- 默认输入的都是字符串类型
-
类型转换函数
函数 说明 int(x) 将x转换为一个整数 float(x) 将x转换为一个浮点数
-
-
格式化输出
格式化字符 含义 %s 字符串 %d 有符号十进制整数,%06d表示输出的整数显示位数,不足的地方使用0补全 %f 浮点数,%.2f表示小数点后只显示两位 %% 输出% %X 输出十六进制 print("格式化%s字符串"%变量1) print("格式化字符串"%(变量1,变量2...)) #定义一个小数scale,输出数据比列是10.00% scale = 0.25s print("数据的比例是%.2f%%"%(scale*100))
print输出时默认是换行结束。如果不想换行可以使用
print('内容',end='')
字符串中的转义字符
- \t:在控制台输出一个制表符,协助输出文本时 垂直方向 保持对齐
- \n:换行符
- \:反斜杠符号
- \’:单引号
- \’’:双引号
- \r:回车
-
变量的命名
-
标识符和关键字
-
标识符:就是变量名、函数名
- 标识符可以由字母、下划线和数字组成
- 不能以数字开头
- 不能与关键字重名
-
关键字
import keyword print(keyword.kwlists)
-
-
变量的命名规则
python中的标识符是区分大小写的
如果变量名需要两个或多个单词组成时,可以按照以下方式命名:
- 每个单词都是用小写字母
- 单词与单词之间使用下划线链接
- eg:first_name、last_name、qq_number、qq_password
-
-
判断语句
if 条件1: 条件1满足时,执行的代码 elif 条件2: 条件2满足时,执行的代码 elif 条件3: 条件3满足时,执行的代码 else: 以上条件都不满足时执行的代码
-
完整的for循环语法
for 变量 in 集合: 循环体代码 else: 没有通过break退出循环,循环结束后,会执行的代码
当判断语句内不知道填什么的时候,可以用pass来占位,保证程序结构的正确性
-
运算符
运算符 含义 == 判断是否相等,如果成立返回True,否则返回False。下同 ! = 不等于 > 大于 < 小于 > = 大于或等于 < = 小于或等于 -
逻辑运算
与and/或or/非not
-
and:只要有一个条件不成立,结果就不成立
条件1 and 条件2
-
or:只要有一个成立,结果就成立
-
not:取反
-
-
赋值运算符
运算符 含义 = c=a+b += c+=a等价于c=a+c相加,下同 -= *= /= //= %= **= -
随机数处理
import random random.randint(a,b) #返回[a,b]之间的整数,包含a和b;a>=b才正确,当a==b,表示结果一直时a
-
循环
-
程序的三大流程
- 顺序 — 从上到下,顺序执行代码
- 分支 — 根据条件判断,决定执行代码的分支
- 循环 — 让特定代码重复执行
-
while循环基本使用
**初始条件设置 -- 通常时重复执行的 计数器 while 条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情1 条件满足时,做的事情2 ... 处理条件(计数器 + 1)**
死循环:忘记修改循环条件
-
break和continue(只针对当前所在循环有效)
- break:某一条件满足时,退出循环,不再执行后续重复的代码
- continue:某一条件满足时,不执行后续重复的代码
-
while循环嵌套
-
-
函数
-
函数的定义
def 函数名(): 函数代码 ...
-
函数的调用
使用函数名就可以调用:函数名()
-
函数的参数
-
参数的作用
-
形参和实参
-
不可变和可变参数
- 在函数内部,针对参数使用赋值语句,不会影响调用函数时传递的实参变量
- 如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同样会影响到外部的数据
- 在python中,列表变量调用+=本是上是在执行变量的extend方法,不会修改变量的引用。在函数执行结束后,外部数据同样会发生变化
-
多值参数
有时可能需要 一个函数 能够处理的参数 个数是不确定的,这个时候,就可以使用多值参数
-
args—存放元组** 参数,前面有一个*
-
kwargs —存放字典**,前面有两个*
拆包:直接把元组和字典传给函数,需要在元组前加一个*,在函数前加2个*
-
-
-
函数的返回值
return 后的代码不能执行
-
函数的嵌套使用
-
PYC文件
C是compiled编译过的意思。PYC文件时由python解释器将模块的源码转换为字节码。python这样保存字节码是作为一种启动速度的优化
-
关键字、函数和方法
-
关键字:关键字后面不需要使用括号
-
函数封装了独立功能,可以直接调用:
函数(参数)
-
方法和函数类似,同样是封装了独立的功能。方法需要通过对象来调用,表示针对这个对象要做的操作
对象.方法名(参数)
-
-
可以在一个python文件中定义变量或函数
-
然后在另一个文件中使用
import
导入这个模块 -
导入之后,就可以使用
模块名.变量/模块名.函数
的方式,使用这个模块中定义的变量或者函数。注:模块名也是标识符,不能以数字开头 -
递归函数
def:函数自己调用自己,只是每次的参数不同
- 一定要有个出口,不然会陷入死循环
-
-
可变类型和不可变类型
- 不可变类型:内存中的数据不允许被修改:int、float、complex、
- 字符串
- 元组
- 可变类型,内存中的数据可以被修改:
- 列表list
- 字典dict
注意:字典的key只能使用不可变类型的数据
- 不可变类型:内存中的数据不允许被修改:int、float、complex、
-
在函数内部修改全局变量的值
如果在函数中需要修改全局变量,需要使用global进行声明
-
不使用其他变量,交换两个数字:
a = 100
b = 8
a = a + b
b = a - b
a = a - b
python 的专有解法
a,b = (b,a)