一 :几点补充
1.之所以会出现乱码是由于终端使用的是GBK编码方式
UTF8→UNICODE→GBK,由于汉字在GBK中占两个字节,在utf8中占三个字节,所以在转换的过程中会出现错误
2.continue和break
continue用来中止当前循环,开始下次循环。break用来中止所有循环。
用法举例:count = 0
count = 0 while count < 10: count = count + 1
print (conut) break#continue
print('不会显示') print('end')
3.for 循环
li = [11,22,33,44]#????
for item in li: print(item)
二:运算符
按照运算结果的不同,将运算符分为两种:a.输出的是结果值;b.输出的是布尔值
结果值:算数运算和赋值运算
算数运算包括:加+、减-、乘*、除/、幂**、取余%、除取整//
赋值运算包括:+=、-=、*=、/=、**=、%=、//=、=
举例:a+=b等价于a=a+b,依次类推。
三:基本数据类型
基本数据类型包括:数字(int)、字符串(str)、列表(list)、元祖(tuple)、字典(dict)、布尔值(bool)。
查看输出数据的类型
a = "123"
print(type(a),a)
四.数字
在Python3中,数字类型都用int表示,在Python2中,有整型和长整型(long)
数字类型常用的两种操作:
a.将字符串转换为数字
a = "123" b = int(a)#将字符串转为数字
print(b)
b.将数字按某种进制转换为十进制数
a ="0001111" b=int(a,base=16)#将数值以等于号后面的进制转换为十进制
print(b)
c.计算数字的的二进制有几位
test = 4 v = test.bit_length() print(v)
五.字符串
1.常用的几种字符串命令(记住)
a.join将字符串中的每一个元素按照指定分隔符进行拼接
test = "湖人总冠军" t = "!" v = t.join(test) print(v)
b.split将字符串按照指定字符进行分割,并且不返回该字符,数字为2代表分为3份
test = "hechouzihechouzi" v = test.split("h",2) print(v)
与split功能相似的还有rsplit,从字符串右边进行分割
splitline,根据\n对字符串进行分割,如果是True保留\n。
test = "hechouzi\nhechouzi\nhechouzi\n" v = test.splitlines(True) print(v)
test = "hechouzihechouzi" v = test.rsplit("h",2) print(v)
同样可以执行分割命令的partition和rpartition,却别是partition以指定字符为分割点,将字符串分为三份,且返回指定字符
test = "hechouzihechouzi" v = test.rpartition("h") print(v)
c.find 寻找子序列在字符串指定位置中第一次出现的位置,字符串的第一位位置为0,如果没有找到,返回-1
test = "hechouzi" v = test.find("h",1,4) print(v)
与find功能相类似的index,区别是index找不到会报错
d.strip 移除字符串两端指定子序列,lstrip移除左边,rstrip移除右边
test = "hechouzihechouzihe" v1 = test.strip("he") v2 = test.lstrip("he") v3 = test.rstrip("he") print(v1,v2,v3)
e.upper和lower
upper是将字符串内容全部转换为大写,lower是将字符串内容全部转换为小写。
test = "hECHouZi" v1 = test.lower() v2 = test.upper() print(v1,v2)
相似命令:capitalize,将字符串首字母大写,其余变小写。
casefold,同样是将字符串内容转换为小写,但lower只对ASCII 也就是 'A-Z'
有效,casefold可以对其它一些语言里面存在小写的情况,如德语中'ß'
的小写是'ss'。
swapcase,将字符串的大小写交换。
title,将字符串中每个单词的首字母大写
f.replace,用指定字符替代字符串中的字符
test = "hecouzihechouzi" v = test.replace("uzi","小狗") print(v)
2.几种特殊命令
a.索引:查找字符串中第n个字符是什么
test = "hechouzi" v = test[2] print(v)
b.切片:切去字符串中[m,n)中的字符,n可为负数
test = "hechouzi" v = test[0:-1] print(v)
c.len 获取当前字符串由几个字符组成
test = "湖人总冠军!" v = len(test) print(v)
用法举例
test = "湖人总冠军!" index = 0 while index < len(test): v = test[index] print(v) index += 1
print("-----")
3.其他命令
a.center 将字符串居中,设置宽度并填充
test = "hechouzi" v = test.center(30,"$")#将字符串设置在宽度为30显示,其他位置用$填补
print(v)
相似功能有:ljust和rjust
b.endswith和starswith 判断字符串是否以xx结尾或开头,返回True或者False
test = "hechouzi" v1 = test.endswith("o",3,4)#位置为[3,6)
v2 = test.startswith("h",3,4) print(v1,v2)
c.format和format_map
format的两种用法
test = "i am {0},i am {1}" v = test.format('hechouzi',25) print(v)
test = "i am {name},i am {age}" v = test.format(name = 'hechouzi',age = 25) print(v)
format_map的用法
test = "i am {name},i am {age}" v = test.format_map({"name":"hechouzi","age":25}) print(v)
d.is们
isalnum 判断字符串中是否只包含字母和数字
isalpha 判断字符串中是否只包含字母和汉字
isdecimal isdigit isnumeric三者均为判断是否是数字,isdecimal只能判断十进制小数,isdigit可以判断特殊字符如①,isnumeric可以判断汉字如“一”
isidentifier 检测字符串是否是字母开头
islower isupper 检测字符串的英文字母是否全是小写或大写
isprintable 判断打印时能否看到全部内容
isspace 判断是否全是空格
istitle 判断是否是标题
e.maketrans 设置替换规则
f.expandtabs
str.expandtabs(tabsize=8)
把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8