Python
字符串
一个字符串等于一个字符数组,0开始.(不同于c的是,也可以用-n到-1来逆向表示)
切片语法:str名+[N:M]从下标N到下标M-1的切片(左闭右开)
只输一个默认N,不写N默认开头,不写M默认到结尾
对字符串的运算
x+y把x和y连接起来,只能是两个字符串
x*n,把x复制n次
x in y,判断x是否是y子串,返回T或是F
对字符串操作
.lower() #把字母全部变为小写,返回字符串
.upper() #把字母全部变为大写,返回字符串
.count(str, beg=0, end=len(string)) #返回指定范围内出现的次数,默认范围是整个字符串
.find(str, beg=0, end=len(string)) #检测是否包含在指定范围内,返回第一次出现的下标,没有返回-1,默认范围也是整个字符串
.isalpha() #判断是不是全字母,特别的,中文字符也会被认为是字母
.split(‘’) #拆分字符串,通过指定分隔符对字符串进行切片,返回分割后的由字符串组成的列表
.replace(old,new,次数) #用new替换old,默认全部替换
.max() #返回对应ASCII码最大的
.min() #返回对应ASCII码最小的
.strip() #去除左右两边指定的字符,返回一个字符串
以下三种方法都是判断字符串是不是全是数字,区别只在数字的格式
bytes数字即为------------str1=b’1’
.isdigit() #判断是不是数字
True: Unicode数字,byte数字
False: 汉字数字,罗马数字
Error: 无
.isdecimal() #判断是不是十进制的数字
True: Unicode数字
False: 罗马数字,汉字数字
Error: byte数字
.isnumeric()
True: Unicode数字,汉字数字
False: 罗马数字
Error: byte数字
以上三个函数功能相同,判断是不是只有数字,一般情况下,没有汉字就用isdigit,有就用isnumeric
字符串前缀
什么是byte数字,其实就是bytes类型的数字
而bytes类型很好定义就是一种特殊的字符串,编码是不用Unicode编码而是用二进制数据表示形式
引出下一个知识点
字符串的前缀:
前加u #表示用unicode编码--------python3.x中全部默认unicode编码
前加r #表示原始字符串,即不把" \ "当作转义字符处理
前加b #表示为bytes类型的字符串
前加f #用来格式化字符串
三种格式化字符串方法
一.占位符
类似c
%d #十进制整数
%o #八进制
%x #十六进制
%s #字符串
%e #科学计数法
%.几f #浮点数控制位数
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
二.f-string
用 f 和花括号{}来控制匹配格式
w = {'name': 'Runoob', 'url': 'www.bilibili.com'}
a=10000
print(f'有{a}人用{w["url"]}')
# Output: '有10000人用www.bilibili.com'
三.format方法
用 0,1,2和format(x,y,z)控制输出
^, <, > 分别是居中、左对齐、右对齐,后面带宽度,小数点和正负号都算一个宽度
: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
- 表示在正数前显示 +,负数前显示 -;表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
'{:a>+10.2f}'.format(pi)
'aaaaa+3.14'
#填充字符 a 、右对齐符号 > 、输出数字带符号 + 、字符串的宽度 10 、保留2位小数 .2f
"{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
tuple1=("name","mh")
print("名字:{0},name:{1}".format(*tuple1)) # 使用*运算符解包元组
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site)) # 使用**运算符解包字典