【python】面试基础知识点

本文详细介绍了Python的基础面试知识点,包括解释型和编译型语言的区别,数据类型的常用方法,如format、join、replace和split,以及面向对象中的__new__和init区别。此外,还涵盖了字符串编码,二分法查找,字符串格式化,API实现,斐波那契数列,冒泡排序和快速排序等编程技巧。
摘要由CSDN通过智能技术生成

python基础测试100题

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函数

String.replace(old,new,count) 将字符串中的 old 字符替换为 New 字符,count 为替换的个数

mystr4 = ‘luobodazahui-haha’
print(mystr4.replace(‘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. 切片

同字符串

  1. append 和 extend

向列表中国添加元素

mylist1 = [1, 2]
mylist2 = [3, 4]
mylist3 = [1, 2]
mylist1.append(mylist2)
print(mylist1)
mylist3.extend(mylist2)
print(mylist3)
outout

[1, 2, [3, 4]]
[1, 2, 3, 4]

  1. 删除元素

del:根据下标进行删除
pop:删除最后一个元素
remove:根据元素的值进行删除

mylist4 = [‘a’, ‘b’, ‘c’, ‘d’]
del mylist4[0]
print(mylist4)
mylist4.pop()
print(mylist4)
mylist4.remove(‘c’)
print(mylist4)
output

[‘b’, ‘c’, ‘d’]
[‘b’, ‘c’]
[‘b’]

  1. 元素排序

sort:是将list按特定顺序重新排列,默认为由小到大,参数 reverse=True 可改为倒序,由大到小。

reverse:是将list逆置。

mylist5 = [1, 5, 2, 3, 4]
mylist5.sort()
print(mylist5)
mylist5.reverse()
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

{}

  1. 指定删除

使用 pop 方法来指定删除字典中的某一项

dict1 = {‘key1’:1, ‘key2’:2}
d1 = dict1.pop(‘key1’)
print(d1)
print(dict1)
output

1
{‘key2’: 2}

  1. 遍历字典

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()

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值