↑↑↑点击上方蓝色小字,关注「iBroPro」
跟随朱少 · 储备斜杠资源
01
各种类型的变量与值之间的多种连接方式
Q1:字符串与字符串之间的连接方式
共5种
第一种:+(加号)
s1 = "hello"s2 = "world"s = s1+s2print(s)
第二种:直接连接
s = "hello""world"
print(s)
第三种:用逗号 ( , )连接
print("hello","world")
可再用标准输出重定向。(赋值给一个变量,使用 print 函数从控制台定位到变量)
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)
第四种:格式化 百分号等
s1 = 'hello'
s2 = 'world'
s = '<%s> <%s>' %(s1,s2)
print('格式化:'+s)
第五种:join 方法
# 使用空格将列表中的两个元素连接起来
join_str = " ".join([s1,s2])
print(join_str)
Q2:字符串与非字符串之间如何连接
第一种:加号(使用 str 方法转换)
n = 20
s = s1 + str(n)
print(s)
v = 12.33
b = True
print(s+str(v)+str(b))
第二种:格式化
%s : 字符串
%d : 整数
%.2f : 保留两位小数
s = '<%s> <%d> <%.2f>' %(s1,n,v)
print(s)
第三种:重定向
from io import StringIO
import sys
old_stdout = sys.stdout
result = StringIO()
sys.stdout = result
print(s1, True, n, v, sep='*') # sep 表示每个变量间的分割符号
sys.stdout = old_stdout
result_str = result.getvalue()
print('用逗号连接:',result_str)
Q3:字符串与对象连接时如何让对象输出特定的内容
重写对象的 __str__() 方法
class MyClass:
def __str__(self):
return 'This is MyClass instance.'
my = MyClass()
print(s1+str(my))
类似于 Java 中重写对象的 toString() 方法。
02
十进制、二进制、八进制和十六进制之间的转换
Q1:如何表示二进制、八进制和十六进制
直接表示为 十进制
开头加 0b 表示二进制
加 0o 表示八进制
加 0x 表示十六进制
不区分大小写
# 二进制(0,1)
n2 = 0b11101
print(n2)
# 八进制(0~7)
n3 = 0o123
print(n3)
# 十六进制
n4 = 0xF15
print(n4)
Q2:二进制、八进制和十六进制直接如何转换
转换完以后是字符串类型。数值大小是对应的值大小。
# 进制之间的转换
# 十进制转换为二进制
print(bin(120))
# 二进制转为十进制 前缀加不加都可以
print(int('10110',2))
# 十六进制 转为 十进制
print(int('F35AE',16))
# 将十进制转换为十六进制
print(hex(54321))
# 十六进制转换为二进制
print(bin(0xF012A))
# 将二进制转为十六进制
print(hex(0b1101100))
# 将十进制转为八进制
print(oct(1234))
# 将八进制转为十进制
print(int('3213',8))
# 多种进制可以混合使用,输出结果仍未十进制
print(0b1101 * 0o157 * 0xA23F *10)
结论:
bin(带前缀数值) 把数转换为二进制
oct(带前缀数值) 把数转换为八进制
hex(带前缀数值) 把数转换为十六进制
int('不带前缀数值',n)n=2,8,16 把数转换为十进制
只有int()函数的转换中需要加 引号
03
改变字符串首字母的大小写
Q1:如何改变字符串首字母的大小写
直接使用 capitalize() 函数、title() 函数也可
# 直接调用函数
s1 = 'hello'
print(s1)
print(s1.title())
print(s1.capitalize()
改变字符串中某个字母大小写,使用切片方式
即考察字符串拆分和连接
# 通过切片
s1 = s1[0:1]+s1[1].upper()+s1[2:]
print(s1)
Q2:如果字符串中包含多个单词,
如何改变每个单词首字母的大小写
s3 = 'hello world haha'
arr = s3.split(' ') # 根据指定格式分隔开
#new_str = f'{arr[0].capitalize()} {arr[1].capitalize()} ' \
# f'{arr[2].capitalize()}'
new_str = ''
for i in range(0,len(arr)):
new_str += f'{arr[i].capitalize()}'+' '
print(new_str)