python面试——数据类型
- 列举 Python 中的基本数据类型?
- 如何区别可变数据类型和不可变数据类型
- 将"hello world"转换为首字母大写"Hello World"
- 如何检测字符串中只含有数字?
- 将字符串"ilovechina"进行反转
- Python 中的字符串格式化方式你知道哪些?
- 有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。
- 获取字符串”123456“最后的两个字符。
- 一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?
- (1)s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', 'shandong']。(2)a = "你好 中国 ",去除多余空格只留一个空格。
- (1) 怎样将字符串转换为小写。 (2) 单引号、双引号、三引号的区别?
列举 Python 中的基本数据类型?
Python3 中有六个标准的数据类型:字符串(String)、数字(Digit)、列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary)
如何区别可变数据类型和不可变数据类型
从对象内存地址方向来说
- 可变数据类型:在内存地址不变的情况下,值可改变(列表和字典是可变类型,但是字典中的 key 值必须是不可变类型)
- 不可变数据类型:内存改变,值也跟着改变。(数字,字符串,布尔类型,都是不可变类型)可以通过 id() 方法进行内存地址的检测。
将"hello world"转换为首字母大写"Hello World"
这个得看清题目是要求两个单词首字母都要大写,如果只是第一个单词首字母大小的话,只使用 capitalize 即可,但是这里是两个单词,所以用下面的方法。
arr = "hello world".split(" ")
new_str = f"{arr[0].capitalize()} {arr[1].capitalize()}"
print(new_str)
后来评论中有朋友提到了下面的方法,这里感谢这位朋友提醒。方案如下
"hello world".title()
非常简单一句话搞定。
如何检测字符串中只含有数字?
可以通过 isdigit 方法,例子如下
s1 = "12223".isdigit()
print(s1)
s2 = "12223a".isdigit()
print(s2)
#结果如下:
#True
#False
将字符串"ilovechina"进行反转
s1 = "ilovechina"[::-1]
print(s1)
Python 中的字符串格式化方式你知道哪些?
%s,format,fstring(Python3.6 开始才支持,现在推荐的写法)
有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。
因为题目要是写一个函数所以我们不能直接使用 strip,不过我们可以把它封装到函数啊
def strip_function(s1):
return s1.strip()
s1 = " adabdw "
print(strip_function(s1))
获取字符串”123456“最后的两个字符。
切片使用的考察,最后两个即开始索引是 -2,代码如下
a = "123456"
print(a[-2::])
一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?
a= "S".encode("gbk").decode("utf-8",'ignore')
print(a)
(1)s=“info:xiaoZhang 33 shandong”,用正则切分字符串输出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]。(2)a = "你好 中国 ",去除多余空格只留一个空格。
我们需要根据冒号或者空格切分
import re
s = "info:xiaoZhang 33 shandong"
res = re.split(r":| ", s)
print(res)
s = "你好 中国 "
print(" ".join(s.split()))
(1) 怎样将字符串转换为小写。 (2) 单引号、双引号、三引号的区别?
(1) 使用字符串的 lower() 方法。
(2)单独使用单引号和双引号没什么区别,但是如果引号里面还需要使用引号的时候,就需要这两个配合使用了,然后说三引号,同样的三引号也分为三单引号和三双引号,两个都可以声名长的字符串时候使用,如果使用 docstring 就需要使用三双引号。