2020年最全python面试题汇总第03期(内附10题及答案)
经过自己面试的经验,我帮大家对python的知识点进行归类,让大家能在最短时间内掌握核心知识点,更高效的搞定 python 面试!
今天我整理了关于“数据结构”和“字符串”的面试题,大家一起试试看自己的熟练程度吧
1 列举 python 中的基本数据类型?
答: python3 中有六个标准的数据类型:
字符串(string)、
数字(digit)、
列表(list)、
元组(tuple)、
集合(sets)、
字典(dictionary)。
2. 如何区别可变数据类型和不可变数据类型?
答: 从对象内存地址方向来说
可变数据类型:在内存地址不变的情况下,值可改变(列表和字典是可变类型,但是字典中的 key 值必须是不可变类型)
不可变数据类型:内存改变,值也跟着改变。(数字,字符串,布尔类型,都是不可变类型)可以通过 id() 方法进行内存地址的检测。
3.字符串大小写问题关于英文字符串的大小写转换问题,可以通过几个函数实现?
答:四种
(1)首字母大写
a ='hello,zhong yuan gong!!'
print(a.title())
(2)全部大写
print(a.upper())
(3)全部小写
print(a.lower())
(4)首个单词的首字母大写
print(a.capitalize())
输出结果为:
hello,zhong yuan gong!!
hello,zhong yuan gong!!
hello,zhong yuan gong!!
hello,zhong yuan gong!!
4. 如何检测字符串中只含有数字?
答:可以通过 isdigit 方法,例子如下
s1 = "12223".isdigit()
print(s1)
s2 = "12223a".isdigit()
print(s2)
结果如下:
#true
#false
5. 将字符串"ilovechina"进行反转的方法写出来
答:s1 = "ilovechina"[::-1] print(s1)
6. python 中的字符串格式化方式你知道哪些?
答:%s,format,fstring(python3.6 开始才支持,现在推荐的写法)
例子如下:
(1)通过位置格式化
print('hello, '.format('zhong', 'yuan', 'gong'))
(2)通过key填充
print('hello,,my name is !!'.format(name='tom', self='sir'))
(3)通过数组的下标填充
n=['tom', 'sir']
print('hello,,my name is !!'.format(n=1))
(4)通过字典的key填充,键名不加引号
m={'name': 'tom', 'self': 'sir'}
print('hello,,my name is !!'.format(m=m))
上面输出结果都是:
hello,tom,my name is sir!!
7.有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。
答:因为题目要是写一个函数所以我们不能直接使用 strip,不过我们可以把它封装到函数啊
def strip_function(s1):
return s1.strip()
s1 = " adabdw "
print(strip_function(s1))
8.说出你知道能删除字符串中的空格集中函数
答:c =' hello world !!! '
(1)去掉字符串开头和末尾的空格
print(c.strip())
(2)去掉字符串左边的空格
print(c.lstrip())
(3)去掉字符串右边的空格
print(c.rstrip())
(4)去掉字符串中所有的空格
print(c.replace(' ',''))
输出依次为:
hello world !!!
hello world !!!
hello world !!!
helloworld!!!
注意:这里不要把strip函数和split函数搞混了,前者是删除字符串中指定的字符,默认为空格,后者是用指定的字符分割字符串,默认也是空格
9. 一个编码为 gbk 的字符串 s,要将其转成 utf-8 编码的字符串,应如何操作?
答:
#转换字符串编码
s='hello,zhongyuan university,你很好!'
print(s.encode('utf-8'))
10.单引号、双引号、三引号的区别?
答:单引号和双引号是等效的,如果要换行,需要符号(\),三引号则可以直接换行,并且可以包含注释
如果要表示let’s go 这个字符串
单引号:s4 = ‘let\’s go’
双引号:s5 = “let’s go”
s6 = ‘i realy like“python”!’
这就是单引号和双引号都可以表示字符串的原因了