# 1、一行代码实现1-100之和
# lst = [i for i in range(1,101)]
# print(sum(lst))
# 2、如何在一个函数内部修改全局变量?
#在函数内部添加 global 变量名 这样就可以在本地作用域定义全局作用域了
# name = "大明"
# def eat(name1):
# global name
# name = name1
# print(name)
# eat("小明")
# print(name)
# 3、列出5个python的标准库,不用下载,可以直接导入的库
#random 模块(随机) ;os 模块;math 模块; time模块;copy模块(深拷贝和浅拷贝)
# 4、字典如何删除键和合并两个字典?
#dict.pop('键名'); del dict['键']; dict.popitem() 随机删除
# 5、func(*args,**kwargs)其中*args和**kwargs代表什么意思?
# 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
# 这是Python函数可变参数 args及kwargs
# *args表示任何多个无名参数,它是一个tuple
# **kwargs表示关键字参数,它是一个dict
# def fun(*args,**kwargs):
# print('*args',args)
# print('**kwargs',kwargs)
# fun(1,2,3,a=1,b=2,c=3)
# 6、python的内置标准数据类型有哪些?
#1.数字 数字的类型(整型int 浮点型float 复数)
#2.字符串
#3.列表
#4.元组
#5.字典
#6.集合
# 7、init和new魔术方法有哪些区别?(最好背诵下来)
# “new”方法在Python中是真正的构造方法(创建并返回实例),
# 通过这个方法可以产生一个”cls”对应的实例对象,所以说”new”方法一定要有返回。
# 对于”init”方法,是一个初始化的方法,”self”代表由类产生出来的实例对象,
# ”init”将对这个对象进行相应的初始化操作。
# __new__是一个静态方法, 而__init__是一个实例方法.
# 返回值的不同:__new__方法会返回一个创建的实例, 而__init__什么都不返回.
# 执行顺序的不同:只有在__new__返回一个cls的实例时后面的__init__才能被调用.
# 功能上的不同:当创建一个新实例时调用__new__, 初始化一个实例时用__init__.
# __init__称为初始化方法,其工作是构造本类的新对象。__init__是个构造方法
# 8、列表[1,2,3,4,5],使用map()函数输出[1,4,9,16,25] 再用列表推导式提取出大于10的数[16.25]
# def pingfang(x):
# return x*x
# result = map(pingfang,[1, 2, 3, 4, 5])
# lst = list(result)
# print(lst)
# lst1 = [i for i in lst if i>10]
# print(lst1)
# 9、列出python可变数据类型和不可变数据类型,并简述原理。
#数字是不可变数据类型;字符串是不可变数据类型;布尔值是不可变数据类型;元组不可修改 所以是不可变数据类型
#列表是可变数据类型;字典是可变数据类型
#原理根据可变数据类型与不可变数据类型的概念,只需要在改变value值的同时,
# 使用id()函数查看变量id值是否变化就可以知道这种数据类型是可变的还是不可变的了。
#例如数字
num = 1
print(id(num))
num = 2
print(id(num))
#从上面结果来看 当num的value值改变时 ,它的id也随之改变 所以数字就是不可变数据类型
# 10、使用filter方法求出列表所有的奇数并构造新列表 a = [1,2,3,4,5,6,7,8,9,10]
def is_odd(n):
return n % 2 == 1
#filter函数跟map函数类似 第一个参数为函数 第二个参数为序列
lst = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
lst1 = list(lst)
print(lst1)
常见面试题
最新推荐文章于 2023-02-25 08:07:24 发布