基本数据类型
一
整形
1、用途
年龄 生日 整数类型
整形()内能待转换的类型只能是纯数字
进制转换(******)
print(bin(100)) # 将十进制的100转换成二进制对应的数 0b1100100
print(oct(100)) # 将十进制的100转换成八进制对应的数 0o144
print(hex(100)) # 将十进制的100转换成十六进制对应的数 0x64
0b开头表示二进制数
0o开头表示八进制数
0x开头表示十六进制数
int的进制转换:
print(int('0b1100100',2)) ----->二进制转化成十进制
print(int('0o144',8))----->八进制转化成十进制
print(int('0x64',16)) ----->十六进制转化成十进制
二
浮点型
1.用途:身高 体重 薪资...
浮点型()内能待转换的类型只能是小数和整数
三
字符串类型
1.用途:名字,性别,国籍,地址等描述信息
2.定义:在单引号\双引号\三引号内,由一串字符组成(注意:""" """和''' ''' 可以用作多行注释)
3.优先掌握的操作:
3.1 按索引取值(正向取+反向取) :都能取
'''索引是从0开始的'''(字符串索引只能取,不能改)
print(name[0])
print(name[-1]) # -1表示最后一个元素
print(name[8])
print(name[-4])
正数表示从左往右 负数从右往左
3.2 切片(顾头不顾尾,步长)
print(name[-1:-5:-1]) # 默认的切片方向都是从左往右 -1修改成从右往左
3.3 长度len
'''统计字符串里面的字符个数'''
空格也算
3.4 成员运算in和not in
3.5 移除指定的首尾字符或空白移除strip
移除左侧 lstrip 移除右侧rstrip
3.6 切分split
‘’‘按照指定字符切割字符串’‘’
res = 'jason|123|read'
print(res.split('|'))
※指定切割的字符不保留
※切割之后的结构是一个列表(重要)
res.split('|', maxsplit=1) --->从左往右切割指定的次数(不指定默认从左往右切)
print(res.rsplit('|',maxsplit=1))--->从右往左切割指定的次数
3.7 循环
for i in name:
print(i) ------> 依次获取字符串中单个单个的字符
3.8 字符串能把所有类型转为字符串类型,加引号即可
print(type(str(18)))-------->可以转
print(type(str(11.11)))------>可以转
print(type(str('hello')))------>可以转
print(type(str([1,2,3,4])))------>可以转
print(type(str({'name':'jason'})))------>可以转
print(type(str(True)))------>可以转
3.9判断是否是纯数字 isdigit
小例题
guess_age = input('请输入您的年龄>>>:')
# 判断用户输入的是否是纯数字
if guess_age.isdigit():
# 将字符串的数字转为整型的数字
guess_age = int(guess_age)
else:
print('请输入纯数字')
了解知识点:
1.将所有的英文字母转成大写 upper()
2.将所有的英文字母转成小写 lower()
小例题:
"""图片验证码校验 忽略大小写"""
code = 'NaRTs6'
my_code = input('code>>>:')
if code.upper() == my_code.upper():
print('验证码正确')
3.字符串内部所有的英文字母是否是全大写 isupper()
4.字符串内部所有的英文字母是否是全小写 islower()
5.判断字符串是否以什么开头 startswith()
6.判断字符串是否以什么结尾 endswith()
7.字符串格式化输出 %s %d format
第一种 与%s一致 按照个数位置 一一传值
res = 'my name is {} my age is {}'
print(res.format('jason',18))
第二种 按照索引取值 可以反复使用
res = 'my name is {0} my age is {1} {0} {0} {0}'
print(res.format('jason',18))
第三种 指名道姓取值 可以反复使用
res = 'my name is {name} my age is {age} {name} {name} {name}'
print(res.format(name='jason',age=18))
8.统计字符串中 指定字符出现的个数
res = 'jason a a a a sdf se sdf we ras dsa dw e asdsa dwqd sadsa dsadas'
print(res.count('a', 1, 10)) --->指定范围统计(顾头不顾尾)
9.将所有英文单词首字母大写 title
10.首字母大写,后面统一变小写 capitalize
11.判断非数字 特殊符号 或判断是否有纯字母组成,汉字也算是字母 isalpha
12.替换 replace
print(res.replace('egon','SB',1)) ---> 局部替换,只替换开头一次
13. 将列表多个元素拼接成字符串
res1 = ['jason','egon','kevin','tony',123]
print('|'.join(res1)) ---> 只能是字符串类型拼接,后面的那个数字整形拼接不了
四
列表类型
内置方法:
※中括号括起来 内存可以存放多个元素
※元素与元素之间逗号隔开 元素可以是任意数据类型
※能够支持for循环的数据都能被 list转成列表
其中包括:字符串、列表、字典
1.优先掌握的操作
1.1 索引取值 (正向取+反向取)
1.2 切片操作 (顾头不顾尾,步长)
print(name_list[0:2])------->顾头不顾尾
print(name_list[0:2:2])------>(******)
print(name_list[-1:-3:-1])------>反向操作
1.3 统计列表中元素的长度 len()
1.4 列表的元素CURD (增删改查)
小例题:
name_list = ['jason', 'egon', 'tony']
改的概念:
name_list[1] = 'yuan hao'
增的概念:末尾增加单个元素(append)
name_list.append('kevin')
name_list.append([11,22,33,44])
插入元素(insert)
name_list.insert(0,'jack') --->按照索引位置插入元素
扩展列表(extend)
l1 = [11,22,33,44,55,66,77]
for i in l1:
name_list.append(i)
print(name_list)
name_list.extend(l1) --->extend等价于for+append(增的概念)
删的概念:
通用的删除操作 (del)
del name_list[1] --->按照索引位置删除
指名道姓的删除 (remove)
res1 = name_list.remove('tony') --->指名道姓的删除
默认弹出尾部元素删除和默认指定索引位置的元素删除 (pop)
res = name_list.pop()
res = name_list.pop(1)
1.5 统计列表中某个元素出现的次数 count()
1.6 清空列表 clear()
1.7 排序 默认升序用 sort()
小例题:
l2 = [11,88,22,44,33,77,66,55]
l2.sort()
降序用reverse()
l2.sort(reverse=True)
print(l2)
倒序用reverse()
l2.reverse()
五
可变不可变类型
"""
可变类型
值改变 内存地址不变
不可变类型
值改变 内存地址一定变
"""
示例:
不可变类型
a = 1
print(id(a)) --->145736875867745
a = 2
print(id(a)) --->140736875403024
可变类型
l1 = [11,22]
print(id(l1)) --->2133952624128
l1.append(666)
print(id(l1)) --->2133952624128