-
python内建数据类型有哪些
整型–int
布尔型–bool
字符串–str
列表–list
元组–tuple
字典–dict
… -
int(“1.4”),int(1.4)输出结果?
error和1
-
字符串转化大小写
s.lower() s.upper()
-
避免转义给字符串加哪个字母表示原始字符串?
r , 表示需要原始字符串,不转义特殊字符
-
用两种方法去空格
s='hello world ' s.replace(' ','') s2=re.sub(r'\s','',s)
-
a = " hehheh ",去除收尾空格
s.rstrip() s.lstrip() s.strip()
-
a="hello"和b="你好"编码成bytes类型
a.encode() c.decode()
-
统计字符串中某字符出现次数
s.count('c')
-
python中交换两个数值
a,b=b,a
-
保留两位小数p=3.1415
题目本身只有a="%.03f"%1.3335,让计算a的结果,为了扩充保留小数的思路,提供round方法(数值,保留位数)
a=round(3.1467,2)
aa = Decimal(‘5.026’).quantize(Decimal(‘0.00’))https://blog.csdn.net/chenmozhe22/article/details/81666831
-
python中生成随机整数、随机小数、0–1之间小数方法
随机整数:random.randint(a,b),生成区间内的整数
随机小数:习惯用numpy库,利用np.random.randn(5)生成5个随机小数
0-1随机小数:random.random(),括号中不传参
-
解释一下Python中的三元运算子
a,b=2,3 min=a if a<b else b
-
解释Python中的help()和dir()函数
help() 函数返回帮助文档和参数说明 dir() 函数返回对象中的所有成员 (任何类型)
-
一行代码实现1–100之和
sum(range(1,101))
-
两个列表a=[1,5,7,9]和b=[2,2,6,8]合并为[1,2,2,3,6,7,8,9]
a.extend(b) a.sort()
-
[1,2,3]+[4,5,6]的结果是多少?
[1,2,3,4,5,6]
-
s = “ajldjlajfdljfddd”,去重并从小到大排序输出"adfjl"
s=list(set(a)) s.sort() a=''.join(s) print(a)
-
filter方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = filter(lambda x: x % 2 != 0, a) print(list(b))
-
列表推导式求列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = [x for x in a if x % 2 != 0] print(b)
-
[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
a = [[1,2],[3,4],[5,6]] b = [y for x in a for y in x] print(b)
-
x=“abc”,y=“def”,z=[“d”,“e”,“f”],分别求出x.join(y)和x.join(z)返回的结果
dabceabcf dabceabcf
-
举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]
list = [0, -1, 3, -10, 5, 9] list.sort() print(list) b = sorted(list) print(b)
-
列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
a = [1,2,3,4,5] b = map(lambda x:x*x,a) c= [x for x in list(b) if x>10] print(c)
-
list=[2,3,5,4,9,6],从小到大排序,不许用sort,输出[2,3,4,5,6,9](自己写算法)
def sort(data): le = len(data) for i in range(le): for j in range(le - i - 1): if data[j] > data[j + 1]: data[j], data[j + 1] = data[j + 1], data[j] return data
##字典
-
python字典和json字符串相互转化方法
Json.dumps() json--str Json.loads() str--json
-
使用pop和del删除字典中的"name"字段,dic={“name”:“zs”,“age”:18}
del dic['name'] dic.pop('name')
-
字典如何删除键和合并两个字典
del和update方法
-
如何在一个函数内部修改全局变量
利用global 修改全局变量
-
字典根据键从小到大排序dict={“name”:“zs”,“age”:18,“city”:“深圳”,“tel”:“1362626627”}
res = sorted(dict01.items(), key=lambda x: x[0])
-
a=(1,)b=(1),c=(“1”) 分别是什么类型的数据?
tuple,int,str
-
举例说明zip()函数用法
x=['a','b','c'] y=[1,2,3] z=zip(x,y) print(list(z)) #[('a', 1), ('b', 2), ('c', 3)]
-
设计一个程序,求出1+3!+5!+7!+9!+50!的和。
def add_list(data): if len(data) and len(data) < 2: return work(data[0]) else: result = 0 for i in range(len(data)): result += work(data[i]) return result def work(num): res = 0 for i in range(1, num + 1): res += i return res print(add_list(a)) //1370
-
使用python将字符串“1.2.3.4.5”转换为字符串“5|4|3|2|1”
str_list = '1.2.3.4.5' new_list = str_list.split('.') new_list.reverse() str_new_list = str('|'.join(new_list)) print(str_new_list)
-
什么是lambda函数?它有什么好处?
1. lambda的用法:lambda匿名函数,用法:lambda arg1,arg2..argN:expression using args 2. 优点:对于逻辑简单的函数,直接使用lambda会更简洁,而且省去取函数名的麻烦。
-
Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
1、复制不可变数据类型,不管copy还是deepcopy,都是同一个地址当浅复制的值是不可变对象(数值,字符串,元组)时和=“赋值”的情况一样,对象的id值与浅复制原来的值相同。
2、复制的值是可变对象(列表和字典)浅拷贝copy有两种情况:
第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同。
第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值。
深拷贝deepcopy:完全复制独立,包括内层列表和字典 -
介绍一下except的用法和作用?
try…except…else没有捕获到异常,执行else语句
try…except…finally不管是否捕获到异常,都执行finally语句
-
Python中pass语句的作用是什么?
不执行任何功能,直接跳出,和continue类似
-
介绍一下Python下range()函数的用法?
range(1,100,2)起始、终止、步长
-
如何在一个function里面设置一个全局的变量?
global
-
单引号,双引号,三引号的区别
- 单引号和双引号主要用来表示字符串
- 三单引号,也可以表示字符串一般用来输入多行文本,或者用于大段的注释
- 三双引号,一般用在类里面,用来注释类,这样省的写文档,直接用类的对象__doc__访问获得文档
- 区别:若你的字符串里面本身包含单引号,则必须使用双引号。
-
关于python中的复数:
1.表示复数的语法是real + image j
2.实部和虚部都是浮点数
3.虚部的后缀可以是 “j” 或者 “J”
4.复数的 conjugate 方法可以返回该复数的共轭复数。 -
解释性语言和编译性语言的定义:
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。
解释性语言的定义:
解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。
现代解释性语言通常把源程序编译成中间代码,然后用解释器把中间代码一条条翻译成目标机器代码,一条条执行。
编译性语言的定义:
编译性语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。
- python socket
sk.recv(bufsize[,flag]):接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息,通常可以忽略。
sk.recvfrom(bufsize[.flag]):与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址。
sk.getsockname():返回套接字自己的地址。通常是一个元组(ipaddr,port)
sk.connect(address):连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
sk.listen(backlog):开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。
- 线程由操作系统控制,协程由程序自身控制.