目录标题
- python基础
- 1、代码中修改不可变数据会出现什么问题?什么异常?
- 2、a=1,b=2,不用中间变量交换 a 和 b 的值?
- 3、print调用python中底层的什么方法?
- 4、理解下面代码,结果输出
- 5、对input()函数的理解
- 6、理解代码,写出 A0,A1 至 An 的最终值
- 7、python中os模块常见方法
- 8、4G内存怎么读取一个5G的数据
- 9、read、readline、readlines的区别
- 10、在except中return后还会不会执行finally中的代码,怎么抛出自定义异常?
- 11、介绍一下except的作用和用法
- 12、python中标准库
- 13、赋值、浅拷贝和深拷贝的区别?
- 14、__init__和__new__的区别?
- 15、python里面生成随机数
- 16、输入某年某月某日,判断这一天是这一年的第几天?
- 17、os.path和sys.path分别代表什么?
- 18、python中os模块常见方法
- 19、模块和包的区别
python基础
1、代码中修改不可变数据会出现什么问题?什么异常?
不会这次运行,报typeError错误异常
2、a=1,b=2,不用中间变量交换 a 和 b 的值?
a,b = b,a
a = a+b
b = a-b
a = a-b
3、print调用python中底层的什么方法?
sys.stdout.write方法,即往控制台打印字符串
4、理解下面代码,结果输出
5、对input()函数的理解
python3中,input()获取用户输入,不论用户输入的是什么,获取得到的都是字符串类型的。
python2中,raw_input()和input(),raw_input()是同python3中的input(),python2中的input()是指输入的是什么数据类型,获取到的就是什么数据类型。
6、理解代码,写出 A0,A1 至 An 的最终值
A0 = {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’:5}
A1 = [0,1,2,3,4,5,6,7,8,9]
A2 = []
A3 = [1,3,2,5,4]
A4 = [1,2,3,4,5]
A5 = {0:0,1:1,2:4,3:9,}
A6 = [[0,0],[1,1],[2,4],…]
不会的点:
‘a’ in A0 返回true
1 in A0 返回false
A0[‘a’] 返回1
7、python中os模块常见方法
os.remove()删除文件
os.rename()重命名文件
os.walk()生成目录树下的所有文件名
os.chdir()改变目录
os.mkdir创建目录
os.rmdir删除目录
os.listdir()列出指定目录的文件
8、4G内存怎么读取一个5G的数据
方法一:可以通过生成器,分多次读取,每次读取数量较少的数据进行处理,处理结束后再读取后面的数据
方法二:通过linux命令split切割成小文件,再对数据进行处理,
9、read、readline、readlines的区别
read:读取整个文件
readline:读取下一行,使用生成器方法
readlines:读取整个文件到一个迭代器供我们遍历
10、在except中return后还会不会执行finally中的代码,怎么抛出自定义异常?
会继续处理finally
用raise方法可以抛出自定义异常
11、介绍一下except的作用和用法
except: # 捕获所有异常
except:<异常名> :#捕获指定异常
except:<异常名>,<数据> #捕获指定异常及其附加数据
except:<异常名1,异常名2>:<数据>捕获异常名1或者异常名2,及附加的数据
12、python中标准库
os操作系统
time时间
random随机
pymysql连接数据库
13、赋值、浅拷贝和深拷贝的区别?
1,赋值:
用 a is b 来进行判断,返回true.表明地址相同,内容相同。也可以用id()来查看两个列表的地址是否相同
2,浅拷贝:
浅拷贝有三种形式:切片操作、工厂函数、copy 模块中的 copy 函数。
比如上述的列表 a;
切片操作:b = a[:] 或者 b = [x for x in a];
工厂函数:b = list(a);
copy 函数:b = copy.copy(a);
当我们使用 id(x) for x in a 和 id(x) for x in b 来查看 a 和 b 中元素的地址时,可以看到二者包含的元素的地址是相同的。
在这种情况下,列表 a 和 b 是不同的对象,修改列表 b 理论上不会影响到列表 a
浅拷贝之所以称之为浅拷贝,是它仅仅只拷贝了一层,在列表 a 中有一个嵌套的list,如果我们修改了它,情况就不一样了
3,深拷贝
深拷贝只有一种形式,copy 模块中的 deepcopy()函数。
深拷贝和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。因此,它的时间和空间开销要高。
同样的对列表 a,如果使用 b = copy.deepcopy(a),再修改列表 b 将不会影响到列表 a,即使嵌套的列表具有更深的层次,也不会产生任何影响,因为深拷贝拷贝出来的对象根本就是一个全新的对象,不再与原来的对象有任何的关联。
14、__init__和__new__的区别?
init在对象创建后,对对象进行初始化
new是在对象创建之前创建一个对象,并将该对象返回给init
15、python里面生成随机数
使用模块random,在使用前需要import
random.random():生成一个0-1之间的浮点数
random.uniform(a,b) :生成[a,b]之间的浮点数
random.randint(a,b) :生成[a,b]之间的整数
random.randrange(a, b, step):在指定的集合[a,b)中,以 step 为基数随机取一个数
random.choice(sequence):从特定序列中随机取一个元素,这里的序列可以是字符串,列表,元组等
random.random()
random.uniform(a,b)
random.randint(a,b)
random,randrange(a,b,step)
random.choice(sequence)
16、输入某年某月某日,判断这一天是这一年的第几天?
函数:datetime.date(year = int(year),month=int(month),day = int(day))
天数计算:(date1-date2).days
import datetime
def dayoeyear():
year = input('请输入年份:')
month = input('请输入月份:')
day = input('请输入天:')
date1 = datetime.date(year = int(year),month=int(month),day = int(day))
date2 = datetime.date(year int(year),month=1,day=1)
return (date1-date2+1).days
17、os.path和sys.path分别代表什么?
os.path是用于对系统路径文件的操作
sys.path主要是对python解释器的系统环境参数的操作
18、python中os模块常见方法
os.remove()删除文件
os.rename()重命名文件
os.walk()生成目录树下的所有文件名
os.chdir()改变目录
os.mkdir()创建目录
os.rmdir()删除目录
os.listdir()列出指定目录的文件
os.getcwd()取得当前工作目录
os.chmod()改变目录权限
os.path.basename()去掉目录路径
os.path.dirname()去掉文件名,返回目录路径
os.path.join()将分离的各部分组合成一个路径名
os.path.split()返回(dirname(),basename())元组
os.path.splitext()(返回 filename,extension)元组
os.path.getatime\ctime\mtime 分别返回最近访问、创建、修改时间
os.path.getsize()返回文件大小
os.path.isabs()是否为绝对路径
os.path.isdir()是否为目录
os.path.isfile()是否为文件
19、模块和包的区别
模块:每一个python代码是一个模块,可以引用其他模块,比如对象和属性
包:许多python代码的文件夹是一个包,一个包可以包含模块和子文件夹