常见面试题


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值