Python试题

本文涵盖Python基础知识,包括变量交换、数据类型区别、文件操作等,并深入探讨了如垃圾回收机制、深浅拷贝应用及特殊运算符的使用。

Python试题

17到25题

17、用一行代码实现数值交换:
a, b = 1, 2
18、Python3和Python2中 int 和 long的区别?
python3 int 就表示 python2中的 int 和 long
19、xrange和range的区别?
python2中的range返回的是列表xrange返回的是生成器
python3中range返回的是迭代器,(但是我测试是class)
20、文件操作时:xreadlines和readlines的区别?
二者返回类型不同,xreadlines返回生成器,readlines返回列表
21、列举布尔值为False的常见值?
‘’ False 0 [] () {}
22、字符串、列表、元组、字典每个常用的5个方法?
23、lambda表达式格式以及应用场景?
lambda是匿名函数,lambda x : x + 2
lambda *args : sum(args)
lambda **kwargs : 1
使用场景:函数式编程(map, reduce filter sorted),闭包
24、pass的作用?
1、空语句
2、保证格式完整性
3、语义完整
25、*arg和**kwarg作用
*arg会把多出来的位置参数转化为tuple
**kwarg会把关键字参数转化为dict
26、is和==的区别
is判断的id地址
==判断的是数值
27、简述Python的深浅拷贝以及应用场景?
浅拷贝:拷贝最外层容器
深拷贝:拷贝最外层容器,还拷贝容器中的元素。
对于不可变元素,使用浅拷贝。
28、Python垃圾回收机制?
1、回收计数引用为0的对象,释放其占用的空间。
2、循环垃圾回收器,释放循环引用对象。
29、Python的可变类型和不可变类型?
可变类型:list,dict,set,可变集合
不可变类型:string,int,float,tuple,不可变集合
30、求结果:
{'k1': [666], 'k2': [666]}
{'k1': [666, 777], 'k2': [666, 777]}
因为value是可变对象,并且使用append来添加元素,所有value的对象引用不变。
31、求结果
[6, 6, 6, 6]
将return返回生成器表达式就返回[0, 2, 4, 6]
32、列举常见的内置函数?
len、bin、hex、oct、dir、max、min、type、
33、filter、map、reduce的作用?
filter:清洗函数
map:对函数里的每个内容,执行方法
reduce:累加函数
配合lambda函数来进行使用
34、一行代码实现9*9乘法表
print('\n'.join([' '.join([f'{y} * {x} = {x * y}' for y in range(1, x+1)]) for x in range(1,10)]))
35、如何安装第三方模块?以及用过哪些第三方模块?
requests、
### 关于Python编程语言的试题与练习题 以下是关于Python编程语言的一些常见试题和练习题,涵盖了基础知识、函数设计、数据处理等多个方面: #### 基础知识类题目 1. **解释型语言和编译型语言的区别是什么?** 解释型语言是指源代码需要经过显式的编译过程即可被逐条执行的语言;而编译型语言则需要先通过编译器将整个程序转换为目标机器码后再运行。Python属于典型的解释型语言[^3]。 2. **什么是GIL(Global Interpreter Lock),它对多线程有什么影响?** GIL是CPython实现中的全局解释器锁,用于保护Python对象模型的安全性,在同一时刻只允许一个线程执行Python字节码。这意味着即使在多核CPU环境下,传统的基于线程的并行计算也无法充分利用多个核心资源[^4]。 #### 数据结构与算法类题目 3. **如何判断两个列表是否有相同元素?** 可以利用集合操作来快速完成此任务。例如: ```python list1 = [1, 2, 3] list2 = [4, 5, 3] if set(list1) & set(list2): print("存在共同元素") ``` 4. **编写一段代码找出数组中重复次数最多的元素及其出现次数。** 使用`collections.Counter`可以轻松统计频率最高的项: ```python from collections import Counter data = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] counter = Counter(data) most_common_element, frequency = counter.most_common(1)[0] print(f'最常出现的是 {most_common_element} ,共出现了 {frequency} 次') ``` #### 实际应用类题目 5. **怎样用Python抓取HTTPS网站的数据?** 抓取HTTPS站点通常需要用到`requests`库,并设置SSL验证选项。如果遇到证书错误,则可以通过关闭SSL认证绕过该问题(推荐生产环境这么做)。示例代码如下所示: ```python import requests response = requests.get('https://example.com', verify=False) print(response.text) ``` 需要注意的是,禁用SSL校验可能会带来安全隐患[^1]。 6. **列举几个常用的Python设计模式实例。** 设计模式分为创建型、结构型和行为型三类。比如单例模式是一种常见的创建型模式,用来确保某类仅有一个实例;适配器模式则是典型结构性模式之一,负责让原本接口兼容的对象能够协同工作[^1]。 #### 编码技巧优化类题目 7. **简化下列代码逻辑:** 已知原始版本为: ```python result = [] for i in range(len(lst)): if lst[i] % 2 == 0: result.append(lst[i]) ``` 改写成更简洁的形式可采用列表推导式表达方式: ```python result = [item for item in lst if item % 2 == 0] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值