一些python的学习笔记。
一、基本数据类型
nunber、string、list、tuple、dict、set
1、number类型
主要包含:int、float、bool
bool类型在python中归纳为int的一个子类,值有两个:True / False
2、string类型
主要包含:字母、数字、下划线、汉字等
一般使用单引号或双引号来包裹字符或字符串。
可用三个单引号包裹多行字符串:
'''
ABCD
abcd
'''
3、list类型
列表用[]来表示,[]中可放字符、字符串、数字或是嵌套列表
4、tuple类型
元组使用()来表示,()中可放字符、字符串、数字或是嵌套元组。
元组是特殊的列表,其元素不可更改
5、dict类型
一般情况下,key使用字符串,需用引号括起来
6、set类型
集合使用{}表示,{}里直接放值
如:{123,abc,编程}
二、input输入函数
1、参数是提示信息
2、输入的内容使用变量接收。如:password = input("请输入密码:")
3、input函数执行完毕后返回的是字符串类型
4、input函数执行时,输入结束后按下回车键input()才会结束,进而执行下一段代码
三、python的数据类型转换
转换形式:int --> string string --> int bool --> int
在python中,字符串和整型不能直接进行数学运算
1、int(x,base=10) 将其它类型转换为整型
参数: 1、x,要转换的数据变量 2、base = 10,以十进制(默认)转换为整型
不是所有类型都可通过int()转换为整型,如“python”转换时会报错。一般是数字字符串转换为整型
2、str(x) 将其它类型转换为字符串类型
参数: x,要转换的数据变量
3、float(x) 将其它类型转换为浮点型
参数: x,要转换的数据变量
不是所有类型都可通过int()转换为整型,如“python”转换时会报错。一般是数字字符串转换为浮点型
4、bool(x) 将其它类型转换为布尔型
python中bool类型有两个值:True 和 False(注意首字母大写)
数字0、空字符串、空列表、空元组、空字典、空集合等为False,其余为True
隐式类型转换,不通过bool()进行转换,一般用于条件表达式:如:“ 3>4 ” 为False,“1+1=2”为True
5、list(x) 将其它类型转换为列表
如:
tup = (1,2,3) //此时tup类型为tuple
list(tup) //将tup类型转换为list
不是所有类型都可通过list()转换为列表,一般是字符串或元组转换为列表
6、tuple(x) 将其它类型转换为元组
一般情况下,是字符串和列表转换为元组
注: type(x)可返回变量x的类型
三、python的算术运算符
'+'(加法) '-'(减法) '*'(乘法) '/'(除法) '%'(取余或求模) '**'(幂) '//'(取整)
算术运算符在字符串中的应用
“hello" + "world" = "helloworld" (拼接字符串)
注意:python中,数字和字符串不能进行加法运算,只能是字符串和字符串拼接
四、python的赋值运算符
1、简单的赋值运算符: "=",表示把右边的值赋给左边的变量,和数学中的等好不同
2、复合运算符:
'+=' '-=' '*=' '/=' '%=' '**=' '//='
注意:pyhon中不支持‘++’ ‘--’操作
五、python的关系运算符
'>' '<' '>=' '<=' '==' '!='
除数字外,字符串也可使用关系运算符进行操作,字符串比较时通过ASCLL码值进行比较
六、python的成员运算符
'in'(在指定序列中找到指定值则返回True,否则返回False)
'not in'(指定值不在指定序列中返回True,否则返回False)
七、python的逻辑运算符
'and'(且运算) 'or'(或运算) 'not'(非运算)
A and B ==> A和B同时为真时返回True,只要有一个为假,则返回False
A or B ==> A和B有一个为真即返回True,同时为假才返回False
not A ==> 对原来的结果取反
python的逻辑运算符可以操作任何类型的表达式,不论表达式是否为bool类型。
同时,其运算的结果也不一定为bool类型。
短路运算
python中的‘and’和‘or’不一定会计算右边表达式的值,有时只需计算左边表达式即可得出结果
‘and'和’or‘会将其中一个表达式的值作为最终结果,而不是True或False
八、python的流程控制
1、顺序结构:
程序从头到尾执行每一条语句。不重复、不跳过任何一行代码。
2、分支结构(选择结构):
让程序有选择地执行某段代码。
单分支语句:
if 条件:
代码块 //这里强制缩进,是python的语法特点,不需要花括号。
执行流程:若条件成立,则执行缩进的代码块,否则跳过。
双分支语句:
if 条件:
代码块1
else:
代码块2
执行流程:若条件成立,则执行代码块1,否则执行代码块2。
三元运算符:
三元运算符是对if..else..语句的简化
三元运算符的写法:
max = a if a > b else b
运算流程:若a>b成立,则把a赋给max,否则把b赋给max
多分支语句:
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
else:
代码块4
多分支语句中,只会执行其中满足条件的一项
if语句的嵌套
if 条件1:
if 条件1.1:
代码块1
elif 条件1.2:
代码块2:
else:
代码块3
else:
if 条件2.1:
代码块4
else:
代码块5
pass关键字,在python中没有任何意义,只用来实现单纯的占位,保证语句完整
3、循环结构
while循环
语法:
初始条件
while 判断条件:
代码块
更新条件
break和continue关键字:
break指跳出循环不再执行。
continue指跳出此次循环,继续执行下一次循环。
for循环
python中的for循环与其它语言不同,指的是for...in...循环。
语法:
for 元素 in 可迭代对象: ---> for i in range(m,n)
代码块 代码块
注意:
1、python中的可迭代对象一般指字符串、列表、元组、集合等
2、python中使用for..in..循环时,一般需配合一个内置类range。
range可生成一个指定区间的序列。语法:range(m,n) //生成区间为[m,n)的序列(左闭右开)
循环的嵌套:实际应用中,循环的嵌套层级不会超过三层
九、python的字符串
1、字符串的声明:
使用一对单引号/双引号/三引号进行声明
例如:
str1 = 'hello world'
str2 = "hello python"
str3 = '''hello code'''
2、字符串的嵌套规则:
外层是单引号,内层只能是双引号。外层是双引号,内层只能是单引号。
3、字符串的转义字符:
\ (让符号失去原有的意义)
例如:
如要单独输出双引号,则应使用\""代替
\'' -->表示转义单引号
\"" -->表示转义双引号
\n -->表示换行
\t -->表示制表符(相当于tab键的作用)
4、特殊字符
"r": 字符串前加r表示原样输出
"f": 字符串前加f表示支持花括号语法,即在字符串中嵌入变量
例如:
name = "张三"
age = 18
print(f"我的名字是{name},年龄是{age}")
==>我的名字是张三,年龄是18
5、字符串的下标和切片
下标(索引):表示第几个元素,默认从0开始。可通过下标获取指定位置的元素
例如:
str = "hello world"
print(str[4])
==>o
切片:从字符串中复制指定的一段内容,生成一个西的字符串
切片的语法:
str[start:end:step]
str表示要切片的字符串
start表示开始下标(包含开始下标的数据)
end表示结束下标(不包含结束下标的数据)
step表示步长,默认为1
6、字符串的常见功能
1> 统计字符串长度 len()
例如: len(str)
2> 在整个字符串中,统计子串出现的次数 count()
例如: str.count(str1) --> 统计在字符串str中,子串str1出现的次数
3> 字符串的大小写转换: upper() lower() swapcase() title()
例如:
str1.upper() -->将str1中的小写字母转换为大写字母
str2.lower() -->将str1中的大写字母转换为小写字母
str3.swapcase() -->将字符串中的大写字母转换为小写字母,小写字母转换为大写字母
str4.title() -->将单词的首字母转换为大写
4> 查找字符串出现的位置: find() index()
find() 查找子串在字符串中第一次出现的位置。若找到,返回下标,否则返回-1。
例如: str.find("str1") --> 寻找str1在str中第一次出现的位置
在指定范围内查找: str.find("x",start.end)
rfind() 查找子串在字符串中最后一次出现的位置。若找到,返回下标,否则返回-1。
index() 和find()功能类似,区别是若未找到即报错。
rindex() 和rfind()功能类似,区别是若未找到即报错。
5> 字符串的提取: strip() lstrip() rstrip()
strip() 去除字符串两边的指定字符,默认为空格
例如: str.strip("x") -->去除str两边的x
lstrip() 只去除字符串左边的指定字符
rstrip() 只去除字符串右边的指定字符
6> 字符串的分割和合并: split() join()
split() 以指定字符对字符串进行风格,默认为空格
例如: str.split()
join() 合并字符串
例如: str.join(tup) -->用str对tup进行拼接
7> 字符串的替换和判断:
replace() isupper() islower() isdigit() isTitle() isalpha()
replace() 将字符串中的指定内容进行替换
参数1:要替换的内容 参数2:替换后的内容 参数3:控制替换的次数
例如: str.replace("A","B",1) -->将字符串str中的A替换成B,次数为1
isupper() 检测字符串中的字母是否全为大写,返回值为布尔型(True/False)
用法: str.isupper()
islower() 检测字符串中的字母是否全为小写,返回值为布尔型(True/False)
用法: str.islower()
isdigit() 检测字符串是否只由数字组成,返回值为布尔型(True/False)
用法: str.isdigit()
isTitle() 检测字符串中单词的首字母是否全为大写。
isalpha() 检测字符串中的字符是否全为字母、汉字或数字组成。
7、字符串的编码、解码及ascii码的转换
//常用编码格式: GBK UTF-8
1> encode() 编码
str.encode('utf-8') --> 以UTF-8格式对字符串str进行编码
2> decode() 解码
str.decode('gbk') --> 以GBK格式对字符串str进行解码
3> chr() 将ascii码值转换为对应的字符
chr(97) --> ascii码'97'对应的字符为a
4> ord() 将字符转换为对应的ascii码值
ord('a') --> 97
8、字符串的格式化输出
通过%占位符的方式进行输出
% --> 占位符
%d --> 表示整数
%f --> 表示浮点数
%.2f --> 表示按两位小数输出(小数位数可控)
%c --> 表示单个字符
%s --> 表示字符串
例如:
name = '张三'
print("my name is:%s" %name) //这里与C语言的区别在对变量的引用,需用%加持。
注:这里也可在字符串前加f,使其支持花括号语法进行占位。
十、列表(相当于C中的数组)
列表可以一次性保存多个数据,每一个数据叫做一个元素。列表使用[]来表示。
列表的索引可正可负,正数表示从左往右,负数表示从右往左。
定义列表:
list1 = ['A','1','你好']
列表中的元素可以是不同的数据类型,也可以是一个新的列表,即列表的嵌套。
获取/修改列表的元素是通过下标进行的,下标从0开始。
遍历列表:
方式一
for i in list1:
......
方式二(可同时遍历索引和值)
for index,value in enumerate(list1):
......
列表的常见操作:
1、合并列表(通过'+'实现)
list1 = ['A','B','C']
list2 = ['a','b','c']
list3 = list1 + list2
2、判断指定元素是否在列表中
(通过成员运算符'in'或'not in'进行检查,返回值为True/False)
if 'str' in list1:
......
3、列表的切片
list1[start:end:step]
4、列表元素的添加
方法一: append() 向列表尾部追加元素
list1.append("x") //向列表list1尾部追加元素x
注意:
1、append()追加单个元素时,直接把要追加的内容放到函数内即可。
2、append()一次性追加多个元素,需要以列表的形式追加,但原来的列表会变成二维列表。
方法二: extend() 可以在列表尾部一次性追加多个元素且不改变原列表的维度,但仍需以列表的形式追加。
list1.extend(['x','y'])
用extend()追加一个元素,会对元素做一次拆分后追加
方法三: insert() 向列表的指定位置添加指定元素
list1.insert(参数1,"参数2") //参数一:追加的位置(某个下标前) 参数二:追加的内容
若要一次性追加多个元素,需要以列表的形式追加,但会改变原列表的维度。
5、列表元素的删除
方法一: pop() 删除指定位置的元素
list1.pop(参数) //参数为要删除元素的下标。不填参数时默认删除最后一个元素
方法二: remove() 删除指定元素
list1.remove(参数) //参数为要删除的元素
方法三: clear() 清空列表
list1.clear() //清空整个列表
6、列表元素的排序、反转和获取
列表的排序
方法一: sort()
list1.sort() //对原列表中的元素进行排序,默认为升序,不会生成新列表
list1.sort(reverse=True) //降序排列,传入参数reverse=True
方法二: sorted()
list2 = sorted(list1) //对原列表(list1)进行排序,默认为升序,会生成一个新列表,传递给list2。
list2 = sorted(list1,reverse=True) //降序排列,传入参数reverse=True
list2 = sorted(list1,key=len) //添加key=len(排序依据),按照元素长度进行排序
列表的翻转
reverse() 翻转列表元素
list1.reverse()
获取列表长度(获取列表的元素个数)
len()
len(list)
获取列表中元素的最大值/最小值
max() / min()
max(list) / min(list)
获取指定元素的索引
index()
list.index(x) //获取元素x在列表list中的下标
7、列表的嵌套
列表中的元素还是列表(相当于二维数组),称为二维列表
访问二维列表的方式与C中访问而为数组元素的方式相同,即:
list[m][n]
8、列表生成式
1> list1 = list(range(start,end,step)) //生成指定区间内整数组成的列表
2> list2 = [i ** 2 for i in range(start,end,step)] //生成指定区间内整数的平方组成的列表
3> list3 = [i for i in range(start,end,step) if i %2 == 0] //生成指定区间内的偶数组成的列表
十一、字典
字典相当于C语言中的结构体
字典用花括号标识
字典由键(key)和值(value)组成,健和值一一对应,由":"连接。不同键值对间用","隔开
dict1 = {"name":"张三", "age":18, "school":"清华大学"}
访问字典中的元素:
1、通过索引的方式访问 --> dict1['key']
2、通过get() --> dict1.get('key')
修改字典中的元素:
dict1['key'] = '更改为的值'
向字典中添加元素:
dict1['新增加的key'] = '新增加的值'
删除字典中的元素:
1、pop() --> dict1.pop('key') //key为要删除元素的键
2、popitem() --> dict1.popitem() //删除字典的最后一对key:value
3、clear() --> dict1.clear() //清空字典
字典的获取:
len() 获取字典的长度
len(dict1) --> 统计键值对的个数
keys() 获取字典中所有的key
dict1.keys()
values() 获取字典中所有的value
dict1.value()
items() 获取字典中所有的key和value
dict1.items()
遍历字典:
方式一: 直接遍历字典
for i in dict1: //遍历字典中所有的key
......
方式二: enumrate()
for k,v in enumrate(dict1): //遍历字典中所有的key及其下标
......
方式三: items()
for k,v in dict1.items(): //遍历字典中所有的key和value
......
方式四: values()
for v in dict1.values(): //遍历字典中所有的value
......
方式五: keys()
for k in dict1.keys(): //遍历字典中所有的key
......
合并字典
update方法
dict1.update(dict2) //把字典dict2追加到字典dict1后部
十二、集合
集合(set)是python中的一种数据类型,和数学中的集合类似
集合的特点:
1、无序 2、无重复
创建集合:
set1 = {value1, value2,....} //集合和字典的区别就是集合只有值(value),没有键(key)
注意:集合不能通过下标访问或修改(无序性)
获取集合的长度: len()
len(set1) //获取集合中的元素个数
向集合中添加元素: add() update()
set1.add(value) //向集合set1中添加值value,add()方法一次只能添加一个元素
set1.update(list) //向集合set1中添加多个值,以列表list的形式添加
删除集合中的元素: pop() remove() discard() clear()
set1.pop() //随机删除集合中的一个元素
set1.remove(value) //删除集合中值为value的元素,若删除不存在的元素会报错
set1.discard(value) //删除集合中值为value的元素,若删除不存在的元素不会报错
set1.clear() //清空集合
遍历集合:
for i in set1:
......
十三、元组
元组和列表类似,本质上是一种有序的集合。
元组和列表有区别:
1、定义元组使用(),定义列表使用[]
2、元组中的元素不可修改,列表中的元素可修改
创建元组:
tup = (value1, value2, ......) //元组中的元素可以为任意类型
若创建元组时元组中只有一个元素,需要在该元素的后面加上一个逗号,否则不会被识别为元组
访问元组: (和列表类似)
通过下标访问 tup[x]
合并元组:
通过‘+’来实现
tup = tup1 + tup2
判断元素是否在元组中:
使用成员运算符‘in / not in‘
元组的切片:
tup[start:end:step]
获取元组的长度:
len(tup1)
获取元组中元素的最大值/最小值:
max(tup)/min(tup)
其它数据类型转换为元组
tuple()
tup = tuple(list1) //将列表list1转换为元组后传递给tup
遍历元组:(与遍历列表类似)
直接遍历:
for v in tup1:
......
enumrate():
for i,v in enumerate(tup1): 同时遍历元组的元素及其下标
......
十四、赋值、浅拷贝、深拷贝
赋值: 本质上就是对象的引用
list1 = ['a', 'b', 'c']
list2 = list1
如此赋值,实际上是让list2指向list1中元素在内存的地址,即list1和list2共同指向内存中的同一个地方,所以当修改list1中的值时,list2的值也会被修改
浅拷贝:
为了解决上述问题,可以使用浅拷贝(copy)的方法:
使用浅拷贝,需导入copy模块: import copy
import copy
list1 = [value1, value2, ......]
list2 = list1.copy() //如此操作后,开辟了一段新的内存空间,list1和list2的值就互不影响
浅拷贝可以解决一维列表的复制问题
对于二维列表,使用浅拷贝后,外部列表分别位于内存的不同空间,但内部列表的元素仍位于同一内存空间
深拷贝:
使用深拷贝(deepcopy)可以解决二维(多维)列表修改元素时不能独立处理的问题。同样需要导入copy模块
import copy
list1 = [value1, value2, ......]
list2 = copy.deepcopy(list1) //注意深拷贝的语法,与浅拷贝不同
十五、函数
函数要解决的问题: 1、重复的代码 2、程序的维护
===> 函数就是把在项目中经常使用的功能代码提取出来并封装,方便后续不同地方的调用。
函数的基本语法:
def 函数名(参数1, 参数2, ......):
函数体
使用def关键字来声明函数
函数由两部分组成: 声明部分和实现部分
函数定义时的参数,叫做形参,可写可不写,取决于函数功能
函数体要缩进
函数在使用前必须调用,调用格式: 函数名()
函数的调用必须在函数定义之后
函数调用时的注意事项:
在同一个文件中,若出现定义的函数名相同的情况,后面定义的函数会覆盖前面定义的函数
若将函数名复制给一个变量,就可以通过这个变量来调用函数
函数必须先定义后使用
函数的参数:
定义函数时传递的参数叫作形参
调用函数时传递的参数叫作实参,实参会取代形参的位置
若在定义函数时有形参,则在调用函数时必须传入实参,且实参和形参的数量必须相同
函数中参数的类型:
a.必须参数 --> 在调用函数时,必须以正确的顺序传递参数
b.关键字参数 --> 使用关键字参数调用函数,允许实参和形参的顺序不一致
def f(x,y):
......
f(y=value1, x=value2)
c.默认参数 --> 定义函数时若定义了默认参数,在调用时可以不传递实参,使用默认参数,而传递实参后,会覆盖默认参数。默认参数应置于参数列表末尾。
def f(x,y=5):
......
f(6) #函数f在定义时有两个形参,但有一个参数被定义为了默认函数,所以在调用该函数时可以只传递一个实参
d.不定长参数:
*args 用来接收多个未知参数,得到的是一个元组。
def f(*args): //如此定义后,调用函数时可以同时传递任意多个参数。不定长参数应置于参数列表末端。
......
**kwargs 用来接收多个关键字参数,得到的是一个字典。在传递参数时,必须是以key=value的形式。
def f(**kwargs):
......
f(key1=value1, key2=value2, ......)
函数的返回值:
函数按照有无返回值分为两类: a.有返回值 b.无返回值
函数的返回值需要使用‘return’关键字进行返回,函数在哪里调用,函数的返回值就返回到哪里
函数的返回值使用,可以使用变量接收,也可以直接打印输出
def f():
......
return x
函数中的代码执行到return关键字之后就停止,return关键字之后的语句不会执行
函数中没有return关键字或没有数据返回,则默认返回 NULL
return 可以一次性返回多个数据,数据之间使用逗号隔开,返回的结果是一个元组
函数的嵌套:
函数之间可以相互嵌套,即自定义函数内部可以调用其它函数
匿名函数:
函数按照有无名字,分为两类: 有名函数和匿名函数
匿名函数是一个使用lambda定义的表达式,比普通函数简单。
lambda表达式中包含参数、函数体、返回值
num1 = lambda num:num ** 2 //参数为num.返回值为num**2
回调函数:?
把一个函数f()作为一个参数传递到另一个函数中,那么f()称为回调函数
def f():
......
def g(func):
func()
g(f) //把函数f作为参数传入函数g,实现函数g对函数f的调用
闭包函数:?
若一个函数内部嵌套了另一个函数,则外部函数称作外函数,内部的函数称作内函数
闭包: 若在一个外部函数中定义了一个内部函数,且外部函数的返回值是这个内部函数,则这个内部函数成为闭包
最简单的闭包:
def outer():
def inner()
......
return inner //注意: 这里返回的是函数体,不是函数的调用
fn = outer() //这里使变量fn指向inner函数
fn() //这里就相当于调用的inner函数
闭包函数的特点: 内部函数可以使用外部函数的变量,闭包函数主要应用于装饰器函数的实现
函数的作用域
分支语句和循环语句不存在作用域的问题,它们内部定义的变量可以在外部直接访问
函数内部定义的变量,在函数外部不能直接访问
函数内部可以直接访问函数外部的变量
若要在函数内部修改函数外部的变量,需要使用global关键字将函数内部的变量变为全局变量
十六、filter和map方法
filter在python3中是一个内置类,但仍以函数的方式调用
filter() 内置类有两个参数,第一个参数是一个函数,第二个参数是一个可迭代对象
filter()的返回值是一个filter类型的对象
map和filter的功能类似
map() 有两个参数,第一个参数是一个函数,第二个参数是一个可迭代对象
map()的返回值是一个map类型的对象
filter()适用于对可迭代对象中元素的筛选,map()适用于对可迭代对象中元素的处理
十七、装饰器
装饰器可以在程序运行过程中,动态地添加功能
装饰器的常规写法:
def f1():
......
#这里的outer()就是一个装饰器,用于修改某个函数的功能
def outer(fn): #fn表示形参,实际调用装饰器时,传入的实参是原函数的名字
def inner():
fn() #调用原函数
补充的功能语句 #给原函数添加功能
return inner #闭包函数的写法,返回的是函数体,不是函数的调用,不加括号
f1 = outer(f1)
f1()
装饰器的简化写法:
@ + 装饰器名称
def outer(fn): #fn表示形参,实际调用装饰器时,传入的实参是原函数的名字
def inner():
fn() #调用原函数
补充的功能语句 #给原函数添加功能
return inner #闭包函数的写法,返回的是函数体,不是函数的调用,不加括号
@outer #等价于f1 = outer(f1),这是简化写法,表示给函数f1添加一个装饰器
def f1(): #使用简化写法时,原函数定义必须在装饰器函数下面,否则报错
......
f1() #经装饰器修饰、添加功能后,再次调用原函数
装饰器的其它用法:
1、一个装饰器函数修饰多个函数
def outer(fn):
def inner(*args): #这里使用不定长参数,使得传入的原函数带有多少个参数都可以
fn(*args)
补充的功能语句
return inner
@outer #每次修饰前都调用一次装饰器函数即可
def f1(parameter1,parameter2)
......
@outer
def f2(parameter1,parameter2,parameter3)
......
f1(parameter1,parameter2)
f2(parameter1,parameter2,parameter3)
2、一个原函数有多个装饰器函数修饰
def outer1(fn): #定义第一个装饰器
def inner1():
fn()
补充的功能语句
return inner
def outer2(fn): #定义第二个装饰器
def inner2():
fn()
补充的功能语句
return inner2
@outer1 #在定义原函数前,调用要使用的装饰器
@outer2 #修饰的顺序是:从离原函数近的装饰器开始
def f(): #不论有多少个装饰器,原函数只执行一次
......
十八、python中的模块
1、模块的介绍及引用
python模块的简单介绍:
python中的模块可理解为具有不同功能的.py文件,但不是所有.py文件都能被当作模块导入使用。
能作为模块导入使用的.py文件必须遵循命名规则
python提供了很多内置模块可直接使用
常见的内置模块:
os、sys、re、math、random、datetime、time、calendar、hashlib、hmac等
调用模块的方式:
第一种:直接使用import关键字导入模块
import 模块名称
导入某个模块后,可以使用该模块下的方法
第二种:
from 模块名 import 该模块下的方法名
这种方法可以直接导入指定的方法,调用此方法时可直接使用,不用以模块.方法的方式使用
第三种:
from 模块名 import * #此处的星号表示该模块下的所有方法和变量名
第四种:
import 模块名 as 别名 #as表示给导入的模块起一个新的名称,调用时可以直接使用别名
第五种:
from 模块名 import 方法名 as 别名 #as表示给导入的方法起一个新的名称,调用时可以直接使用别名
2、math模块的使用
math模块保存了数学运算的相关方法,主要用于数学运算的操作
使用前需要导入:
import math
math模块的常用方法:
math.fabs(x) #取绝对值
math.ceil(x) #向上取整
math.floor(x) #向下取整
math.pi #圆周率的值
math.pow(x,y) #计算x的y次方
math.factorial(x) #计算x的阶乘
......
3、os模块的使用
os模块主要用于获取系统的功能,操作文件或文件夹
使用前需要导入:
import os
os模块的常用方法:
os.curdir #获取当前目录
os.getcwd() #获取当前路径
os.mkdir("路径+文件夹名称") #创建文件夹,只能创建不存在的文件夹,不能创建已存在的文件夹
os.rmdir("路径+文件夹名称") #删除文件夹,只能删除空文件夹
os.rename("原来的名字","新名字") #重命名
os.remove("路径+文件名") #删除文件
os.path.join("路径1","路径2") #拼接路径
os.path.getsize("路径+文件名") #获取文件大小
os.path.isfile("路径+文件名") #判断是否为文件,返回值为True/False
os.path.isdir("路径+文件名") #判断是否为文件夹,返回值为True/False
os.path.exists("路径+文件名") #判断文件/文件夹是否存在,返回值为True/False