《毫无障碍学Python》邓文渊著 学习笔记
1.列表结构(List) (又称清单,即为其他语言的数组Array)
列表的使用:列表名 = [元素1,元素2,…] 中括号隔开,元素数据类型可同可不同,获取元素值方法:下标访问(下标从0开始,可为负值表示倒数第几个元素)
list1 = [23,'Apple',True]
print(list1[1])
print(list1[-1])
.
多维列表
list2 = [["Harry",1234],["Marry",4567],["Tonny",9876]]
print(list2[0])
print(list2[2][0])
1.1.range函数
range函数 功能:创建整数有序列表
range函数语法三种:1、2、3个参数
1参:变量列表 = range(整数型) 元素:0~整数型-1
list3 = range(5) #即 list3 = [0,1,2,3,4]
.
2参:变量列表 = range(起始值,终止值)(若起始值>终止值->产生空列表) 元素:起始值~终止值-1
list4 = range(-5,5) #即 list4 = [-5,-4,-3,-2,-1,0,1,2,3,4]
.
3参:变量列表 = range(起始值,终止值,间隔值)
list5 = range(-1,5,3) # list5 = [-1,2]
list6 = range(4,-1,-2) #间隔值可负,此时必要起始值>终止值且此时元素:起始值~终止值+1
print(list5[-1])
print(list6[-1])
2.循环
##循环命令:
- for命令执行固定次数循环
- while命令执行不固定次数循环
2.1 for循环(通常用于固定次数循环)
.
for循环 通常用于固定次数循环
语法结构 for 变量 in 列表:
程序块
listFor = ["Apple","Banana","Watermelon"]
for f in listFor: #系统会将列表元素依次作为变量值,每次改变变量值后执行一次程序块
print(f,end=",")
print("\n")
for i in range(1,11):
print(i,end=",")
print("\n")
#计算正整数的和
sum = 0
n = int(input("Please input a number:"))
for n in range(1,n+1):
sum+=n
print("The sum of 1 to %d is %d"%(n,sum))
##for嵌套循环
#九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%-2d"%(j,i,i*j),end=" ")
print()
##break命令(跳出循环),continue命令(跳出本次循环,进行下次循环)
for i in range(1,6):
if(i==3):
continue
print(i)
print()
for i in range(1,6):
if(i==3):
break
print(i)
2.1.1 for…if…else循环
for 变量 in 列表:
程序块1
if(条件表达式):
程序块2
break
else:
程序块3
#判断是否质数
n = int(input("Please input a number can judge whether a prime number(质数):"))
if(n==2):
print("prime number")
else:
for i in range(2,n):
if(n%i==0):
print("not prime number")
break
else:
print("prime number")
2.2while循环
while循环 通常用于没有固定次数的循环
while(条件表达式): #括号可省略
程序块
total = i = 0
while(i<10):
i+=1
total+=i
print(total)
3.高级列表操作
令 list1 = [1,2,3,4,5,6],x = [8,9] |
---|
list1*n 列表重复n次 |
list1[n1:n2] 取出n1~n2-1元素 n1、n2为下标! |
list1[n1:n2:n3] 取出n1~n2-1元素,间隔n3 |
del list1[n1:n2] 删除n1~n2-1元素 |
del list1[n1:n2:n3] 删除n1~n2-1元素,间隔n3 |
n = len(list1) 返回列表中元素数量 |
n = min(list1) 返回元素最小值 |
n = max(list1) 返回元素最大值 |
n = list1.index(n1) 取首个值为n1元素的下标 |
n = list1.count(n1) n1元素出现的次数 |
list1.append(n1) 将n1作为元素加到列表最后 |
list1.extend(x) 将列表x中元素逐一加至列表最后 |
list1.insert(n,n1) 在位置n加入n1元素 |
n = list1.pop() 取列表最后元素并删除(括号内数值为n,则对下标为n的元素操作) |
list1.remove(n1) 删除首次出现的n1元素 |
list1.sort() 将列表升序排列 |
#append 输入成绩,-1结束,计算总分和平均分
score = []
total = inscore = 0
while(inscore != -1):
inscore = int(input("Please input student score:"))
score.append(inscore)
score.pop(-1) #删除列表最后元素“-1”
print("The sum of students numer is %d"%(len(score)))
for i in range(0,len(score)):
total +=score[i]
average = total/len(score)
print("The sum of score is %d and average is %.2f"%(total,average))
4.元组(Tuple)
.
元组结构与列表完全相同,不同 元组个数及元素值不可改变 而列表可变
元组语法: 元组名 = (元素1,元素2,…) #元组小括号,列表中括号
#列表高级方法除改变元素个数及元素值得方法皆可用于元组
#列表和元组的相互转换:
tuple1 = (1,2,3)
list1 = list(tuple1) #元组->列表
list2 =[9,8,7,6]
tuple2 = tuple(list2) #列表->元组
5.字典Dict
语法: 字典名称 = {键1:值1,键2:值2,键3:值3,…}
dict1 = {"Banana":15,"Watermelon":32,"Apple":45} #元素在字典中排列随机,不可dict1[0]访问
print(dict1["Apple"]) ##"键"作为下标返回"值",因此"键"必须唯一,"值"可重复
dict1["Orange"] = 25 ##新增元素,即设定新“键”,新“值”
##删除字典
del dict1["Banana"] ##删除字典中特定元素 del 字典名 [键]
dict1.clear() ##删除字典中所有元素 字典名.clear()
del dict1 ##删除字典,后字典变量不存在了 del 字典名
5.1 高级字典操作
若 dict1 = {“Joy”:15,“Lisa”:21} |
---|
len(dict1) 返回字典元素数量 |
dict1.clear() 删除字典中所有元素 |
dict1.copy 复制字典 dict2 = dict1.copy() |
dict1.get(键,值) 返回键对应的值 ,若键不存在,则返回参数中的值 |
键 in dict1 检验“键”是否存在 b = “Joy” in dict1 #b=True |
dict1.items() 返回以 “键——值” 组为元素的组合 |
dict1.keys() 返回以“键”为组合的组合 |
dict1.setdefault(键,值) 与get()类似,若键不存在,则以参数创建新元素 |
dict1.values() 返回以“值”为元素的组合 |
(1)字典Dict中:keys 键组合、values值组合、items键-值组合
dict2 = {"Lily":70,"Tom":65,"Jery":89}
dict2["Jone"] = 83 #新增“键-值”
listkey = list(dict2.keys())
listvalue = list(dict2.values())
for i in range(len(listkey)):
print("%s's score is %d"%(listkey[i],listvalue[i]))
(2)字典Dict的get、setdafault方法
dict1 = {"Lily":70,"Tom":65,"Jery":89}
dict1["Jon"] = 90 #返回键对应的值 ,若键不存在,则返回参数中的值
n = dict1.get("Lily",100) #n = 70
print(n)
n = dict1.setdefault("Mary") #dict1 = {"Lily":70,"Tom":65,"Jery":89,"Marry":Null}
n = dict1.setdefault("Hary",76) #dict1 = {"Lily":70,"Tom":65,"Jery":89,"Harry":76}