内容正文:
专题九 常用内置函数
[考纲要求]
1.掌握print()函数的应用
2.掌握divmod()函数的应用
3.了解bin()、oct()、hex()函数的使用
4.了解round()函数的使用
5.了解ord()、chr()的使用
6.掌握abs()函数的使用
7.了解strip()、enumerate()函数的使用
8.了解string模块
9.熟记datetime模块
10.掌握math模块的使用
[课时安排]
2课时
[知识梳理]
print()函数
print(输出项1,输出项2,输出项3,...,file=文件对象,sep=' ',end='
')
参数说明:
file
指定一个文件对象,将前面的输出项写入指定文件
sep
指定一个分隔符来分隔前面的输出项,默认空格分隔
end
制定一个结束符,输出完所有输出项之后以指定字符结束,默认
结束
>>> print("192","168","06","19")
192 168 06 19
>>> print("192","168","06","19",sep='*') # 指定一个字符*来分隔
192*168*06*19
>>> print("192","168","06","19");print("hello")
192 168 06 19
hello
>>> print("192","168","06","19",end="&");print("hello") # 输出之后以&来结束,不换行
192 168 06 19&hello
abs()函数
1.获取整型、浮点型数据的绝对值
>>> abs(-1)
1
>>> abs(-3.14)
3.14
2.获取复数的模
>>> abs(3+4j)
5.0
>>> abs(1+2j)
2.23606797749979
注意:abs函数获取复数的模是浮点型的数据
divmod()函数
divmod(x,y)函数以元组类型返回x,y的商和余数等价于(x//y,x%y)
>>> divmod(5,2)
(2, 1)
>>> divmod(7,-2)
(-4, -1)
注:divmod()函数主要用于进制转换,后面会有应用
ord()函数
ord()函数将字符或中文转为对应的ASCII或Unicode码
>>> ord('a')
97
>>> ord('0')
48
>>> ord(' ')
32
>>> ord('A')
65
上面的中文转为Unicode码目前没考过,主要记住常见的字符对应的ASCII码
字符
ASCII码
空格
32
0
48
A
65
a
97
chr()函数
chr()函数将ASCII或Unicode码转为对应的字符或中文
>>> chr(48)
'0'
>>> chr(97)
'a'
>>> chr(65)
'A'
bin()函数
十进制转二进制
>>> bin(10)
'0b1010'
>>> bin(31)
'0b11111'
如果不需要前缀,可以使用切片
>>> bin(31)[2:]
'11111'
如果需要前缀是大写字母
>>> bin(31).upper()
'0B11111'
oct()函数
十进制转八进制
>>> oct(64)
'0o100'
>>> oct(100)
'0o144'
hex()函数
十进制转十六进制
>>> hex(16)
'0x10'
>>> hex(15)
'0xf'
int()函数
1.int(num) 将num转为整型
>>> int('3')
3
>>> int(3.5)
3
>>> int('03')
3
2.int(num,n) 将n进制的num转为十进制,更加详细的使用方法参数专题四
>>> int("0b10101",2)
21
>>> int("10101",2)
21
>>> int("12",8)
10
>>> int("12",16)
18
round()函数
1.当只有一个参数时,round(m.n)函数的n小于5时,舍去小数部分。当n等于5时,舍去小数部分需要保证前面的整数部分为偶数(五留双)。当n大于5时,舍去小数部分,整数部分加1,总结:四舍六入 五留双
来看下面的示例:
>>> round(3.4) # 4小于5,因此直接舍去
3
>>> round(3.5) # 进一位为4才是偶数
4
>>> round(6.5) # 舍去小数部分,正好是偶数
6
>>> round(4.6) # 大于5进一位
5
2.当有两个参数时,round(m,n)函数就是将m保留小数点n位,若m小数点的位数小于n位,则保留原样输出。
>>> round(3.1415926,3)
3.142
>>> round(3.14,3)
3.14
random()函数
1. random.random() 随机在[0.0, 1.0)范围内生成随机浮点数
import random
print(random.random()) # 0.7723774005802997
2. random.uniform(n,m) 随机产生[n,m]之间的浮点数
>>> import random
>>> random.uniform(1,50) # [1.0,50.0]
15.137599235681552
>>> random.uniform(0,1)
0.6924227459953175
3. random.randint(n,m) 随机产生[n,m]之间的整数
import random
print(random.randint(1,5))
4. random.randrange(n,m[,step=1]) 随机产生[n,m)之间的整数
print(random.randrange(1,10))
print(random.randrange(1,10,3))
5. random.choice(seq) 从非空的有序序列seq中随机抽取一个元素
print(random.choice([1, 2, 3, 4]))
print(random.choice((1, 2, 3, 4)))
print(random.choice("hello"))
6. random.sample(req,num) 从非空的有序序列seq中随机抽取num个(不重复)元素 并返回列表的数据类型。
print(random.sample([1,2,3,4],2))
print(random.sample((1,2,3,4),2))
print(random.sample("hello python",2))
7. random.shuffle(list) 将列表随机打乱,此表达式无返回值。lst会被修改。注意不支持元组、字符串、集合、字典。
lst= [1,2,3,4,5]
random.shuffle(lst)
print(lst)
strip()函数
strip(m)函数是去除字符串两端的指定字符,只能字符串两端的字符在m内,即可去除。是由两侧往内去除
当m省略时,默认去除两端的空格,还可以去除转义字符:
\t \r
示例:
print("abcdbefaabc".strip("bac")) # dbef
print(" hello ".strip())
print("
hello\t\r".strip())
st="abcdbac"
print(st.strip("abc")) # d
st="abcdbace"
print(st.strip("abc")) # dbace
enumerate()函数
enumerate(iter,start=0)函数是枚举函数,将iter可迭代对象里面的元素一个个遍历出来,并返回元素对应的下标。默认下标从0开始,也可以用start参数来设置起始下标。
可以使用list()、tuple()、dict()转为对应的数据类型
>>> lst=[1,2,3,4,5]
>>> list(enumerate(lst,start=1))
[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)]
>>> tuple(enumerate(lst,start=1))
((1, 1), (2, 2), (3, 3), (4, 4), (5, 5))
>>> dict(enumerate(lst,start=1))
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
math模块
1. math.floor(n) 向下取整,等价于//
>>> import math
>>>
>>> math.floor(2.5)
2
>>> math.floor(-2.5)
-3
2.math.ceil(n) 向上取整
>>> math.ceil(2.5)
3
>>> math.ceil(-2.5)
-2
3.math.PI 圆周率
>>> math.pi
3.141592653589793
4.math.pow(x,y) 返回x**y结果的浮点型
>>> math.pow(2,3)
8.0
>>> pow(2,3) # 和上面有区别
8
5.math.sqrt(n) 返回n的平方根 返回浮点型的结果
>>> math.sqrt(9)
3.0
>>> math.sqrt(16)
4.0
datetime模块
使用前先导入time模块:import datetime
import datetime
print(datetime.datetime.today()) # 返回当前日期和时间 2024-03-14 22:23:56.768039
print(datetime.datetime.now()) # 返回当前日期和时间 2024-03-14 22:23:56.768039
print(datetime.date.today()) # 返回当前日期 2024-03-14
print(datetime.datetime.now().year) # 获取当前时间的年份
print(datetime.datetime.now().month) # 获取当前时间的月份
print(datetime.datetime.now().day) # 获取当前时间的日期
print(datetime.datetime.now().time()) # 获取当前时间
string 模块
import string 导入string模块
string.digits 数字(0-9)字符串
string.ascii_letters字母字符串(小写字母和大写字母组成的字符串)
string.ascii_lowercase 小写字母字符串
string.ascii_uppercase 大写字母字符串
>>> import string
>>> string.digits
'0123456789'
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
[限时练习]
1.print(1,2,3,4,5,sep='*')的运行结果__________
【答案】1*2*3*4*5
【解析】使用字符*来拼接前面的输出项
2.print(1,2,3,4,5,sep='*',end='#')的运行结果__________
【答案】1*2*3*4*5#
【解析】使用字符*来拼接前面的输出项,且使用字符#结尾
3.print(abs(-8//7)+abs(-7%2))的运行结果__________
【答案】3
【解析】-8//7的值为-2 abs(-8//7)的值为2,-7%2的值为1,则最后的结果为3
4.print(divmod(9//2,-2%3))的运行结果__________
【答案】(4, 0)
【解析】9//2的值为4,-2%3的值为1,则divmod(4,1)返回(4//1,4%1),结果为(4,0)
5.print(chr(ord('c')-32))的运行结果__________
【答案】'C'
【解析】ord('c')的值为99,chr(99-32)的结果为C
6.print(bin(19).upper())的运行结果__________
【答案】0B10011
【解析】bin(19)转为二进制0b10011,则使用upper()将小写字母转为大写字母,结果为0B10011
7.print(oct(int('10101',2)))的运行结果__________
【答案】0o25
【解析】int('10101',2)转为十进制为21,oct(21)转为八进制的结果为0o25
8.print(hex(43//2))的运行结果__________
【答案】0x15
【解析】43//2的值为21,hex(21)转为十六进制的结果为0x15
9.print(round(6.4))的运行结果__________
【答案】6
【解析】小数部分小于5,则舍去
10.print(round(8.5))的运行结果__________
【答案】8
【解析】按照"四舍六入 五留双"的口诀,舍去正好是偶数,因此结果为8
11.先import random随后随机生成一个[0.0,1.0)之间的浮点数使用表达式__________
【答案】random.random()
【解析】随机生成一个[0.0,1.0)之间的浮点数需要使用random.random()函数生成
12.先import random随后随机生成一个[10,100]之间的整数使用表达式___________
【答案】random.randint(10,100)
【解析】随机生成一个[10,100]之间的整数则使用random.randint(10,100)
[归纳小结]
学科网(北京)股份有限公司
$$