python基础面试题

python基础面试题

1、python有哪些数据类型?

Python六大基本数据类型:数字、字符串、列表、元组、字典、集合

2、Python怎么将两个字典合并?

使用.update()方法更新字典中的数据

#方法一:将age数据更新到name中
name = {'name': 'panpan'}
age = {'age': 25}
name.update(age)
print(name)
#方法二:自定义一个空字典,将name、age更新到空列表中
d = {}
d.update(name)
d.update(age)
print(d)
#方法三:将字典转化成列表相加,在转成字典
conb = dict(list(name.items())+list(age.items()))
print(conb)

3、Python如何将json写入到文件里?

import json
test_dict = {'one':1, 'two':{2.1:['a', 'b']}}
with open("../data/data.json","w") as f:
     json.dump(test_dict,f)
     print("加载入文件完成...")

4、在except语句中return后会不会执行finally中的代码?

不管异常是否发生,finally中的语句都会执行,所以即使有return,finally也会执行

5、Python中可变类型有哪些,不可变类型有哪些?

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

6、Python函数调用时参数的传递是值传递还是引用传递?

基本的参数传递机制有两种:值传递和引用传递
Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值’来传递对象。

7、Python深拷贝、浅拷贝的区别?

深拷贝和浅拷贝是针对可变对象:list、dict 和 set
深拷贝:copy.deepcopy(a) ,深拷贝都会重新生成一个新的对象,改变后不会对原对象有影响
浅拷贝:copy.copy(a),浅拷贝只使用原始元素的引用(内存地址),修改后原对象也变化
常见的浅拷贝操作有:
使用切片操作[:],使用工厂函数(如list/dict/set),copy模块的copy()方法

8、Python为什么使用*args和**kwargs?

args和**kwargs 是python方法中的可变参数
args表示任何多个无名参数,它是一个tuple
**kwargs表示关键字参数,它是一个dict
同时使用
args和kwargs时,必须
args参数列要在kwargs前
当方法的参数不确定时,可以使用*args 和
kwargs

9、python的继承、多态的了解?父类可以用子类的方法吗?

继承的作用:

继承:子类直接具备父类的能力(属性和方法)

作用:解决代码重用问题,提高开发效率

继承的语法格式:

class 子类名(父类名)pass 

继承分为单继承和多继承:
1、单继承:只继承父类的属性方法,
2、多继承:继承关系为多层传递,如生活中的爷爷、父亲、儿子

多态:多种形态,调用同一个函数,不同表现

实现多态的步骤:

  1. 实现继承关系
  2. 子类重写父类方法
  3. 通过对象调用该方法

10、说说你对封装的了解?

什么是封装?
面向对象编程有三大特性:封装、继承、多态,其中最重要的一个特性就是封装。
封装:指的就是把数据与功能都整合到一起

分两步实现:隐藏与开放接口

python中对对象的封装操作,使其对外只提供固定的访问模式,不能访问其内部的私有属性和私有方法。python中的封装,一般指的是对类属性,类方法的封装,即类属性私有化和类方法私有化

11、Python中的self参数有什么作用?

self是什么:哪个对象调用方法,方法中self就是这个对象
self的作用:为了区分不同对象的属性和方法

12、Python中的os模块常见方法?

os.getcwd() 返回当前工作目录
os.chdir(path) 改变工作目录
os.listdir(path) 列举指定目录中的文件名和目录名
os.mkdir(path) 创建单层目录
os.makedirs(path) 递归创建目录
os.remove(path) 删除文件
os.rmdir(path) 删除单层目录
os.removedirs() 递归删除目录
os.system(command) 运行系统的shell命令
os.rename(old,new) 将老的文件名或目录重新命名为新的文件名或目录
os.curdir 代表当前目录
os.pardir 代表上一级目录

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值