python面试题 日常更新
1.设置Python模块的搜索路径有几种方式(4种)
- 设置PYTHONPATH环境变量
- 添加. pth文件 在python的安装路径下的/lib/python版本号/site-package/ 下创建 XXX.pth ,打开XXX.pth添加需要导入的路径
- 通过sys . path设置路径
- 如果使用PyCharm,可以直接设置搜索路径
- 永久设置Python模块搜索路径: PYTHONPATH、.pth文件和PyCharm
- 临时设置Python模块搜索路径: sys.th、临时设置PYTHONPATH(export)
2.字符串与字符串之间的连接方式有几种(5种)
# 1:+(加号)
s1 = 'hello'
s2 = 'world'
s = s1 + s2
print(s)
# 2: 直接连接
s = "hello""world"
print(s)
# 3:用逗号(,)连接,标准输出的重定向
from io import StringIO
import sys
old_stdout = sys.stdout
result = StringIO()
sys.stdout = result
print('hello','world')
sys.stdout =old_stdout # 恢复标准输出
result_str = result.getvalue()
print("用逗号连接:",result_str)
# 4:格式化
s = '<%s> <%s>' % (s1,s2)
print('格式化:',s)
# 5: join
s = " ".join([s1,s2])
print("join连接:",s)
3.字符串与非字符串之间的连接方式有几种(3种)
# 1:加号
n = 20
s = s1 + str(n)
print(s)
v = 12.44
b = True
print(s1 + str(n) + str(v) + str(b))
# 2: 格式化
s = '<%s> <%d> <%.2f>' %(s1,n,v)
print('格式化:',s)
# 3:重定向
from io import StringIO
import sys
old_stdout = sys.stdout
result = StringIO()
sys.stdout = result
print(s1, True, n,v,sep='*')
sys.stdout =old_stdout # 恢复标准输出
result_str = result.getvalue()
print("用逗号连接:",result_str)
# 连接类的传输出
class MyClass:
def __str__(self):
return 'This is a MyClass Instance.'
my = MyClass()
s = s1 + str(my)
print(s)
4. 进制转换
二进制:数值前面加0b
八进制:数值前面加0o
十六进制:数值前面加0x
其中b、o和x不区分大小写
二进制转换函数:
bin 二进制转换函数
int 十进制转换函数
hex 十六进制转换函数
oct 八进制转换函数
n1 = 1234
# 二进制
n2 = 0B11101
print(n2)
# 八进制
n3 = 0O127
print(n3)
# 十六进制
n4 = 0XF15
print(n4)
# 进制之间的转换
# 转换为二进制
print(bin(120))
print(bin(0xF012A))
#<class 'str'>
print(type(bin(120))
# 转为十进制
print(int('0B10110',2))
print(int('1237',8))
print(int('F35AE',16))
# 转为十六进制
print(hex(54321))
print(hex(0b1101110101))
# 十进制转为八进制
print(oct(1234))
5.字符串首字母大小写转换
- capitalize() 第一个字母变成大写,其他字母变小写
- upper()
并不会真正修改
s1 = 'hello'
print(s1)
print(s1.capitalize())
# s1[0] = 'H' 只读的,会抛出异常
s1 = s1[0:1] + s1[1].upper() + s1[2:]
print(s1)
s2 = 'Hello'
s = s2[0].lower() + s2[1:]
print(s)
今天也是爱zz的一天哦!