1,简述列举了解的编程语言及语言间的区别?
Python 解释型语言,代码简洁,易懂 C语言 编译型语言,底层语言 c++ 编译型语言,在C语言基础上加了面向对象 Java 混合型语言,可拓展性高 Golang 编译型语言,强类型,代码规范,高并发 语言特点: 灵活简洁,语言优美 可读性强, 语言类型: 解释型:逐行转化,运行效率低,性能差,开发效率高。兼容性好,跨平台 编译型 :一次性编译成二进制文件,执行效率高,兼容性差, 动态语言:不用声明变量的数据类型(脚本类语言) 静态语言:需要声明变量的数据类型 第三方库:python定位是任其发展,开源库很多,应用领域广
2,列举Python2和Python3的区别?
python2只更新支持到2020年 print:2不加括号,3加括号 input:2中用户输入解析为int类型,raw_input为字符串类型,3直接是字符串类型 range:2是列表,xrange是可迭代对象;3是可迭代对象 继承关系:2是新式类+经典类;3是新式类 数字表示:2,int和long(长整形,超出2**63-1,数字末尾有一个L);3所有整型都是int
3,看代码写结果:
v1 = 1 or 2 # v1 = 1 v2 = 3 and 3 or 9 and 0 # v2 = 7
4,以下的值有什么不同?
v1 = [1,2,3] v2 = [(1),(2),(3)] v3 = [(1,),(2,),(3,)] """ v1 是普通列表,元素为int v2 是列表里面加了小括号,和v1一样,int类型 v3 列表嵌套元祖,元组的元素为int """
5,用一行代码实现数值交换。
a = 1 b = 2 a,b = b,a
6,Python中单引号、双引号、三引号的区别?
双引号可以互相包含,避免转义 三引号支持长字符串的换行,会保留其格式
7,is和==的区别?
is 是判断内存地址是否一致 == 是判断两个对象的值是否相等
8,python里如何实现tuple和list的转化?
tuple(list) # 列表转元组 list(tuple) # 元组转列表
9,如何实现字符串 name='老男孩'的反转?
name = "老男孩" name = name[::-1]
10,两个set如何获取交集、并集、差集?
# 交集 set(a)&set(b) # 并集 set(a)|set(b) # 差集 set(a)-set(b)
11,那些情况下, y != x - (x-y)会成立?
x,y是两个不相等的非空集合
12,Python中如何拷贝一个对象?
# copy模块 [:] copy.copy() # 浅拷贝 copy.deepcopy() # 深拷贝
13,简述 赋值、浅拷贝、深拷贝的区别?
赋值:将多个变量指向同一个内存地址 浅拷贝:只拷贝第一层元素地址,只有修改第一层元素时不受影响 深拷贝:不可变数据类型内存地址共用,可变数据类型重新开辟空间
14,pass的作用?
pass 占位符 与 ...的用法一样
15,阅读代码写结果:
import copy a = [1,2,4,5,['b','c']] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(5) a[4].append('d') print(b) # [1,2,4,5,['b','c','d'],5] print(c) # [1,2,4,5,['b','c','d']] print(a) # [1,2,4,5,['b','c','d'],5]
16,用Python实现9 * 9 乘法表。
for i in range(1, 10): for x in range(1, i + 1): print(f"{i} * {x} = {i * x}",end=" ") print("")
17,用Python显示一个斐波那契数列。
18,如何删除列表中重复的值?
list(set(list))
19,一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?
with open(r'etl_log.txt','r',enconding='utf-8') as f: for i in f: info = f.readlines() print(info)
20,a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?
a是字典, a = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
21,lambda关键字的作用?
定义匿名函数,自带for循环
22,*arg和**kwarg作用?
*args 接收多余的位置参数 **kwargs 接收多余的关键字参数
23,如何在函数中设置一个全局变量 ?
global 全局变量
24,filter、map、reduce的作用?
filter 过滤 map 映射 reduce 累计算
25,什么是匿名函数?匿名函数有什么作用?
lambda函数就是匿名函数 作用:简化代码
26,Python递归的最大层数?
官方:1000 实测:995-998
27,什么是迭代器?什么是可迭代对象?
迭代器:具有__iter__()和__next__()方法 可迭代对象:具有__iter__()方法就是可迭代对象
28,什么是生成器?
具有yield的关键字就是生成器,生成器的本质是迭代器 装饰器的本质是闭包,在不修改源代码及其调用方式的前提下,外增加功能
29,什么是装饰器及应用场景?
登录,类
30,什么是反射及应用场景?
通过字符串操作对象的方法和属性 判断用户的输入
31,写一个普通的装饰器。
def warpper(func): def inner(): print("111") func() print("222") return inner @warpper def func(): print("被装饰的函数")
32,写一个带参数的装饰器。
def func_z(func): def inner(*args,**kwargs): print("我是装饰器,装饰你了啊") ret = func(*args,**kwargs) return ret return inner @func_z def func_b(*args,**kwargs): print("我是被装饰的函数,来啊,你过来啊")
33,求结果:
def num(): return [lambda x:i*x for i in range(4)] print([m(2) for m in num()]) # [6,6,6,6]
34,def(a, b=[])这种写法有什么陷阱?
默认参数可变,容易在后面引用的时候,读取到之前使用的值,因为列表的内存地址没有变。
35,看代码写结果
def func(a,b=[]): b.append(a) return b v1 = func(1) v2 = func(2,[10,20]) v3 = func(3) print(v1,v2,v3) """ [1,3] [10,20,2] [1,3] """
36,看代码写结果:
def func(a,b=[]): b.append(a) return b v1 = func(1) print(v1) # [1] v2 = func(2,[10,20]) print(v2) # [10,20,2] v3 = func(3) print(v3) # [1,3]
37,请编写一个函数实现将ip地址换成一个整数。
如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100 再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
38,请查找一个目录下的所有文件(可能存在文件嵌套)。
import os os.listdir()
39,求结果:
import math print (math.floor(5.5)) # 5
40,是否使用过functools中的函数?其作用是什么?
from functools import reduce reduce 累计算
41,re的match和search区别?
match: 从开头进行查找,查找到就停止,找不到返回None search: 查找全文,找到就停止,找不到就返回None
42,用Python匹配HTML tag的时候,<.>和<.?>有什么区别?
.* 贪婪匹配 匹配多个任意字符 .*? 非贪婪 只匹配一次
43,如何生成一个随机数?
import random random.random()
44,super的作用?
按照mro的顺序进行继承
45,双下划线和单下划线的区别?
双线划线:__ 是Python中强制定义为私有 单下划线:_ 是程序员约定的私有方法
46,@staticmethod和@classmethod的区别?
47,实现一个单例模式(加锁)。
import threading class Singleton(): state = None lock = threading.RLock() def __init__(self,name): self.name = name def __new__(cls,*args,**kwargs): if cls.state: return cls.state with cls.lock: if cls.state: return cls.state cls.state = object.__new__(cls) return cls.state
48,栈和队列的区别?
栈:先进后出 队列:先进先出
49,一下代码输出是什么?请给出答案并解释。
class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x """ 1,1,1 两个child都继承了parent,并没有自己的属性或方法 """ Child1.x = 2 print Parent.x, Child1.x, Child2.x """ 1,2,1 child1添加了属性,就近原则使用自己x的值,child2没有,继承父类 """ Parent.x = 3 print Parent.x, Child1.x, Child2.x """ 3,2,3 parent和chile1有自己的x方法,就近使用自己的,chiild2没有自己的x,继承父类中的x ""
来源:https://www.cnblogs.com/lixiaobin123/p/12368227.html