python基础第三天
数据类型的初识
1.数据类型的分类
1.数字 (int)
2.字符串(str)
3.列表(list)
4.元组(tuple)
5.字典(dic)
6.集合(set)
补充内容:
格式化输出: %r,以后会有使用
使用%r的时候,会引用原格式.即输入时什么样就这显示就什么样.
数据类型的转换
#int --> str
i = 4
i1 = str(i)
print(i1 , type(i1))
#int ---> bool
i = 0
i1 = bool(i)
print(i1 , type(i1))
i = 5
i2 = bool(i)
print(i2 , type(i2))
#str ---> bool
#str bool 空字符串为False,非空为True,里面只有空格的也是非空,现实True
i = "hsdhsdldlsd"
i2 = bool(i)
print(i2 , type(i2))
i = ""
i1 = bool(i)
print(i1 , type(i1))
字符串操作
索引 #字符串从左到右是以0开始,从右到左是以-1开始
s = 'oldboylala'
print(s[2])
print(s[0])
print(s[-3])
print(s[122]) #索引超出范围就会报错
切片
print(s[0:2])
print(s[:2]) #对上面进行的简化,如果从头开始切片,则可省略
print(s[3:-3])
print(s[6:3])#什么也不会显示,错误的方法
print(s[-2-5])#无法取值
步长
print(s[1:7:2]) #表示:第一位数字表示起始索引,第二位数字表示结尾索引,第三位表示步长即隔几位取值
print(s[-1:-5:-2]) #反步长
print(s[2:-4:2]) #正负可用,但是步长必须为正
print(s[:100:2])#切片和步长超出范围不会报错,正常可用
字符串常用方法
s = 'oldboy@is7DdidJsj ldjd hs'
1.首字母大写 (capitalize)
s1 = s.capitalize() #首字母大写
print(s1)
或者
print(s.capitalize())
2.所有字母变小写 (lower)
s1 = s.casefold() #字母变成小写,针对uncode的编码所有的字母
s1 = s.lower() #字母变成小写,只针对ascii
print(s1)
3.所有字母变大写 (upper)
s1 = s.upper() #全部都变成大写
print(s1)
验证码实现不区分大小写
a = 'eQy7'
a1 = a.upper()
b = input('请输入验证码:')
b1 = b.upper()
if a1 == b1:
print("666")
else:
print("444")
4.字符串居中 (center)
s1 = s.center(30, '@') #让字符串居中,并且可对空出的空间进行填充.'@'表示填充的字符
print(s1)
5.字符中大小写翻转 (swapcase)
s1 = s.swapcase() #字符串大小写翻转
print(s1)
6.#字符串所有非字母隔开的首字母全部大写,原来其他位置的字母小写.
s1 = s.title()
print(s1)
7.(startswith/endswith) 判断以什么开头结尾,可以使用切片判断整体或者个体
判断以什么开头,返回bool值,只有是一个字符串不分位置,只认为一个字母开头
s1 = s.startswith('ld')
print(s1)
False
s1 = s.startswith('o')
True
s1 = s.startswith('old')
True
8.去除字符串内的首位空格,换行符,制表符(tab)等 .(strip /删除左边:lstrip /删除右边:rstrip)
s = '\n oldboy@is7DdidJsj ldjd hs \t'
s1 = s.strip()
print(s1)
实验:用户名输入得到标准输入
s = input('请输入用户名:')
s1 = s.strip()
if s1 == 'jason':
print(666)
9.查找字符串内字符返回索引 find/index
s = 'alexesxshd'
print(s.find('x', 2,6))#查找元素并返回第一个元素的索引如果没找到返回 -1
print(s.index('A'))#查找元素并返回第一个元素的索引如果没找到报错
10.统计字符元素在字符串中的个数 (count)
print(s.count('ex'))
11.字符串替换 (replace)
s = '是搜地方很少了开发商的灵魂地方发货了'
s1 = s.replace('地方','place',1)
#替换方法,前面添加旧数据,中间添加新数据,最后是替换几个.如果后面填的替换个数超过字符串包含的
不报错,并且把所有需要替换的内容全部替换.
print(s1)
12.分割字符串 (split/rsplit)
s = 'sdhlseeh sdhsld,s#hdi#sda#lsd!sdl#hdk'
print(s.split()) #表示用空格分割
print(s.split(','))#表示用逗号分割
print(s.split('#' , 2)) #表示分割的次数
13.格式输出 (format)
第一种方式: %s 形式相同
s = '我叫{},今年{},爱好{}'
s1 = s.format('MT','18','haha')#这种方式顺序必须一一对应
第二种 可处理多个重复字段的填充,format不用写很多内容
s = '我叫{0},今年{1},爱好{2},明年还是{1},我就是喜欢{2}'
s1 = s.format('MT','18','hahds')
第三种 字典形式,可以一一对应.
s1 = '我叫{name},今年{age},喜欢{hobby}'.format(name='MT',age='18',hobby='hah')
print(s1)
14.判断字符串组成元素
name = 'alex7ds'
print(name.isalnum()) #检测字符串由字母,数字组成,此例题True
print(name.isalpha()) #检测字符串只由字母组成,此例题False
print(name.isdigit()) #检测字符串只由数字组成,此例题False
15.join
#用字符串作为一个连接符,链接字符串.连接可迭代对象中的每一个元素,形成 一个新的字符串.
s = '*'.join('oldboy')
print(s)
结果:
o*l*d*b*o*y
注意:join进行的字符串连接,必须全部都是字符串,里面不能有别的元素,要不然会报错.
公共用法的方法
1.检查字符串/列表/字典等元素长度
len()
a = len(变量)
2.检查字符串/列表/字典等元素个数
count()
a = len(变量)
for 循环
1.用whiel 循环遍历 字符串内容.
s = 'hsdlsdjdsh'
s1 = len(s)
i = 0
while i < s1:
print(s[i])
i += 1
2.用for循环实现相同功能
s = 'hsdlsdjdsh'
for i in s:
print(i)
以上为今天所讲的所有重点内容.