-
编码问题 :
编码 : 将人类能识别的字符转化为计算机能识别的字符就是编码,编码的方式很多
ASCII : ASCII编码是最早的编码表,采用一个字节进行存取,只能包含127个字符
Unicode : 由于ASCII的编码远远不能满足人们对于编码的需求,所以创造了Unicode(万国码),Unicode采用至少2个字节进行存取。
utf-8 : utf-8用三个字节来存取中文
gbk : gbk是一种中国人专用的编码,采用俩个字节来存取中文,是Windows终端使用的解码方式。
在Python2中,输入设备的文字采用utf-8进行存取,但是在输出时终端用gbk的方式进行读取,因为utf-8用了三个字节进行存取而gbk则二个字节俩个字节的读取,所以在Python2的终端上,输出的中文会出现乱码。
而在Python3中,输入的中文会间接转化为Unicode编码进行存取,在输出时也会用Unicode的方式进行解码,所以整个过程中不会出现乱码的形式。
下图是Python3中编码内部的转化:
运算符 :
×× : 俩个乘号表示幂运算
// : 整除
/ : 直接得出商(准确的,没有舍去)
成员运算符 :
in :表示字符在字符串里面
name = "林则徐"
if "林" in name :
print("OK")
else :
print("Error")
not in :表示字符不在字符串里面
name = "林则徐"
if "林" not in name :
print("OK")
else :
print("Error")
布尔值 : True 和 False
关系运算符 :
- ==
- <
- <=
- !=
- <>
- not (取反)
逻辑运算符 :
- and : 且
- or : 或者
- 运算的方式:如果前面的条件为假,则and后面的不用计算,确认为假,而or则要继续计算。如果前面条件为真,则or不用继续计算,确定为真,and则要继续计算。
基本数据类型 :
- 数字
- int整形
- lonjg长整形(在Python3中没有长整形)
- 字符串 str
- 列表 list
- 元祖 tuple
- 字典 dict
- 布尔值 bool
×补充一下Pycharm的快捷键 :
- 查看类的具体方法 : ctrl + 鼠标左键 点击 类的名称
- 代码注释化 : ctrl + /
字符串类的常用方法 :
- 6个最基本的方法 :
- join
test = "你是风儿我是沙" t = " " v1 = t.join(test) # 将字符串中的每一个元素按照指定字符串进行拼接 v2 = "_".join(test) print(v1) print(v2)
- split
test = "adjwhdds;l" m = test.split("d",2) # 按分割符分俩次,分隔符不保留 k = test.rsplit("d",2) # 从右按分隔符分割俩次,分隔符不保留 print(k) print(m)
- find
v5 = test.find("ex") # 寻找最前面的的参数字符出现的位置 v6 = test.find("ex" , 5, 8) # 5和8 是寻找的区间 print(v5 , v6)
- strip
test = "alxavo" v = test.lstrip("alav") #从左开始删除指定多的内容 v2 = test.rstrip("xvo") # 从右删除指定多的内容 print(v , v2)
- upper
test = "aLex" v = test.isupper() # 判断是大写 v1 = test.upper() # 将字符串转化为大写 print(v) print(v1)
- lower
test3 = "ALex" v3 = test3.lower() # 单纯的将大写转化为小写 print()
- 20多个常用方法
- capitalize()
test = "alex" v1 = test.capitalize() ##s首字母变大写的方法 print(v1)
- casefold()和lower()
test2 = "aLex" v2 = test2.casefold() ## 转换字符对应关系(将大写字母转化为小写 print(v2) v3 test3 = "ALex" v3 = test3.lower() # 单纯的将大写转化为小写 print()
- center()
v4 = test3.center(20 , "*") print(v4) #参数20:将内容放在20个格中,并将字符串居中 #* : 空白位填充,只能一个字符,可有可无
- count()
test = "alexalex" v = test.count("e") #计算参数字符(或字符串)在原字符串中出现的次数 print(v) v2 = test.count("a" , 5 , 6) # 5、6 :是计算的始终位置 print(v2)
- endswith() 和 startswith()
v3 = test.endswith("ex") # 判断是否以什么什么结尾 v4 = test.startswith("al") # 判断是否以身什么开始 print(v3) print(v4)
- format() 和 format_map()
test = "i am {name} , age {age}" v = test.format(name = "林则徐" ,age = print(v) test2 = "i am {0} ,age {1}" v2 = test2.format("林则循" , "20") print(v2) #格式化操作的俩种方式,第二种方式是按顺序填补的 test3 = "i am {name} , age {a}" v3 = test3.format_map({"name" : "林则徐" , "a" : 20}) print(v3) # 采用字典的方式格式化 ```
- isalnum()
test5 = "utf900_+" v5 = test5.isalnum() print(v5) # 判断参数字符串中是否只含数字和字母
- expandtabs()
test = "username\temail\tpasswd\nlaiying\ttying@q.com\t123\nlaiying\ttying@q.com\t123\n" v1 = test.expandtabs(20) print(v1) # 将字符串按20位分开,遇到tab自动置空,表格符
- isalpha()
test1 = "fewwu无f" v2 = test1.isalpha() # 判断字符串中是否只包含字母和中文 print(v2)
- isdecimal() 、isdigit() 和 isnumeric()
test2 = "二" v3 = test2.isdecimal() v4 = test2.isdigit() print(v3 ,v4) v5 = test2.isnumeric() #能够识别中文的数字 print(v5) # 俩个都是识别是否只包含数字,第二个还可以识别一些二
- isidentifier()
test3 = "dwdq_123" #字母(可以中文),下划线,数字 只包含这些元素的称之为标识符 v = test3.isidentifier() # 判断字符串是不是标识符 print(v)
- isprintable()
test = "dwedghei\tfwe" v = test.isprintable() # 判断目标字符是否可显示 print(v)
- isspace()
test2 = " " v2 = test2.isspace() # 判断目标字符串是否只有空格 print(v2)
- istitle() 和 title()
test = "Return True if all cased characters in S are" # 在英文中,标题的所有受字母都是你大写 v1= test.istitle() # 判断目标字符串是否是标题 v2 = test.title() #将目标字符串转化为主题 print(v1) print(v2)
- ljust() 和 rjust()
test = "alex" v = test.ljust(20, "*") # 占20个位置,并且将字符串左对齐 v2 = test.rjust(20,"_") # 同理,将字符串右对齐 print(v) print(v2)
- zifill()
test = "jds" v = test.zfill(20) # 用 0 进行填充 print(v)
- maketrans() 和 translate()
v = "aiodfjik:jdihawe:ajdfiqjw" m = str.maketrans("aeiuo","12345") # 将字母和数字对应起来 k = v.translate(m) # 对字符串中的指定字符按照上面的对应关系进行翻译 print(k)
- partition()
test = "adjqiewhj" m = test.partition("j") # 按参数字符进行分割 吗= test.rpartition("w") # 从右按参数字符进行分割 print(m)
- swapcase()
test = "aLex" m = test.swapcase() # 大小写转换 print(m)
整形常用方法 :
- type()
num = 111 print(type(num))
- int()
i = "1" v = int(i) print(v)
- int(变量名,base=n)
kp = "0011" print(int(kp , base=16))
- bit_length()
kp = "0011" print(int(kp , base=16)) num = 127 print(num.bit_length()) tmo = 23.2 print(tmo.bit_length())