节内容
- 数据类型介绍及格式化输出
- 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,较运算符和逻辑运算符优先级
![](https://i-blog.csdnimg.cn/blog_migrate/6ec8910c98fd4af86783af721bf308b2.png)
(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()) #字符串只由数字组成