1、上次课程回顾
格式化输出 %s %d %%
编码:ascii 只能显示英文,特殊字符,数字
万国码:unicode 最开始为16位,中文不够后变为32位,4个字节,但占用空间又太多,
升级:utf-8 utf-16 utf-32
utf-8:最少用一个字节,8位表示一个英文。
欧洲16位,两个字节。
亚洲 24位,3个字节
gbk: 中国国产,只能用于中文和ascii码的文字。
2、作业讲解。
(1) 6 or 2>1 # 结果为 6
3 or 2>1 # 结果为3
0 or 5<4 # 结果位 F
5<4 or3 # 结果为3
2>1 or 6 # 结果为True
3 and 2>1 # 结果为True
3、什么数据类型。
int 1、2、3用于计算
bool : True , False ,用户判断
str : ' 密码 ' '小型数据' '便于操作'
list :储存大量的数据,
['1,2,3' , '泰格' , '123456' ]
元祖 : 只读。
(1,2,3, '第三方')
dict : 字典{'name' : '云姐' , 'age' : 16}
字典{'云姐' :[] , '二哥' : [200,200,200,。。。。。。] }
集合 : {1234, 'asdf' }
3、 bool int str 互相转换
(1)int——> str
i=1
s = str(i)
print(s)
(2)str——>int
s='1232'
i=int(s)
print(i)
(3)int——>bool 只要是0——>False 非零就是Ture
i = 3
b = bool(i)
print(b)
(4)bool——>int
True 1
False 0
PS:
while True:
pass
while 1: # 效率高
pass
(5)str——>bool
s = '' ——>False #空字符串为False
s = '0'——>True # 非空字符串为True
PS :
if s :
print('您输入的用户名为空,请重新输入')
else:
pass
4、字符串的索引与切片
(1)索引
s = 'ASDFGHJKL'
s1 = s [0]
print (s1) # 结果为A
s2 = s[3] # 结果为F
s3 = s[0:4]
print (s3) #结果为 ASD ,切片:顾头不顾尾
s4 = s[-1]
print(s4) # 结果为L
s5 = s[0:-1]
print(s5) # 结果为ASDFGHJK
s6=s[0:] = s6=s[:]
print(s6) # 结果为ASDFGHJKL
s7=s[0:5:3] # s[首:尾:步长]
print(s7) # 结果为AGD
s8=s[4:0:-1]
print(s8) # 结果为GFDS
s9=s[4::-1]
print(s9) # 结果为GFDSA
s10=s[4::-2]
print(s10) # 结果为GDA
s11=s[-1::-1] # PS:s11 = s12=[::-1]
print(s11) # 结果为LKJHGFDSA
5、字符串的操作
s = 'alexwusir'
(1)# capitalize 首字母大写
s1 = s.capitalize()
print(s1)
(2)# lower upper全部变为大写或小写
s2=s.upper
print(s2)
s21=s.lower()
print(s21)
例题:
s_str='acEQ' # 对数字没有影响
you_input=print('请输入验证码,不区分大小写')
if s_str.upper()==you_input.upper():
print('输入成功')
else:
print('请重新输入')
(3) # swapcase#大小写翻转
s3=s.swapcase()
print(s3)
(4)# title 隔开(特殊字符,数字,空格隔开)的单词每个首字母变为大写
s='alex*e4gon_wusir,bright'
s4=s.title()
print(s4) # 结果为 Alex*E4Gon_Wusir,Bright
(5)# center居中,空白填充
s='alexWUsir'
s5=s.center(20,‘*’) #默认填充物为none(空格填充),此处用*
print(s5) #结果为******alexWUsir******
(6)# expandtabs
s='alex\tsir' # \t 转换为一个Tab键,自动补到8位
s6=s.expandtabs()
print(s6)
(7) # 公共方法
s7='alex二哥'
l = len(s)
print(l) # 结果为6
(8) # startswith 以什么开头结尾
s='alexWUsir'
s8=s.startswith('alex')
print(s8) # 结果为True
例子:
s='alexWUsir'
s8=s.startswith('alex')
'''
if s8:
pass
elif s.startswith('bl'):
pass
print(s7)
'''
s81=s.startswith('e',2,4) # 在2—4区间是否以e开头
print(s81) #结果为 True
(9)# find 通过元素找索引,找到的话返回索引,找不到返回-1
s='alexWUsir'
s82=s.find('W')
print(s82) # 结果为4(int)
s='alexWUsir'
s83=s.find('WU')
print(s83) # 结果为4(int) 第一个索引
(10)# index 通过元素找索引,找不到报错
(11)# strip 默认删除前后空格
s=' alexWUsir '
s9=s.strip()
print(s9) # 结果为alexWUsir
# 例子
username = input('请输入你的名字:').strip()
if username =='亮':
print('恭喜亮发财')
# 例子 有特殊字符
s='*alexWUsir%'
s91=s.strip(%*)
print(s91) # 结果为alexWUsir,%*的顺序可随意,表示只要前后有%*就全部删除。
(12)# count
s='alexaa wusir'
s10 = s.count('a')
print(s10) # 结果为3,表示有3个a
(13) # split 拆分分割 str——>list
以:为分割,原来被的分割元素(:)就没了
s=' ;alex;wusir;taibai'
l=s.split(';')
print(l) #结果为' ' , ' alex ' , ' wusir ' , ' taibai ' alex前有空格所以被分割
(14)# format的三种玩法 格式化输出
s = '我叫{},今年{},爱好{},再说一下我叫{}' , format('太白' , '36' , 'girl' , '太白')
print(s)
s11= '我叫{0},今年{1},爱好{2},再说一下我叫{0}' , format('太白' , '36' , 'girl' , '太白')
print(s11)
s111= '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}' , format(age=18,name='太白',hobby='girl')
print(s12)
(15)# replace 替换
s = '古西与红利的发放'
s12=s. replace('古西','股息')
print(s12)
6、for 循环
(1)s = 'asdfawerfas'
for i in s:
print(i)
(2)s = 'dsfsdf凉凉hgdfr'
if '凉凉' in s :
print('您的评论有敏感词')