python小例子(二)

时间:2022-07-23
本文章向大家介绍python小例子(二),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.在函数里面修改全局变量的值

2.合并两个字典、删除字典中的值

3.python2和python3 range(1000)的区别

python2返回列表,python3返回迭代器

4.什么样的语言可以使用装饰器?

函数可以作为参数传递的语言。

5.python内置数据类型有哪些?

整型(Int)、布尔型(bool)、字符串(str)、列表(list)、元组(tuple)、字典(dict)

6.__init__和__new__的区别?

(1)__init__时初始化方法,创建对象后,就立刻被默认调用了,可接收参数;

(2)__new__必须要有一个参数cls,代表当期类,此参数在实例化时由python解释器自动识别;

(3)__new__必须要有返回值,有两种:super(当前类名,cls).__new__,或Object.__new__(cls)

(4)如果__new__创建的是当前类的实例,会自动调用__init_函数,通过return语句里的调用的__new__函数的第一个参数是cls来保证是当前类实例,如果是其他类的类名,那么实际创建返回的就是其他类的实例,其实就是不会调用当前类的__init__函数,也不会调用其他类的__init__函数。

class A(object):
    def __init__(self):
        print("这是init方法",self)
    def __new__(cls, *args, **kwargs):
        print('这是cls的id',id(cls))
        print('这是New方法',object.__new__(cls))
        return super(A,cls).__new__(cls)
A()
print('这是类A的id',id(A))

7.用with方法打开处理文件时帮我们做了什么?

打开文件进行读写的时候可能出现一些异常情况,如果按照常规的open方法,我们需要用try except finally做异常判断,并且文件不管遇到什么情况,我们都需要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close()(还有一些其它自定义功能)。

f=open(" xx.txt","wb")
try:
    f.write("welcome")
except:
    pass
finally:
    f.close()

8.列表[1,2,3,4,5],使用map()函数输出[1,4,9,16.25],并用列表推导式退出大于10的数,最终输出[16,25]

’map(func,list):将list中的每个元素进行func操作,并返回

a=[1,2,3,4,5]
b=list(map(lambda x:x*x,a))
print(b)
c=[x for x in b if x>10]
print(c)

9.生成随机整数、随机小数、0-1之间的数

import random
import numpy as np
#生成10-20之间的一个整数
a=random.randint(10,20)
#生成五个随机小数
b=np.random.randn(5)
#生成0-1随机小数
c=random.random()

10.正则表达式的使用:<div class='name'>中国</div>匹配出"中国"

import re
s="<div class='name'>中国</div>"
tmp="<div class='.*'>(.*?)</div>"
res=re.findall(tmp,s)
print(res)

输出:["中国"]

11.python中断言(assert),如断言成功,程序继续运行,断言失败,则程序报错

a=3
assert(a>1)
print(‘断言成功,程序运行到这’)

12.python2和python3的区别?说出五个

(1)python3 print必须带括号

(2)python3 range返回迭代器,python2返回列表

(3)python3默认使用utf-8编码,python2使用ACSII编码

(4)python3中str表示字符串序列,byte表示字节序列;python2中unicode表示字符串序列,str表示字节序列

(5)python2中为显示中文,需引入coding声明,python3中不需要;

(6)python3中输入是input,python2中是raw_input

13.用lambda实现两个数相乘

输出:12

14.对字典按键或值进行排序

输出:

[(1, 'd'), (2, 'a'), (3, 'b')] [(2, 'a'), (3, 'b'), (1, 'd')]

15.利用collections中的Counter计算每个元素出现的个数

输出:Counter({'s': 3, 'd': 3, 'a': 2, 'g': 2, 'c': 1, 'f': 1})

16.字符串a = "not 404 found 张三 99 深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三 深圳"

17.filter函数:传入的第一个值是函数,第二个是列表

输出:[1,3,5]

18.列表推导式

输出:[1,3,5]

19.自定义抛出异常

输出:数字大于2

20.正则表达式匹配中,(.*)和(.*?)匹配区别?

(.*)是贪婪匹配,会把满足正则的尽可能多的往后匹配

(.*?)是非贪婪匹配,会把满足正则的尽可能少匹配