基本数据结构(int,布尔,字符串,列表)
回顾:
T='我是%s,进度100%%'%('姓名')
字符串格式化内想要输出%,需要写两个%%
================今日内容================
- 整数 int类 int()
-x.bit_length()
#用最短的二进制表示十进制的值,输出二进制位数
#示例
v=15 data=v.bit_length() print(data) #输出15用二进制表示的位数,4
- 布尔值 bool类 bool()
-bool()中0与''输出False,其他都是输出True
- 字符串 str类 str()
-类功能
-大写功能: x.upper()
#示例 v1='alex' v2=v1.upper() print(v2) #v2全部变大写 ALEX
-小写功能: x.lower()
#示例 v1='alEx' v2=v1.lower() print(v2) #v2全部变小写
-首字母变大写: x.capitalize()
#示例 v1='alex' v2=v1.capitalize() print(v2) #输出 Alex
-去除首尾空格: x.strip()
#示例 v1=' alex ' v2=v1.strip() print(v2) #输出:alex
#示例 name=input('请输入:') v=name.strip() if v=='alex': print('进入')
-去除左边或右边空格: x.lstrip()或x.rstrip()
-替换: x.replace('a','b') #a为x中原值,b为替换值
#示例
v1="SCII第一次以规范标准的型态以规范标准的型态以规范标准的型态" v2=v1.replace('标准','####') print(v2) 输出:SCII第一次以规范####的型态以规范####的型态以规范####的型态
-分割: x.split('a') # x中以a进行分割,产生列表
x.split('a',n) # x中以第n个a进行分割,产生列表
#示例1 v1="SCII第一次以规范标准的型态以规范标准的型态以规范标准的型态" v2=v1.split('标准') print(v2) #输出: ['SCII第一次以规范', '的型态以规范', '的型态以规范', '的型态']
#示例2
v1="SCII第一次以规范标准的型态以规范标准的型态以规范标准的型态"
v2=v1.split('标准',2)
print(v2) #输出: ['SCII第一次以规范', '的型态以规范', '的型态以规范标准的型态']
-判断当前字符串中是否全部是数字: x.isdecimal() ;注:x.isdecimal() 输出的是True/False
#示例 v1='123' v2=v1.isdecimal() print(v2) #输出: True
#示例:查看字符串v中有几个数字
v='asdf1w34f55'
a=0
for i in v:
if i.isdecimal():
a+=1
print(a)
-注:str类中的对原对象的操作,都不会改变原对象,只会生成一个新对象
-公共功能
-计算当前字符串长度: len(x)
#示例 v='徐芳名sdf' v1=len(v) print(v1) #输出: 6
-注:字符串的长度len(x)与字符串的位数是不同的,长度为6的字符串,最后一位是5,因为字符串中数位从0开始
-索引:列举字符串中对应的值
-单个值的索引: v[0] #字符串中数位从0开始,可用-1代表最后一位
#示例
v = "ASCII第一次以规范标准的型态发"
v1=v[0]
print(v1) #输出: A
-多个值的索引:v[0:6] #左边是起始位(包含),右边是终值为(不包含)
#示例 v = "ASCII第一次以规范标准的型态发" #v1=v[0:-1] #输出:ASCII第一次以规范标准的型态 #v1=v[0:] #输出:ASCII第一次以规范标准的型态发 #v1=v[0:1] #输出:A print(v1)
-根据步长,索引多个值: v[1:15:3]
#3是步长,表示空2个字符 ;#1或不写步长,表示步长为0
#示例 v = "ASCII第一次以规范标准的型态发" v1=v[1:15:3] print(v1) #输出:SI次范的
#示例 #字符串 "ASCII第一次以规范标准的型态发"遍历输出 v = "ASCII第一次以规范标准的型态发" i=0 a=len(v) while i<a: print(v[i],) #输出A
i+=1 #输出S
....
-for循环: for i in v: #将v中的每一个元素,都给挨个给i赋值一遍
#示例 v = "ASCII第一次以规范标准的型态发" for i in v: print(i) #输出:A #输出:S ......
=====================整数int,字符串str,布尔bool三者的转换===================
- 字符串或布尔值 -> 整数 int(字符串或布尔值)
- int(字符串):只能是纯数字的字符串才可转化成整数,含字符报错
- int(布尔值):True为1,False为0
- 字符串或整数 -> 布尔值 bool(字符串或整数)
- bool(字符串):空字符串''为False,其他为True
- bool(整数):0为False,其他为True
- 整数或bool值 -> 字符串
#示例
v=' '
a=bool(v)
print(a) #输出: True
#示例
#a=1 or 0 #输出:1
#a=0 or 2 #输出:2
#a=1 and 2 #输出:2
#a=0 and 1 #输出:0
print(a)
=======================================================================
- 列表 list类
- 类功能
- 列表中追加一个值(修改本身): x.append('aaa') #在x列表中最后添加一个新元素'aaa'
#示例
v = [11,22,33,44,"蒋毅"]
v.append('aaa')
print(v) #输出: [11,22,33,44,"蒋毅",'aaa']
#示例 #往列表v中添加用户输入元素,只要用户输入q不分大小写,程序结束输出列表 v=[] while True: a=input('请输入:') if a.lower()=='q': break v.append(a) print(v)
- 列表内指定位置添加元素(修改本身): x.insert(n,'b') #往x列表中添加一个'b'值,在n位置
- 注:列表中的元素位也是从0开始计数的
#示例
v=[11,22,33,44,"蒋毅"]
a='xxx'
v.insert(3,a) #在v列表的第3位添加'xxx'
print(v) #输出:[11,22,33,'xxx',44,"蒋毅"]
- 列表中元素反转顺序(修改本身): x.reverse() #x列表中所有元素顺序反转
#示例 v=[11,22,33,44] v.reverse() print(v) #输出:[44, 33, 22, 11]
- 公共功能
- 计算列表长度:len(x)
#示例
v = [11,22,33,44,"蒋毅"]
a=len(v)
print(a) #输出:5
- 索引:列举列表中对应的值 #与字符串相同
- 单个索引:v[0]
- 多个索引:v[0:5]
- 根据步长,索引v[0:5:2]
- for循环:for i in v: #把v列表中的每个元素遍历给i
#示例 v = [11,22,33,44,"蒋毅"] for i in v: print(i) #输出:11
22
...
- 替换: v[2]='xxx' #把v列表中的第2位元素替换成'xxx' ; v[2:4]=['a','b','c'] #把v列表中的第2位第三位元素替换成'a','b','c'
#示例
v = ['张勤学','成大经','成绩','刘龙华']
#v[3] = '吴国胜' #输出: ['张勤学','成大经','成绩','吴国胜']
#v[2:4]=['a','b','c'] #输出: ['张勤学','成大经','a','b','c']
#v[2]=['a','b','c'] #输出: ['张勤学','成大经',['a','b','c'],'刘龙华']
#v[2:3]=['a','b','c'] #输出: ['张勤学','成大经','a','b','c','刘龙华']
#v[0:]=[11,22,33] #输出:[11,22,33]
#v[2:3]='吴国胜' #输出: ['张勤学','成大经','吴','国','胜','刘龙华']
print(v)
- 删除: del v[n] #把v列表中的第n个值删除 ; del v[0:n] #把v列表中的第0个值到第n-1个值删除
#示例
v = ['张勤学','成大经','成绩','刘龙华'] del v[3] print(v) #输出:['张勤学','成大经','成绩']
-注:补充
- 列表中可以是:数字,字符串,布尔值,列表,这些元素可以根据自己的类功能或公共功能进行操作
#示例 li = [11,22,[6,"88991",7],33,True,"蒋毅",55] #v=li[2][1][4] #输出:1 #v=li[2][1].replace('1','5') #输出: 88995
#li[1]=33 #输出:
print(v)
-元祖 tuple类 : 元祖中的元素不能删除
- 类功能:无
- 公共功能:与列表一样
- 计算元祖长度:len(x)
- 索引元祖元素:x[n] #与列表相同方法
- for循环:#与列表相同方法
- 嵌套:元祖中可以有列表,列表中可以有元祖,元祖中的列表可以进行修改
#示例 #v = (11,22,[11,22,33],33,(9,1,2,"alex"),44) #v[2][1]=333 #输出:(11, 22, [11, 333, 33], 33, (9, 1, 2, 'alex'), 44)
#v[2].append(44) #输出:(11, 22, [11, 22, 33, 44], 33, (9, 1, 2, 'alex'), 44)
v[2][0:]=['aa','bb'] #输出:(11, 22,['aa','bb'], 33, (9, 1, 2, 'alex'), 44)
#print(v)
- 字典 dict类 #用 键值对 储存信息,每个键对应唯一的值,键不可以重复,但值可以重复
- 类功能
- 取值: v.get('n') # 字典v中查看键为'n'的值 #取值功能不会修改字典 #当键不存在时,值为None,不会报错
#示例 v = { "k1":'v1', # 键值对 "k2":'v2', # 键值对 } #v1=v.get('k1') #输出:v1
#v1=v.get('k3') #输出:None 但不会报错
print(v1)
- 公共功能
- 字典长度,即键值对个数: len(x)
#示例 v = { "k1":'v1', # 键值对 "k2":'v2', # 键值对 } v1=len(v) print(v1) #输出:2
- 索引:v['k'] #查找字典v中键为'k'的值,若k存在则输出对应的值,若k不存在则报错
#示例 v = { "k1":'v1', # 键值对 "k2":'v2', # 键值对 } v1=v['k1'] #输出:v1 v1=v['a'] #输出:报错 print(v1)
- 替换: v['k']=a #把a赋值给字典v中'k'键的值,若'k'键存在则替代它原有值,若'k'不存在则创建一个'k'键并赋给它新值a
#示例 v = { "k1":'v1', # 键值对 "k2":'v2', # 键值对 } #v['k2']=v3 #输出: {'k1': 'v1', 'k2': 'v3'} #v['k3']=v3 #输出: {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} print(v)
- 删除: del v['k'] #把字典v中键为'k'的键值对删除
#示例 v = { "k1":'v1', # 键值对 "k2":'v2', # 键值对 } del v['k1'] print(v) #示例
- for循环 :for i in v.keys(): #循环v字典中各键给变量i ; for i in v.values(): #循环字典v中各值给变量i ; for a,b in v.items(): #循环字典v中各键值对给变量a(键),b(值)
#示例 v = { "k1":'v1', # 键值对 "k2":'v2', # 键值对 } #for i in v.keys(): # print(i) #输出:k1,k2.... #for i in v.values(): # print(i) #输出:v1,v2.... #for a,b in v.item(): # print(a,b) #输出:k1 v1 k2 v2