python:基础入门练习006 - 015

# 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)  # 中国
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值