python基础-字符串+print常用方法

发布时间 2023-09-07 10:33:19作者: 飞飞乐园

print()

print (value,...,sep='',end='\n',file=sys.stdout,flush=False)
说明:
value:可以接受任意多个变量或值,输出用空格拼接的字符串
sep:分隔符,默认为空格,可设置其他分隔符,如sep='|'
end: 结束符,默认回车,所以每次print之后总会换行,如果不想换行可以设置end的值,如end=""
file: 输出目标,默认是sys.stdout(系统标准输出,即输出到屏幕),可将输出目标改为某个文件,如file=open("test.txt","w")
flush:输出缓存,一般保持False即可,可以获得较好性能

print("aa","今年","5岁")
print("bb","今年","6岁")
print("---------------")
print("aa","今年","5岁",sep="|",end="&")
print("bb","今年","6岁",sep="|",end="&")

输出:

字符串常用方法

拼接字符串
  • 两个字符串直接写道一起
  • 用+拼接
str1="aa""bb""cc"
print(str1)
str2="dd"
print(str1+str2+"ee")

字符串和数字拼接
  • str(obj):用于将数据转换成适合人类阅读的字符串形式
  • repr(obj):用于将数据转换成适合解释器阅读的字符串形式(Python 表达式的形式)
    obj 表示要转换的对象,它可以是数字、列表、元组、字典等多种类型的数据
s = "sss"
print(str(s))
print(repr(s))


s本身就是一个字符串,str() 保留了字符串最原始的样子, repr() 使用引号将字符串包围起来,这就是 Python 字符串的表达式形式

截取单个字符串

string[index]:以字符串左端为起点,索引从0开始。以字符串右端为起点,索引从-1开始。

str = "abcd"
print(str[2],str[-1],sep="$$")

输出:c$$d

截取多个字符串(切片)

string[start:end:step]

str = "abcdefg"
print(str[1:5:2]) #bd
print(str[-1:-3:-1]) #gf
统计字符串长度和字节数

len(string):统计字符串的长度
string.encode(编码):字符串编码

在 Python 中,不同的字符所占的字节数不同,数字、英文字母、小数点、下划线以及空格,各占一个字节,而一个汉字可能占 2~4 个字节,具体占多少个,取决于采用的编码方式。例如,汉字在 GBK/GB2312 编码中占用 2 个字节,而在 UTF-8 编码中一般占用 3 个字节。

str = "我用的python"
print(len(str)) #9 获取字符串长度
strcode = str.encode('utf-8') #对字符串进行编码
print(len(strcode)) #15 获取utf-8编码的字节长度
print(len(str.encode('gbk'))) #12 获取gbk编码的字节长度
分割字符串

string.split(sep,maxsplit)
说明:
string:要分割的字符串
sep:分割符,默认为None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制

str="a ;b ; c ;"
print(str.split()) #按空格分割
print(str.split(";")) #按;分割
print(str.split(' ',2)) #按空格分割,只分割两次

合并字符串

newstr = str.join(iterable)
说明:
newstr:合并后生成新的字符串
str:分隔符,指定合并后的分隔符
iterable:数据源。可以是字符串,列表,元组等

#将列表合并为一个字符串
list=['a','b','c']
print(';'.join(list)) #a;b;c
#将元组合并为一个字符串
tuple =('a','b','c')
print('.'.join(tuple)) #a.b.c
统计字符串出现的次数

str.count(sub[,start[,end]])
说明:
str:源字符串
sub:要检查的字符串
start:检索起始位置。默认开头位置
end:检索终止位置。默认结尾位置

str = "a.bdf.fr."
print(str.count(".",2)) #2 从索引2开始找.的数量
检测字符串中是否包含某子串

str.find(sub[,start[,end]]):返回第一次出现的索引,没有返回-1
str.index(sub[,start[,end]]):返回第一次出现的索引,没有抛异常
说明:
str:源字符串
sub:要检查的字符串
start:检索起始位置。默认开头位置
end:检索终止位置。默认结尾位置

str = "a.bdf.fr."
print(str.find(".",2)) #5 从索引2开始找.的位置
print(str.find("|")) #-1 从头开始找|的位置
print(str.index("|")) #异常 从头开始找|的位置

字符串对齐

S.ljust(width[,fillchar]):字符串左对齐,往右填充字符fillchar(默认空格),是字符串长度为width
S.rjust(width[,fillchar]):字符串右对齐,往左填充字符fillchar(默认空格),是字符串长度为width
S.center(width[,fillchar]):字符串居中对齐,往左右填充字符fillchar(默认空格),是字符串长度为width

str1="abcd"
str2="fghjkln"
print(str1.ljust(10,"-"))
print(str2.ljust(10,"-"))
print(str1.rjust(10,"-"))
print(str2.rjust(10,"-"))
print(str1.center(10,"-"))
print(str2.center(10,"-"))

字符串大小写转换

title():每个单词首字母转为大写
lower():所有大写字母转为小写
upper():所有小写字母转换为大写

str="i love pyThon!"
print(str.title()) #I Love Python!
print(str.lower()) #i love python!
print(str.upper()) #I LOVE PYTHON!
删除字符串中指定字符

strip([chars]):删除字符串前后(左右两侧)的空格或特殊字符。
lstrip([chars]):删除字符串前面(左边)的空格或特殊字符。
rstrip([chars]):删除字符串后面(右边)的空格或特殊字符。
说明:
[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符

str="&i love& pyThon!&&"
print(str.strip("&")) #i love& pyThon!
print(str.lstrip("&")) #i love& pyThon!&&
print(str.rstrip("&,\n")) #&i love& pyThon!
字符串格式转换

str.format(args):str 用于指定字符串的显示样式;args 用于指定要进行格式转换的项,如果有多项,之间有逗号进行分割
在创建显示样式模板时,需要使用{}和:来指定占位符,其完整的语法格式为:

  • index:指定:后边设置的格式要作用到 args 中第几个数据,数据的索引值从 0 开始。如果省略此选项,则会根据 args 中数据的先后顺序自动分配。
  • fill:指定空白处填充的字符。注意,当填充字符为逗号(,)且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出,例如(1000000会输出 1,000,000)。
  • align:指定数据的对齐方式
align 含义
< 数据左对齐。
> 数据右对齐。
= 数据右对齐,同时将符号放置在填充内容的最左侧,该选项只对数字类型有效。
^ 数据居中,此选项需和 width 参数一起使用。
  • sign:指定有无符号数。
sign参数 含义
+ 正数前加正号,负数前加负号。
- 正数前不加正号,负数前加负号。
空格 正数前加空格,负数前加负号。
# 对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀
  • width:指定输出数据时所占的宽度。
  • .precision:指定保留的小数位数。
  • type:指定输出数据的具体类型
type类型值 含义
s 对字符串类型格式化。
d 十进制整数。
c 将十进制整数自动转换成对应的 Unicode 字符。
e 或者 E 转换成科学计数法后,再格式化输出。
g 或 G 自动在 e 和 f(或 E 和 F)中切换。
b 将十进制数自动转换成二进制表示,再格式化输出。
o 将十进制数自动转换成八进制表示,再格式化输出。
x 或者 X 将十进制数自动转换成十六进制表示,再格式化输出。
f 或者 F 转换为浮点数(默认小数点后保留 6 位),再格式化输出。
% 显示百分比(默认显示小数点后 6 位)。
name = "zhang"
age = 18
print("我叫{},今年{}岁。".format(name,age))
print("我叫{0},今年{1}岁。".format(name,age))
print("我叫{1},今年{0}岁。".format(age,name))

字符串编码转换

str.encode([encoding="utf-8"][,errors="strict"]):编码,将 str 类型转换成 bytes 类型。
bytes.decode([encoding="utf-8"][,errors="strict"]):解码,将 bytes 类型的二进制数据转换为 str 类型
说明:

  • str:要转换的字符串
  • bytes:要转换的二进制数据
  • encoding = "utf-8":指定进行编码时采用的字符编码,该选项默认采用 utf-8 编码
  • errors = "strict":指定错误处理方式(默认值为 strict),其可选择值可以是:
    strict:遇到非法字符就抛出异常。
    ignore:忽略非法字符。
    replace:用“?”替换非法字符。
    xmlcharrefreplace:使用 xml 的字符引用。
str="我叫小米。"
print(str.encode());
print(str.encode("GBK"));
print(str.encode().decode());
print(str.encode("GBK").decode("GBK"));


解码的编码方式要和解码一致,不然会报错

str="我叫小米。"
print(str.encode("GBK"));
print(str.encode("GBK").decode());

帮助工具

dir(obj):列出某个类或者某个模块中的全部内容,包括变量、方法、函数和类等
help(obj):查看某个函数或者模块的帮助文档

print(dir(str));
print(help(str.lower));