编码之间的转换
unicode 编码成 utf-8 utf-8 解码成 unicode
unicode 编码成 gdk gdk 解码成 unicode
.decode() //编码
.encode() //解码
例子:
a = "dyq"
a_unicod = a.encode(‘utf-8‘) # a = "dyq" 解码成 unicod
a_gdk = a_unicod.decode(‘gdk‘) # a_gdk 编码成 gdk
print()
字符编码之间的转换关键要记住一个图,这个其实没太大作用,P3都是默认utf-8,除非遇到不同编码类型的才需要重新解码,编码
Python3版本可以直接转码成gdk,不需要解码到unicod再编码成gdk了,省略了一步。
a_utf8 = a_unicod.decode(‘gdk‘)
运算符
算数运算
比较运算
赋值运算
逻辑运算
成员运算
基本数据类型
从上图可得的分类:
单值
- 数字(int)
整数
浮点数
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
- 字符串(str)
- 布尔值(bool)
真(True)
假(False)
集合
- 列表(list)
- 元组(tuple)
- 字典(dict)
不同的类里面有针对各自对象的功能(又称方法),需要的时候从类里调用方法。
查看数据类型
a = "what"
print(type(a)) #type可以用来查看数据类型
查看类型的方法
print(dir(123)) #dir函数可以显示数据a里面所有的方法名称(只是显示名称)
print(help(123)) #help函数可以查看数据类型的方法详情
数字类型常用方法
- 整数之间的加法 + 其实就是运行功能里的 _add_
这个只做简单了解,就是运算的时候其实是调用的类里面的add方法
n1 = 123
n2 = 456
print(n1+n2) = print(n1.__add__n2)
- .length:获取该数字占用的最小位数是多少
n1 = 123
b = n1.bit_length()
print(b)
>>> 7 #最少7位
当然还有很多可以方法供我们使用,了解详情请点这里。
字符串类型常用方法
对字符串的增
- +=:增加内容
name = "xiaoming"
b = "123"
name += b[0:2] #这里选择把变量b范围内的内容添加到name里面
name += "b" #然后再在name的最后一列加上字符“b”
print(name)
数字123用引号括住以后,在赋值给变量,这时它的类型就不再是数字了,而是字符串类型。
对于字符串类型没有专门的删除方法
对字符串修改
- .upper(self):字符串里的内容全部变大写
name = "xiaoming"
print(name)
name2 = name.upper() #upper后面的括号不添加参数
print(name2)
输出内容:
xiaoming
XIAOMING
- .lower:全部变小写
print(name.lower())
- .capitalize(self):首字母变大写
name = "xiaoming"
print(name.capitalize())
输出结果:
Xiaoming
- .center(self, width, fillchar=None),其他部分用指定字符填充
a = "eric"
b = a.center(10,"*") #括号里的内容表示的意思是,把eric居中到10位里面,空白处用*填充
print(b)
输出结果:
***eric***
- .expandtabs(self, tabsize=None):拓展,把制表符变成指定个数空格
content = "hello\t123"
print(content.expandtabs()) #默认变成8个空格
print(content.expandtabs(10)) #也可以指定变成多少个空格,但指定个数要包含前面的内容的个数。
输出结果:
hello 123
hello 123
- .join(self, iterable):用什么什么连接元素
a = ("xiao","ming")
s = "--".join(a) #这里的用法不太一样,前面跟参数,后面跟对象,这里表示用"--"把两个元素连接起来,用来连接的内容可以指定
print(s)
输出结果:
xiao--ming
- .swapcase:小写变大写,大写变小写
a = "xiao"
b = "MING"
print(a.swapcase())
print(b.swapcase())
输出结果:
XIAO
ming
- .partition:分隔,以指定字符为分隔点把值分隔开
name = "xiaoming"
b = name.partition("o") #括号内可以指定用其中的那个字符作为分割点
print(b)
输出结果:
(‘xia‘, ‘o‘, ‘ming‘) #分隔以后数据类型就变成了元组类型。
- replace(self, old, new, count=None:替换,把自定内容替换成另一个指定内容
name = "xiaoming"
b = name.replace("o", "a") #括号内的参数,第一个是旧内容,第二个是新内容
print(b)
- .strip() .lstrip() .rstrip():移除空格,三个方法:可以移除所有空格;可以移除左;右空格。
有时候元素中会有空格,我们需要对数据里的空格进行修改,但只集中操作无法删除对象中间的空格
name = " xiao ming "
print(name.strip())
print(name.rstrip())
print(name.lstrip())
输出结果:
xiao ming
xiao ming
xiao ming
- .decode(self, encoding=None, errors=None):对字符编码
- .encode(self, encoding=None, errors=None):对字符转码
a = "xiaoming"
a_unicod = a.encode(‘utf-8‘) # a = "dyq" 解码成 unicod
a_gdk = a_unicod.decode(‘gdk‘) # a_gdk 编码成 gdk
print()
对字符串的查
- .count(self, sub, start=None, end=None):统计子序列的个数
name = " xiao ming "
b = name.count("i",0, 5) #括号里的参数,第一个表示要统计的对象,第二和第三个表示统计的范围,从0开始算起。
print(b)
输出结果:
1 #在元素的第一位到第五位,i字符一共出现了1次所以统计为1
- .endswith(self, suffix, start=None, end=None):是否以某字符结尾
- startswith(self, prefix, start=None, end=None):是否以某个字符开头
name = "xiao ming"
print(name.endswith("a", 0, 3)) #第一个参数表示指定结尾字符,第二三个参数指定位置
print(name.startswith("o"))
输出结果:
True #如果是以这个字符结尾的则返回真,如果不是返回假
False
- .find(self, sub, start=None, end=None):查找字符位置,如果没有则返回-1
name = "xiaoming"
print(name.find("a", 0, 6))
输出结果:
2
- index(self, sub, start=None, end=None):与上面的find作用相同,但没有找到后则会报错
这里就不举例说明了
- isalnum(self):是否是数字和字符,如果元素中包含字符和数字的话就返回真
name = "123xiaomin/g3"
print(name.isalnum())
输出结果:
False #因为字符里面有特殊字符所以不为真
- .isalpha(self):是否为字母,如果为则为真
- .isdigit(self):是否为数字,如果为则为真
- .islower(self):是否为小写,如果为则为真
当然还有很多可以方法供我们使用,了解详情请点这里。
时间: 2024-10-10 01:58:08