# 006: fun(*args,**kwargs)中的*args,**kwargs什么意思?
# *args代表可传入变长列表,**kwargs代表可变长字典。均可以为空,和无限多个。
def f(*args, **kwargs):
print("args:{}".format(args))
print("*" * 30)
print("kwargs:{}".format(kwargs))
f() # args:() kwargs:{}
f(1) # args:(1,) kwargs:{}
f(1, 2, 3) # args:(1, 2, 3), kwargs:{}
f(a=1, b=2) # args:() kwargs:{'a': 1, 'b': 2}
f(1, 2, a=1, b=2) # args:(1, 2) kwargs:{'a': 1, 'b': 2}
f(*[1, 2], **{"a": 3, "b": 4}) # args:(1, 2) kwargs:{'a': 3, 'b': 4}
# 007: python2和 python3的 range(10)的区别
# python2返回列表,python3返回迭代器,python3节约内存
# 008: 一句话解释什么样的语言能够用装饰器?
# 函数可以作为参数传递的语言,可以使用装饰器。装饰器:本质就是函数,功能是为其他函数添加附加功能。装饰器=高阶函数+函数嵌套+闭包
# 009: python内建数据类型有哪些
# int、string、dict、list、set、tuple、bool
# 010: 简述面向对象中__new__和__init__区别
"""
__init__是初始化方法,创建对象后,就立刻被默认调用了,可接收参数
1、__new__至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别
2、__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类(通过super(当前类名, cls))
__new__出来的实例,或者直接是object的__new__出来的实例
3、__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值
4、如果__new__创建的是当前类的实例,会自动调用__init__函数,通过return语句里面调用的__new__函数的第一个参数是cls来保证是当前类实例,
如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的__init__函数,也不会调用其他类的__init__函数。
"""
# 011: 简述with方法打开处理文件帮我我们做了什么?
"""
本质是调用了 __enter__ 与 __exit__
打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,做异常判断,
并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close
(当然还有其他自定义功能,有兴趣可以研究with方法源码)
"""
# 012: 列表[1, 2, 3, 4, 5],请使用 map()函数输出[1, 4, 9, 16, 25],并使用列表推导式提取出大于10的数,最终输出[16, 25]
l012 = [1, 2, 3, 4, 5]
r012 = [i*i for i in l012]
r012 = [i for i in r012 if i > 10]
print(r012)
# 013: python中生成随机整数、随机小数、0--1之间小数方法
import random
# 随机整数
number_int = random.randint(1, 1000)
print("随机整数:{}".format(number_int))
# 随机小数
number_decimal = round(random.uniform(0, 1), 2)
print("随机小数:{}".format(number_decimal))
# 随机0-1的小数
number_float = random.random()
print("随机0-1小数:{}".format(number_float))
# 014: 避免转义给字符串加哪个字母表示原始字符串?
print(r"\t//\r/\n/\//") # r
# 015: <div class="nam">中国</div>,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的
import re
s015 = '<div class="nam">中国</div>'
r015 = re.findall('<div class=".*">(.*?)</div>', s015)[0]
print(r015) # 中国
python:基础入门练习006 - 015
最新推荐文章于 2024-08-27 18:04:10 发布