【python】⾯试基础知识点
【python】⾯试基础知识点整理
1、解释型和编译型语⾔的区别
编译型语⾔:把做好的源程序全部编译成⼆进制的可运⾏程序。然后,可直接运⾏这个程序。如:C,C++
解释型语⾔:把做好的源程序翻译⼀句,然后执⾏⼀句,直⾄结束!如:Python,
(Java 有些特殊,java程序也需要编译,但是没有直接编译称为机器语⾔,⽽是编译称为字节码,然后⽤解释⽅式执⾏字节码。)2、数据类型的常⽤⽅法
⼀、format 格式化函数
str.format()函数是⼀种格式化字符串函数,此函数可以快速处理各种字符串。
它通过{}和:来代替%。
字符串类型格式化采⽤format()⽅法,基本使⽤格式是:
<;模板字符串>.format(<;逗号分隔的参数>)
调⽤format()⽅法后会返回⼀个新的字符串,参数从0 开始编号。
1、通过关键字
print('{name}在{option}'.format(name="谢某⼈",option="写代码"))
结果:谢某⼈在写代码
2、通过位置
print('name={} path={}'.format('zhangsan', '/')
结果:name=zhangsan path=/
print('{1}在{0}'.format('写代码','谢某⼈'))
或
print('{0}在{1}'.format('谢某⼈','写代码'))
结果:谢某⼈在写代码
3、填充和对齐^<>分别表⽰居中、左对齐、右对齐,后⾯带宽度
print('{:^30}'.format("zhangsan")) # 居中
print('{:>30}'.format("zhangsan")) # 右对齐
print('{:<30}'.format("zhangsan")) # 左对齐
30:字段长度(最左到最右之间的长度)
4、精度控制 :.nf
print('{:.2f}'.format(3.14159))
结果:3.14
保留两位⼩数,两位后四舍五⼊
print('{:.5f}'.format(3.14))
结果:3.14000
保留5位⼩数,不⾜补0.
进制转化,b o d x 分别表⽰⼆、⼋、⼗、⼗六进制
print('{:b}'.format(20))
print('{:o}'.format(20))
print('{:d}'.format(20))
print('{:x}'.format(20))
结果:
10100
24
20
14
5、千位分隔符::,
print('{:,}'.format(100000000))
print('{:,}'.format(123456.123456))
结果:
100,000,000
123,456.123456
⼆、join函数
可以⽤来连接字符串,将字符串、元组、列表中的元素以指定的字符(分隔符)连接⽣成⼀个新的字符串。
list1 = ['1','2','3','4']
s = "-"
s = s.join(list1)
print(s)
输出:
1-2-3-4
⽤空字符连接
list1 = ['g','e','e','k', 's']
print("".join(list1))
输出:
geeks
三、replace函数
mystr4 = ‘luobodazahui-haha’
place(‘haha’, ‘good’))
output
luobodazahui-good
四、split函数
切割字符串,得到⼀个列表。
mystr5 = ‘luobo,dazahui good’
以空格分割
print(mystr5.split())
以h分割
print(mystr5.split(‘h’))
以逗号分割
print(mystr5.split(’,’))
output
[‘luobo,dazahui’, ‘good’]
[‘luobo,daza’, ‘ui good’]
[‘luobo’, ‘dazahui good’]
列表:
1. 切⽚
同字符串
2. append 和 extend
向列表中国添加元素
mylist1 = [1, 2]
mylist2 = [3, 4]
mylist3 = [1, 2]
mylist1.append(mylist2)
print(mylist1)
print(mylist3)
outout
[1, 2, [3, 4]]
[1, 2, 3, 4]
3. 删除元素
del:根据下标进⾏删除
pop:删除最后⼀个元素
remove:根据元素的值进⾏删除
mylist4 = [‘a’, ‘b’, ‘c’, ‘d’] del mylist4[0]
print(mylist4)
mylist4.pop()
print(mylist4)
print(mylist4)
output
[‘b’, ‘c’, ‘d’]
[‘b’, ‘c’]
[‘b’]
4. 元素排序
sort:是将list按特定顺序重新排列,默认为由⼩到⼤,参数 reverse=True 可改为倒序,由⼤到⼩。reverse:是将list逆置。
mylist5 = [1, 5, 2, 3, 4]
mylist5.sort()
print(mylist5)
print(mylist5)
output
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
字典:
1. 清空字典
dict.clear()
dict1 = {‘key1’:1, ‘key2’:2}
dict1.clear()
print(dict1)
output
{}
2. 指定删除
使⽤ pop ⽅法来指定删除字典中的某⼀项
dict1 = {‘key1’:1, ‘key2’:2}
d1 = dict1.pop(‘key1’)
print(d1)
print(dict1)
output
1
{‘key2’: 2}
3. 遍历字典
dict2 = {‘key1’:1, ‘key2’:2}
mykey = [key for key in dict2]
print(mykey)
myvalue = [value for value in dict2.values()]
print(myvalue)
key_value = [(k, v) for k, v in dict2.items() ]
print(key_value)
output
[‘key1’, ‘key2’]
[1, 2]
[(‘key1’, 1), (‘key2’, 2)]
4. fromkeys
⽤于创建⼀个新字典,以序列中元素做字典的键,value 为字典所有键对应的初始值
keys = [‘zhangfei’, ‘guanyu’, ‘liubei’, ‘zhaoyun’]
dict.fromkeys(keys, 0)
output
{‘zhangfei’: 0, ‘guanyu’: 0, ‘liubei’: 0, ‘zhaoyun’: 0}
3、简述 Python 中的字符串编码
计算机在最初的设计中,采⽤了8个⽐特(bit)作为⼀个字节(byte)的⽅式。⼀个字节能表⽰的最⼤的整数就是255(⼆进制
11111111=⼗进制255),如果要表⽰更⼤的整数,就必须⽤更多的字节。
最早,计算机只有 ASCII 编码,即只包含⼤⼩写英⽂字母、数字和⼀些符号,这些对于其他语⾔,如中⽂,⽇⽂显然是不够⽤的。后来⼜发明了Unicode,Unicode把所有语⾔都统⼀到⼀套编码⾥,这样就不会再有乱码问题了。当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。UTF-8 是⾪属于 Unicode 的可变长的编码⽅式。
在 Python 中,以 Unicode ⽅式编码的字符串,可以使⽤ encode() ⽅法来编码成指定的 bytes,也可以通过 decode() ⽅法来把 bytes 编码成字符串。
4、打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("%s*%s = %s"%(i,j,i*j),end="; ")
print()
5、⾯向对象中__new__ 和 init 区别
__new__是在实例创建之前被调⽤的,因为它的任务就是创建实例然后返回该实例对象,是个静态⽅法。
__init__是当实例对象创建完成后被调⽤的,然后设置对象属性的⼀些初始值,通常⽤在初始化⼀个类实例的时候。是⼀个实例⽅法。
1、__new__⾄少要有⼀个参数 cls,代表当前类,此参数在实例化时由 Python 解释器⾃动识别。大学python知识点汇总
2、__new__必须要有返回值,返回实例化出来的实例,这点在⾃⼰实现__new__时要特别注意,可以 return ⽗类(通过 super(当前类名, cls))__new__出来的实例,或者直接是 object 的__new__出来的实例。
3、__init__有⼀个参数 self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成⼀些其它初始化的动作,__init__不需要返回值。
4、如果__new__创建的是当前类的实例,会⾃动调⽤__init__函数,通过 return 语句⾥⾯调⽤的__new__函数的第⼀个参数是 cls 来保证是当前类实例,如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调⽤当前类的__init__函数,也不会调⽤其他类的__init__函数
6、实现⼆分法查函数
⼆分查要求对象必须有序,其基本原理如下:
1.从数组的中间元素开始,如果中间元素正好是要查的元素,则搜素过程结束;
2.如果某⼀特定元素⼤于或者⼩于中间元素,则在数组⼤于或⼩于中间元素的那⼀半中查,⽽且跟开始⼀样从中间元素开始⽐较。
3.如果在某⼀步骤数组为空,则代表不到。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论