python是一门动态解释型的强类定义语言,开发速度快,比编译型语言开发速度快
2.列举Python2和python的区别? 1.python2源码不统一有重复代码,python3源码统一没有重复代码
2.python2除法的时候返回的是整形(向下取整),python3除法的时候返回的是小数(浮点型)
3.python2中的input获取的就是数据本省,python3中input获取到的内容都是字符串
v1 = 1 or 2 v2 = 3 and 7 or 9 and 0
1 7
比较以下值有什么不同?
v1 = [1,2,3]
v2 = [(1),(2),(3)]
v3 = [(1,),(2,),(3,)]
v1是列表,v2是列表嵌套集合,v3是列表嵌套元祖
用一行代码实现数据交换。
a = 1 b = 2
a,b = b,a
python中单引号,黄引号,三引号的区别
单引号表示的字符串里可包含双引号,当然不能包含单引号 双引号表示的字符串里可以包含单引号,字符串都只能有一行 三个引号能包含多行字符串,同时常常出现在函数的声明的下一行,来注释函数的功能,与众不同的地方在于,这个注释作为函数的一个默认属性,可以通过 函数名.doc 来访问
is和 == 的区别?
==只比较值是否相等,is表示id是否相等
python里如何实现tuple和list的转换
list1=[1,2]
tuple(list1)列表转元祖
tuple1=(0,1,2)
list(tuple1)元祖转列表
9.如何实现字符串 name =‘老男孩’的反转?
name[::-1]
10.两个set如何获取交集,并集,差集?
获取交集用&
获取并集用 |
获取差集 —
11.那些情况下,y!=x-(x-y)会成立?
x为负数的时候
12.python中如何拷贝一个对象?
copy 浅拷贝
copy.eepcopy 深拷贝
简述 赋值,浅拷贝,深拷贝的区别?
赋值是将一个对象的地址赋值给一个变量,让变量指向该地址( 旧瓶装旧酒 )。
浅拷贝是在另一块地址中创建一个新的变量或容器,但是容器内的元素的地址均是源对象的元素的地址的拷贝。也就是说新的容器中指向了旧的元素( 新瓶装旧酒 )。
深拷贝是在另一块地址中创建一个新的变量或容器,同时容器内的元素的地址也是新开辟的,仅仅是值相同而已,是完全的副本。也就是说( 新瓶装新酒 )。
pass的作用?
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)
print(c)
print(a)
b=[1,2,4,5,[‘b‘,‘c‘,‘d‘],5]
c=[1,2,4,5,[‘b‘,‘c‘,‘d‘]]
a=[1,2,4,5,[‘b‘,‘c‘,‘d‘],5]
16.用python实现9*9乘法表
l=1 i=0 while l<10: i=1 while i<=l: if i==l: print(i,‘‘,l,‘=‘,li) else: print(i,‘‘,l,‘=‘,li,end=‘ ‘) i += 1 l += 1
17.python显示一个斐波那契数列。
def` `fib_recur(n):
assert` `n >``=` `0
if` `n ``in` `(``0``, ``1``):
return` `n
return` `fib_recur(n ``-` `1``) ``+` `fib_recur(n ``-` `2``)
for` `i ``in` `range``(``20``):
print``(fib_recur(i), end``=``" "``)
18.如何删除列表中的重复值?
list1 = [1,3,5,7,9,7,4,3,6,1]
#将列表强制转换为集合,再转换回列表形式
list1=list(set(list1))
print(list1)
list1 = [1,3,5,7,9,7,4,3,6,1]
list2=[]
for i in list1:
#遍历list1列表中的元素,如果该元素不在list2中则添加到list2,则list2内无重复元素
if i not in list2:
list2.append(i)
print(list2)
19.一个大小为100g的文件etl_log.txt,要读取文件中的内容,写出具体过程代码?
f = open(‘t1‘,mode="r",encoding="utf-8")
for i in f:
print(i.strip())
20.a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?
21.lambda关键字的作用?
匿名函数,
22.*arg和
**kwarg`作用?
在python中,这两个是python中的可变参数,arg表示任意多个位置参数,类型为tuple,**kwargs表示关键字参数,为dict,使用时需将arg放在**kwargs之前,否则会有“SyntaxError: non-keyword arg after keyword arg”的语法错误。此外arg与kwargs均可以换成其他名字
23.如何在函数中设置一个全局变量 ?
用global
24.filter、map、reduce的作用?
filter过滤
map映射
reduce累计数
25.什么是匿名函数?匿名函数有什么作用?
有关键字lambda就是匿名函数,好处就是不用取名,而且简洁
26.Python递归的最大层数?
1000,一般电脑是998
27.什么是迭代器?什么是可迭代对象?
具有iter()方法的就是可迭代对象
具有iter()和next()方法的是迭代器
28.什么是生成器?
生成器的本质就是迭代器,具有yield
29.什么是装饰器及应用场景?
装饰器就是在不修改源代码以及调用方=方式,对功能进行额外添加就是装饰器
30.什么是反射及应用场景?
31.写一个普通的装饰器。
def warpper():
def inner(*args,**kwargs):
return inner
32.写一个带参数的装饰器。
def auth(argv): def warpper(func): def inner(args,**kwargs): if argv == "博客园": print("欢迎登录博客园") user = input("user:") pwd = input("pwd:") if user == ‘alex‘ and pwd == "dsb": func(args,kwargs) elif argv == "码云": print("欢迎登录码云") user = input("user:") pwd = input("pwd:") if user == ‘alex‘ and pwd == "jsdsb": func(*args, kwargs)
return inner
return warpper
def foo(): print("被装饰的函数")
msg = input("请输入您要登录的名字:") a = auth(msg) foo = a(foo)
foo()
33.求结果
def num():
return [lambda x:i*x for i in range(4)] print([m(2) for m in num()])
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)
v1=b[1]
v2=b[1,2,10,20]
v3=b[1,2,10,20,3]
36.看代码写结果
def func(a,b=[]): b.append(a) return b
v1 = func(1) print(v1) v2 = func(2,[10,20]) print(v2) v3 = func(3) print(v3)
v1=b[1]
v2=b[2,10,20]
v3=b[3]
37,请编写一个函数实现将IP地址转换成一个整数。
如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100 再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
不会
38.
请查找一个目录下的所有文件(可能存在文件嵌套)。
os.walk()本质递归
39.求结果
import math print (math.floor(5.5))
地板除5
40.是否使用过functools中的函数?其作用是什么?
reduce wraps
41.re的match和search区别?
match 从开头进行匹配,匹配一个就停止 search 从任意位置进行匹配 匹配一个就停止
42.用Python匹配HTML tag的时候,<.>和<.?>有什么区别?
. 贪婪匹配 匹配多个任意字符 .*? 非贪婪 只匹配一次
43.如何生成一个随机数?
random
random.random()
44.super的作用?
按照mro的顺序进行继承
45.双下划线和单下划线的区别? __强制私有 _程序员约定俗成这是一个私有方法
46.@staticmethod和@classmethod的区别?
一个是静态方法 普通函数 一个是类方法
47.实现一个单例模式(加锁)。
48,栈和队列的区别?
栈先进后除
队列先进先出
49.以下代码输出是什么? 请给出答案并解释。
class Parent(object): x = 1
class Child1(Parent): pass
class Child2(Parent): pass
print Parent.x, Child1.x, Child2.x
Child1.x = 2 print Parent.x, Child1.x, Child2.x
Parent.x = 3 print Parent.x, Child1.x, Child2.x
50.参考下面代码片段
class Context: pass
with Content() as ctx: ctx.do_something() 请在Context类下添加代码完成该类的实现
1,如何获取列表中第二大的值?
list26 = [ 1, 13, 5, 6, 11, 12, 7, 8, 13] list26.sort() # 先对列表元素按从小到大进行排序 count = list26.count(list26[len(list26) - 1] ) # list26[ len(list26) - 1 ]获得列表中最大元素的下标值,count(……)获得最大元素在列表中出现的次数 c = 0 while c < count: # 使用while循环通过最大值出现的次数决定循环次数 list26.pop() # 使用pop()默认删除列表最后的元素,即最大元素,删除次数取决于循环次数即count()的值 c += 1 print(list26[len(list26) - 1]) # 打印列表最后一个元素,即未删除最大元素之前的第二大值
原文:https://www.cnblogs.com/zhen0427/p/12366127.html