Python面试题目录
- Q1.用Python列出500~1000的所有素数?
- Q2.找出字符串中的有多少个a?
- Q3.random函数只能随机[0,1],如果调用该函数实现[0,1000]?
- Q4.python去除重复列表中重复的元素,最少三种方式?
- Q5.怎样实现两个json的比对?
- Q6.set,map,json的区别?
- Q7.洗牌算法,归因算法,斐波那契算法?
- Q8.Python的解释器有哪些?
- Q9. 列举至少5条Python3和Python2的区别?
- Q10.Python新式类和经典类的区别是什么
- Q11. Python 之禅是什么,python中如何获取python之禅?
- Q12.python中的DocStrings(解释文档) 有什么作用?
- Q13. Python3中的类型注解有什么好处?如何使用?
- Q14. Python语言中的命名规范有哪些?
- Q15. Python中各种下划线的作用?
- Q16. 单引号、双引号、三引号的有什么区别?
- Q17.Python中打开文件有哪些模式?
- Q18.Python中read、readline和readlines的区别?
- Q19.大文件只需读取部分内容,或者避免读取时候内存不足的解决方法?
- Q20.什么是上下文?with上下文管理器原理?
- Q21.什么是全缓冲、行缓冲和无缓冲?
- Q22.什么是序列化和反序列化?json序列化时常用的四个函数是什么?
- Q23.json中dumps转换数据时候如何保持中文编码?
Q1.用Python列出500~1000的所有素数?
"""
方法一:
用filter()函数判断是素数则留下,不是则过滤
"""
def prime(x):
for temp in range(2,x):
if x % temp == 0:
return False #过滤非素数
if temp == x - 1:
return True #返回素数
output = filter(prime,range(500,1001))
print(list(output))
结果:
"""
方法二:
除了1和它本身的约数
"""
list01 = []
for i in range(500,1001):
for j in range(2,i):#除了1和i本身,再有一个约数就不是素数
if (i % j) == 0:
break
else:
list01.append(i)
else:
print(list01)
结果:
易犯的逻辑错误:
Q2.找出字符串中的有多少个a?
"""
方法一:if语句判断
"""
string_01 = input("请输入一个字符串:")
sum = 0
for i in string_01:
if i == "a":
sum += 1
else:
print(f"字符a的个数是:{sum}")
"""
方法二:用filter()函数过滤。适用于可迭代对象的条件判断一类问题的处理。
"""
def sum_str(x):
if x == "a":
return True
else:
return False
string_01 = input("请输入一行字符串:")
count = 0
for i in filter(sum_str,string_01):
#filter(过滤函数,可迭代对象)---》可迭代对象特别地是range(1,100)的写法
count += 1
print(f"字符a的个数:{count}")
Q3.random函数只能随机[0,1],如果调用该函数实现[0,1000]?
import random
print(random.randint(0,1001)) #随机产生[0,1000]之间的整数
print(random.random()) #随即产生[0,1]之间的实数。实数 = 整数+小数
#random(不接收参数)
Q4.python去除重复列表中重复的元素,最少三种方式?
拓展:列表中的元素可以是整型,字符串,不过是改改元素的类型而已,方法一样。
one_list = [1,1,2,2,3,3,4,4,5,5] #可以将整型元素改为字符串。
def func01(one_list):
"""用集合 """
return list(set(one_list))
def func02(one_list):
"""用字典。巧妙的利用了字典的键是唯一的达到去重的目的!!!"""
return {}.fromkeys(one_list).keys()
""""""
def func03(one_list):
"""用列表推导式"""
temp_list = []
for i in one_list:
if i not in temp_list:
temp_list.append(i)
return temp_list
def func04(one_list):
"""使用排序"""
result_list = []
temp_list = sorted(one_list)
i = 0
while i < len(temp_list):
if temp_list[i] not in result_list:
result_list.append(temp_list[i])
else:
i += 1
return result_list
if __name__ == "__main__": #main加Tab补全
print(func01(one_list))
print(func02(one_list)) #此处问题见特别解释
print(func03(one_list))
print(func04(one_list))
代码做如下修改:
# print(func02(one_list))
two_list = []
for i in func02(one_list):
two_list.append(i)
print(two_list)
结果:
第二种方式特殊解释:
Q5.怎样实现两个json的比对?
import json_tools #pip install json_tools
def JsonDifferent():
a = {"key1":"1","key2":"2","key3":"3"}
b = {"key1":"1","key2":"two","key3":"three"}
result = json_tools.diff(a,b)
print(result)
if __name__ == '__main__':
JsonDifferent()
Q6.set,map,json的区别?
集合:set()
1.集合用于包含无序的对象。与列表和元组不同集合是无序的。无法通过数字进行索引。此外,集合中的元素不能重复,因为集合自带去重功能。还有集合支持并集交集差集和对称差及操作。
json:
1.json是一种数据交换格式,支持python的数据类型如下:不支持集合
map()函数:
总结:
map()用于有可迭代对象【包括集合】,集合是无序的,json不支持集合。
Q7.洗牌算法,归因算法,斐波那契算法?
Q8.Python的解释器有哪些?
Q9. 列举至少5条Python3和Python2的区别?
Q10.Python新式类和经典类的区别是什么
Q11. Python 之禅是什么,python中如何获取python之禅?
Q11. Python 之禅是什么,python中如何获取python之禅?
Q12.python中的DocStrings(解释文档) 有什么作用?
Q12.python中的DocStrings(解释文档) 有什么作用?