节内容
- 数据类型介绍及格式化输出
- str类型
- str索引切片及简单操作
一,数据类型介绍及格式化输出
什么是数据类型:
我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。
1,格式化输出
info = ''' ------------ info of %s ----------- Name : Coy Yang Age : 100 job : Teacher Hobbie: girl ------------- end ----------------- ''' print(info)
占位符%及双%%
print('我叫%s,今天%d,学习进度2%%' % ('Coy',25))
字符格式化输出
占位符
2,较运算符和逻辑运算符优先级
(1)前后比较运算符
优先级
print(1 > 2 and 3 < 4 or 2 > 1 and 4 < 3)
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
(2)前后都是数值
print(3 or 4) print(1 or 4) print(0 or 1) print(3 and 5)
二, str类型
s1 = 'yangchen' s2 = "yangchen" msg = "My name is Coy, I'm 25 years old!" print(msg)
三引号一般都是在长字符串时候引用
msg = ''' 今天我想写首小诗, 歌颂我的同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。 ''' print(msg)
2,字符串+*
(1)+
s1 = 'coy' s2 = 'ssss' print(s1+s2)
(2)*
s1='coy' print(s1*8)
三,str索引切片及简单操作
1,字符串索引切片
通过索引切出来的是新字符串,新的内存地址,在取的时候要多取一个,因为顾头不顾尾
s = 'coysaihanhan' s1 = s[0] print(s1) #获取字符串索引为0的 s = 'coysaihanhan' s2 = s[2] print(s2) #获取字符串索引为2的 s = 'coysaihanhan' s3 = s[-1] print(s3) #从后往前,取倒数第一个 s = 'coysaihanhan' s4 = s[-2] print(s4) #从后往前,取倒数第二个 s = 'coysaihanhan' s5 = s[0:3] print(s5) #从索引为0的开始取到索引为2的,因为顾头不顾尾 s = 'coysaihanhan' s5 = s[0:4] print(s5) #从索引为0的开始取到索引为3的,因为顾头不顾尾 s = 'coysaihanhan' s5 = s[:4] print(s5) #从索引为0的开始取到索引为3的,因为顾头不顾尾,:前不加默认是最前 s = 'coysaihanhan' s5 = s[4:9]#aihan print(s5) #从索引为4的开始去到索引为8的,因为顾头不顾尾 s = 'coysaihanhan' s5 = s[:] print(s5) #从头到尾 #可以加步长 #隔一个取一个,默认1是挨着,2是隔一个取一个 s = 'coysaihanhan' s5 = s[:5:2] print(s5)#cya #反向步长 #倒着取必须加反向步长 s = 'coysaihanhan' s5 = s[-1:-5:-1] print(s5)#nahn
总结:s[起始索引:结束索引+1:步长]
2,str操作
(1)capitalize
首字母大写其余字母小写
a = 'coyyangCHENhanhan' s1 = a.capitalize() print(s1)
print结果为:
Coyyangchenhanhan
(2)swapcase
大小写翻转
a = 'coyyangCHENhanhan' s2 = a.swapcase() print(s2)
print结果为:
COYYANGchenHANHAN
(3)title
非字母元素隔开的每个单词首字母大写
a = 'coy yang*chen2hanhan' s3=a.title() print(s3)
print结果:
Coy Yang*Chen2Hanhan
(4)center
总长度30并且让字符串居中
a = 'coyyangchenhanhan' s4=a.center(30) print(s4)
print结果为:
可以通过源代码来查看一些参数
查看源代码后发现有默认参数,证明可以添加一个参数,这里默认是None
a = 'coyyangchenhanhan' s4=a.center(30,'*') print(s4)
print结果:
(5)upper和lower
upper全大写,验证码时候用
a = 'coyyangchenhanhan' s5=a.upper() print(s5)
print结果:
COYYANGCHENHANHAN
code = 'AwEqe' username = input('请输入用户名') you_code = input('请输入验证码') if username == 'coy' and you_code.upper() == code.upper(): print('验证成功')
lower全小写
a = 'COYYANGCHENHANHAN' s5=a.lower() print(s5)
coyyangchenhanhan
(6)startswith和endswith
a = 'coyyangchenhanhan' s6 = a.startswith('c') print(s6)
print结果:
a = 'coyyangchenhanhan' s6 = a.startswith('coy') print(s6)
print结果
来看源码,有两个默认参数,默认都是None
设置字符串的起始位置和结束位置
str = "this is string example....wow!!!" print (str.startswith( 'this' )) print (str.startswith( 'string', 8 )) print (str.startswith( 'this', 2, 4 ))
print结果:
endswith
以什么什么为结尾
a = 'coyyangchenhanhan' s6 = a.endswith('n') print(s6)
print结果
str = "this is string example....wow!!!" suffix = "wow!!!" print(str.endswith(suffix)) print(str.endswith(suffix, 20)) suffix = "is" print(str.endswith(suffix, 2, 4)) print(str.endswith(suffix, 2, 6))
print结果:
(7)strip
a = ' coyyangchenhanhan\t' s7 = a.strip() print(s7)
print结果:
coyyangchenhanhan
例子:
username = input('请输入用户名').strip() password = input('请输入密码') if username == 'coy' and password == '123': print('登录成功')
ss = 'coyyangchenhanhan' ss1 = ss.strip('cn') print(ss1)
(8)replace
替换
首先看源代码
s = 'coy wgrwa coy' s8 = s.replace('coy','han',1) print(s8)
print结果:
han wgrwa coy
(9)split
s = 'coy yangchen hanhan' l = s.split() print(l)
print结果:
['coy', 'yangchen', 'hanhan']
也可以定义任何元素分割
s = 'coy,yangchen,hanhan' l1 = s.split(',') print(l1)
print结果:
['coy', 'yangchen', 'hanhan']
s = 'coyyangchenhanhan' l2 = s.split('c') print(l2)
print结果:
['', 'oyyang', 'henhanhan']
也可以按照次数分割
s = 'coyyangchenhanhan' l3 = s.split('h') print(l3)
print结果:
['coyyangc', 'en', 'an', 'an']
按照次数分割后
s = 'coyyangchenhanhan' l3 = s.split('h',2) print(l3)
print结果:
['coyyangc', 'en', 'anhan']
(10)join list-------->str
s = ['coy','yangchen','hanhan'] s10 = ''.join(s) print(s10)
print结果:
coyyangchenhanhan
也可以用空格来连接
s = ['coy','yangchen','hanhan'] s10 = ' '.join(s) print(s10)
print结果:
coy yangchen hanhan
但是必须列表里必须是字符串否则报错
(11)find,index
通过元素找索引
s = 'coyyangchenhanhan' s11 = s.find('c') s12 = s.find('coy') print(s11) print(s12) s13 = s.find('c',1) print(s13)
print结果:
index
s = 'coyyangchenhanhan' s11 = s.index('c') s12 = s.index('coy') print(s11) print(s12) s13 = s.index('c',1) print(s13)
区别在于,find没找到就-1 ,index没找到就报错
(12)len
len 测量个数
s = 'coyyangchenhanhan' print(len(s))
print结果:
17
(13)count
元素出现的个数
s = 'coyyangchenhanhan' print(s.count('h'))
print结果:
17
(14)format
格式化三种用法
第一种 s = "我叫{},今年{},爱好{}" s12 = s.format('coy','25','hanhan') print(s12) 第二种 s = "我叫{0},今年{1},爱好{2},我依然叫{0}" s13 = s.format('coy','25','hanhan') print(s13) 第三种 s = "我叫{name},今年{age},爱好{hobby}" s14 = s.format(age=25,hobby='hanhan',name='coy') print(s14)
(15)is系列
name='jinxin123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成