PythonDay03-基础数据类型及使用
一、基本数据类型
int 123,4,1 +-/
bool False,True 判断真假
str 'ads','a' +int 存储少量的数据
list [12,'a',True] 存储大量的数据
tuple (12,'a',True) 存储大量的数据,元素不可以改变
dict {'name':'liubin'} 存储大量关联的数据,查询速度快
二、基本数据类型的使用
数据类型之间的转换
1、str<---->bool
s = ''
print(bool(s)) #False
s = '100'
print(bool(s)) #True
#应用:
s = input('请输入内容:')
if bool(s):
print('有内容')
else:
print('没有内容')
s = True
print(s,type(s)) #True <class 'bool'>
print(str(s),type(str(s))) #True <class 'str'>
2、bool<---->int
a = 0
b = 1
c = -1
print(bool(a),bool(b),bool(c)) #False True True
a = True
b = False
print(int(a)) #1
print(int(b)) #0
3、str<---->int str的元素必须全部是数字
s = '1231243'
print(int(s),type(int(s))) #1231243 <class 'int'>
a = 3424
print(str(a),type(str(a))) #3424 <class 'str'>
4、int bit_length输出int数据有效的二进制位数
i = 123
print(i.bit_length()) #7 0111 1011
i = 42
print(i.bit_length()) #6 0010 1010
字符串的操作
1、字符串索引 对字符串索引切片出的数据类型仍是字符串
s = 'python22期全栈'
s1 = s[0]
s2 = s[-1]
print(s1,type(s1)) #p <class 'str'>
print(s2,type(s2)) #栈 <class 'str'>
2、切片 顾头不顾尾
'''
按照索引 s1[index]
按照切片 s1[start_index:end_index+1]
按照步长 s1[start_index:end_index+1:2]
反向取 s1[start_index:end_index:-1]
'''
s = 'python22期全栈'
s1 = s[0:5]
s2 = s[:5]
s3 = s[6:]
s4 = s[:-1:2]
s5 = s[-1:-6:-1]
print(s1) #pytho
print(s2) #pytho
print(s3) #22期全栈
print(s4) #pto2期
print(s5) #栈全期22
3、字符串的大小写 upper、lower
upper、lower不会对原字符串进行操作,都是产生一个新的字符串
s = 'liuiBin'
s1 = s.upper()
s2 = s.lower()
print(s1) #LIUIBIN
print(s2) #liuibin
应用:验证码
userName = input('请输入用户名:')
userPasswd = input('请输入密码:')
code = 'Qfs6'
print(code)
yourCode = input('请输入验证码(不区分大小写):')
if yourCode.lower() == code.lower():
if userName == 'liubin' and userPasswd == '123456':
print('登录成功')
else:
print('账号或密码错误,请确认后再登录')
else:
print('验证码错误,请重新输入')
4、判断字符串以什么开头 startswith
s = 'liubinSmart'
print(s.startswith('l')) #True
print(s.startswith('liu')) #True
print(s.startswith('S',6,8)) #True
5、字符串的替换 replace,默认是全部替换
msg = 'liubin is Smart;liubin is clever'
msg1 = msg.replace('liubin','zlt') #默认全部替换
msg2 = msg.replace('liubin','zlt',1)
print(msg) #liubin is Smart;liubin is clever
print(msg1) #zlt is Smart;zlt is clever
print(msg2) #zlt is Smart;liubin is clever
6、切片split 默认按照空格切,返回值是一个列表
s9 = '太白 女神 吴超'
s10 = s9.split()
print(s9) #太白 女神 吴超
print(s10) #['太白', '女神', '吴超']
s11 = ':hanamichi:nvshen:zlt'
s12 = s11.split(':')
s13 = s11.split(':',2)
print(s11) #:hanamichi:nvshen:zlt
print(s12) #['', 'hanamichi', 'nvshen', 'zlt']
print(s13) #['', 'hanamichi', 'nvshen:zlt']
7、join字符串的连接
s9 = 'liubin'
s10 = '+'.join(s9)
print(s9 + '\t' + s10) #liubin l+i+u+b+i+n
s11 = ['太白','女神','吴超']
s12 = ':'.join(s11)
print(s11) #['太白', '女神', '吴超']
print(s12) #太白:女神:吴超
8、count统计字符串某个元素的个数
s9 = 'asdfeadsfgfqadgaaaaafq3eaf'
print(s9.count('a')) #9
9、format格式化输出
msg = '我叫{}今年{}性别{}'.format('liubin',25,'nan')
print(msg)
msg = '我叫{0}今年{1}性别{2}我依然是{0}'.format('liubin',25,'nan')
print(msg)
msg = '我叫{name}今年{age}性别{sex}'.format(sex='男',name='liuibin',age=12)
print(msg)
#我叫liubin今年25性别nan
#我叫liubin今年25性别nan我依然是liubin
#我叫liuibin今年12性别男
10、is
name = 'liubin123'
print(name.isalnum()) #True字符串由数字或字母组成
print(name.isalpha()) #False字符串只有字母
print(name.isdecimal()) #False字符串只有十进制数字
11、strip 去除空白
s9 = ' \nliubin\t'
print(s9)
s10 = s9.strip()
print(s10)
# 可以指定去除字符 了解
s11 = 'qwerliubinasdf'
s12 = s11.strip('qrweasdf')
print(s11)
print(s12)
三、循环
for循环
s = '老男孩最好的讲师:太白'
for i in s:
print(i)

浙公网安备 33010602011771号