Python3 函数学习笔记04——内置函数(二)

abs()—绝对值函数

print(abs(-1))		# 1
print(abs(100))		# 100

round()—四舍五入

print(round(3.87))		# 4
print(round(9.21))		# 9
print(round(2.5))		# 2	奇进偶不进 n.5的情况特定发生。
print(round(3.5))		# 4	奇进偶不进 n.5的情况特定发生。

max()、min() 的高阶函数的使用方式

# 几种编程语言及其产生时间
lst = [('Python', 1991), ('C', 1972), ('Java', 1995), ('C#', 2001), ('Go', 2009)]
def fn(n):
    return n[1]
# 列表中产生时间最早的编程语言
#   key值为函数名
print(min(lst, key=fn))  # ('C', 1972)
# 列表中产生时间最晚的编程语言
#   key值为函数名
print(max(lst, key=lambda x: x[1]))  # ('Go', 2009)


# 由角色与其年龄组成的字典
dic = {'汤姆': 20, '杰瑞': 18, '狗狗斯派克': 23, '狗狗泰克': 3, '老鼠泰菲': 2}
def func(n):
    return dic[n]
# 年龄最大的角色
#   key值为函数名
print(max(dic, key=func))	# 狗狗斯派克
# 年龄最小的角色
#   key值为匿名函数
print(min(dic, key=lambda x: dic[x]))	# 老鼠泰菲

range()—产生指定范围数据的可迭代对象

# 一个参数
for i in range(3): # 0 1 2
	print(i)
	
# 二个参数
for i in range(3, 8): # 3 4 5 6 7 
	print(i)

# 三个参数
# 正向操作
for i in range(1,9,5): # 1 6 => 留头舍尾
	print(i)
	
# 逆向操作
for i in range(9,1,-3): # 9 6 3 
	print(i)

globals()、locals()—分别获取全局变量、局部变量的变量字典

def main():
    a = 1
    b = 2
    print('main函数局部作用域中的locls:', locals())
main()
c = 3
print('*' * 30)
print('全局作用域再的locls:', locals())
print('*' * 30)
print('全局作用域再的globals:', globals())

运行结果(在全局作用域下,globals()locals()生成的自动是相同的):

main函数局部作用域中的locls: {'a': 1, 'b': 2}
******************************
全局作用域再的locls: {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000017A250AF340>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/Python/Study/py_20210522_爬虫/py_20220613_基础/py_20220616_globals与locals.py', '__cached__': None, 'main': <function main at 0x0000017A24D17310>, 'c': 3}
******************************
全局作用域再的globals: {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000017A250AF340>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/Python/Study/py_20210522_爬虫/py_20220613_基础/py_20220616_globals与locals.py', '__cached__': None, 'main': <function main at 0x0000017A24D17310>, 'c': 3}

另类创建变量的方式:

dic = globals()
dic['s'] = '创建一个全局变量'
print(s)

eval()、exec()—将字符串当作python代码执行

# eval   
strvar = "print(123)"
strvar = "int(15)"
print(strvar)
res = eval(strvar)
print(res,type(res))

# strvar = "a=3" error eval的局限性 不能创建变量
# eval(strvar)

# exec的功能更强大
strvar = "a=3" 
exec(strvar)	# 可以创建变量
print(a)

strvar = """
for i in range(10):
	print(i)
"""
exec(strvar)	# 运行for循环

repr()—将转义字符直接当做字符串输出

path = 'D:\nPython\tProject'
print(type(repr(path)))	# <class 'str'>
print(repr(path))	# 'D:\nPython\tProject'
# 相当于
print(r'D:\nPython\tProject')	# D:\nPython\tProject

hash()—生成哈希值

# 文件校验
with open("test01.py", mode="r", encoding="utf-8") as fp1, \
        open("test02.py", mode="r", encoding="utf-8") as fp2:
    res1 = hash(fp1.read())
    res2 = hash(fp2.read())
    if res1 == res2:
        print("文件校验成功")
    else:
        print("文件校验失败")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值