---恢复内容开始---

一、编码知识的回顾:1)ascii: 最开始是简单的密码本,一个字符八个字节,最左边都是0;                                                                   

                                                 (2)万国码,unicode,目前两个版本,两个字节(16位)表示一个字符,四个字节(32位)表示一个字符。

                                                 (3)unicode 的升级  ——utf-8:用最少的位数(字节)表示一个字符,英文字符:

                                                          一个字节,欧洲有些语言用两个字节表示,亚洲等国家用三个字节来表示;

                                                  (4)gbk :中国特有的:两个字节表示一个字符。        

 二、  例题: "李洁”用utf-8表示有6个字节。gbk:四个字节                                                                                                                    

                             字符串与数字之间的转换的条件是什么? int(True)==1    int(False)==0

 面试题:

print(int(True))    # 1
print(int(False))   #0
print(bool(1))  #True
print(bool(0))  #False

 优先级:

()>not>and>or

print(1 or 1>4)     #1
print(1>1 or 2)     #2
print(3 and 0)      #0
print(2>1 or 3>4 and 5)     #True
print(1 or 3 or 3>4 and 5)      #1

 三、数据的基本类型

1、int. 数字,运算。1、2、3、。。

2、bool  判断真假:True     False

3、str简单少量的储存数据,并进行相应的操作

4、tupe   元组  (2,“sdsf”)

5、list   列表:大量数据储存 [1,"sdsfew",True,["fdss]

6、dict:  字典{“name”:"hao","age":18}

7、set 集合

(1)首字母大写 其余小写

ret="asdDDse"
ret1=ret.capitalize()
print(ret1)     # Asdddse

(2)   upper     lower   全部变成大写或者小写

ret="asdDDse"
ret2=ret.upper()
print(ret2)                 #ASDDDSE
ret3=ret.lower()
print(ret3)                #asdddse 

例子 验证码的输入

name="LiuYahong".upper()
name1=input("请您输入验证码,不区分大小写").upper()
if  name1==name:
    print("验证码正确!")
else:print("验证码错误,请您重新输入")

(3)swapcase  大小写字母翻转

ret="asd,dDse"
ret4=ret.swapcase()
print(ret4)       #ASD,DdSE

(4)center      居中    (重要)

ret="asddDse"
ret5=ret.center(20)
ret6=ret.center(20,"*")
print(ret5)                      #      asddDse       
print(ret6)                      #******asddDse*******

(5)startswith    endswith     切片 查找元素返回bool值

ret="asddDse"
ret7=ret.startswith("a")
ret8=ret.startswith("b")
print(ret7)                          #True
print(ret8)                           #False
ret9=ret.endswith("e")
print(ret9)                           #True
ret10=ret.startswith("d",2,5)         (切片)
print(ret10)                          #True

(6)count   计算某元素的数量 可以切片

ret="asddDse"
ret12=ret.count("d")
print(ret12)                        #2
ret14=ret.count("w")
print(ret14)                           #0
ret13=ret.count("d",1,4)       (切片)
print(ret13)                          #2

(7)exspantabs  默认将第一个tab键变成8个空格,如果tab前不足8个则补全,如果tab键前面的字符超过八个则按八的倍数补全

ret="asddDs333333e\t"
ret15=ret.expandtabs()       
print(ret15)                           #asddDs333333e  
print(len(ret15))                      #16

 

(8)find   index   *find 通过元素查找索引(找到第一个元素),找不到则返回-1   

                              index通过元素查找索引 ,找不到则报错

ret="asddDse"
ret16=ret.find("a")
print(ret16)                       #0
ret17=ret.find("f",0,5)          (可切片)
print(ret17)                       #-1

(9)strip 两端消除空格(可以去掉指定的字符在两端的,不允许有空格)  lstrip左端消除  rstrip右端消除

可以删除指定元素

ret="   asddDse    "
print(ret.strip())           #asddDse
print(ret.rstrip())          #   asddDse
print(ret.lstrip())          #asddDse   
ret="asddDse    "
print(ret.strip("a")) #asddDse
 
print(name.lstrip("al"))     #2)移除name变量左边的’al’并输出处理结果
print(name.rstrip("Nb")) #3)移除name变量右面的’Nb’,并输出处理结果
print(name.strip("ab")) #4)移除name变量开头的a’与最后的’b’,并输出处理结果
 

 (10)split  将字符串分割成列表(以空格 指定字母为界限  可以指定步长)

ret="as   ddD  se222222222222"
print(ret.split())           #['as', 'ddD', 'se222222222222']
print(ret.split("s"))      #['a', '   ddD  ', 'e222222222222']
print(ret.split("s",1))   #['a', '   ddD  se222222222222']

(11)replace  替换元素(可以设置替换次数)

ret="asddDse"
print(ret.replace("a","f"))       #fsddDse
print(ret.replace("d","w",1))      #aswdDse

(12)format  格式化输出

第一种方法:
ret18="name:{},add:{},age:{}".format("liu","china",24) print(ret18) #name:liu,add:china,age:24
第二种方法
ret19="name:{0},add:{1},age:{2},name:{0}".format("liu","china",24)
print(ret19)
           #name:liu,add:china,age:24,name:liu
第三种方法:键值对
ret20="name:{name},add:{add},age:{sge}".format(name="liu",add="china",sge=24)
print(ret20)
            #name:liu,add:china,age:24

(13)isalnum    isdigit    isalpha    判断字符串的组成返回bool值

ret21="123fdsfvg31"
print(ret21.isalnum())      #字符串由字母或者数字组成  True  
print(ret21.isdigit())      #字符串只由数字组成             False  
print(ret21.isalpha())      #字符串只由字母组成             False

(14)例子:打印字符串 利用while循环 或者if 条件语句

1、改变条件

ret="123fdsfvg31"
index=0
while index<len(ret):
    print(ret[index])
    index+=1

2、break 结束

ret="123fdsfvg31"
index=0
while  True:
    #if index !=len(ret):
        print(ret[index])
        index+=1
    #else:
        if index ==len(ret):
            break

15、for 循环   for 变量 in可迭代对象

(接上个打印字符串的例子)第三种方法

ret="123fdsfvg31"
for i in ret:
    print(i)

例子:计算字符串中的数字数量(利用for循环)

ret="123fdsfvg31"
count=0
for i in ret:
    if i.isdigit():
        count+=1
    else:continue
print(count)            #5

 

 16、bit_length()    int(数字类型)查看数字所占的二进制的位数

v = 16
data = v.bit_length()
prin数字t(data)           #4

17、bool与 str 之间的转换      bool   = True(1)  False(0)   

     非空字符串转换成bool值是True     空字符串转换成bool值是False

bool ——str
print(str(True),type(str(True)))          #True <class 'str'>
print(str(False))                               #False

int——bool                                        #True
print(bool(1))
print(bool(0),type(bool(0)))            #False <class 'bool'>

bool——int
print(int(True),type(int(True)))         #1 <class 'int'>
print(int(False))                               #0

18、例子 空字符串

name="  "                表示空格代表的是True
if name:
    print("输入正确内容")
else:
    print("请重新输入")            


#输入正确内容

19、索引和切片

索引和切片[起始位置:结束位置;步长]

name="我爱中华,我爱中国"
print(name[0:1])                     #
print(name[1:6:2])                 #爱华我
print(name[:7])                    #我爱中华,我爱
print(name[2:-1])                   #中华,我爱中
print(name[:])                      #我爱中华,我爱中国
print(name[::-3]) #国我中