继续之前的练习
本章开始(其实上一章就有了)有大量习题需要使用从本书的推荐网址中下载资源(www.pearsonhighered.com/gaddis),笔者能力有限暂时没找到,对于这类题将会选择忽略。介于这一点,对此书的好感度降为0。
本章介绍Python中序列的概念,探讨两种常见Python序列——列表和元组的使用,学习使用列表进行类似数组的操作,例如在列表中存储对象,遍历列表、搜索列表中的元素以及计算列表中元素的总和和平均值。本章还讨论了列表解析表达式、切片和许多列表方法,涉及一维和二维列表。本章还包括对matplotlib包的讨论,以及如何使用它根据列表绘制图表。
#1销售总额
def main():
account=[]
for i in range(7):
print("Please enter the sales volume for Day",i+1,":",end='')
account.append(float(input()))
total=0
for i in account:
total+=i
print("The total sales volume for one week is",total)
if __name__=="__main__":
main()
#2彩票号码生成器
import random
def main():
nums=[]
for i in range(7):
nums.append(random.randint(0,9))
for i in nums:
print(i)
if __name__=="__main__":
main()
#3雨量统计
def main():
rain=[]
total=0
for i in range(12):
print("Please enter Month",i+1,"'s rainfall:",end='')
rain.append(float(input()))
total+=rain[i]
print("The total rainfall is",total)
print("The average rainfall is",f'{total/12:.2f}')
print("The max rainfall among 12 months is",max(rain))
print("The min rainfall among 12 months is",min(rain))
if __name__=="__main__":
main()
#4数字分析程序
def main():
nums=[]
total=0
for i in range(20):
print("Please enter No.",i+1,"number:",end='')
nums.append(float(input()))
total+=nums[i]
print("The min number among list is", min(nums))
print("The max number among list is",max(nums))
print("The sum of list is",total)
print("The average of list is",f'{total/20:.2f}')
if __name__=="__main__":
main()
#6比n大
def function(nums,n):
nums_=[i for i in nums if i>n]
print(nums_)
def main():
nums=[1,2,3,4,5,6,7,8,9,0]
n=5
function(nums,n)
if __name__=="__main__":
main()
#7驾照考试
def main():
#1-A 2-B 3-C 4-D
answer=['O',
'A','C','A','A','D',
'B','C','A','C','B',
'A','D','C','A','D',
'C','B','B','D','A']
file=open('student.txt','r')
print("Has read student's file")
i=0;yes=no=0
wrong=[]
for line in file:
if line=='\n':
break
i+=1
s=line.rstrip('\n')
print(i)
if s==answer[i]:
yes+=1
else:
wrong.append(i)
no+=1
if yes>=15:
print("This student passed")
else:
print("This student failed")
print("The number of correct questions:",yes)
print("The number of wrong questions:",no,"including",wrong)
if __name__=="__main__":
main()
#11罗素幻方
def judge(nums):
diagonal=nums[0][0]+nums[1][1]+nums[2][2]
diagonal_=nums[0][2]+nums[1][1]+nums[2][0]
if diagonal!=diagonal_:
return False
for i in range(3):
sum_=0
for j in range(3):
sum_+=nums[i][j]
if sum_!=diagonal:
return False
for i in range(3):
sum_=0
for j in range(3):
sum_+=nums[j][i]
if sum_!=diagonal:
return False
return True
def main():
print("Please enter the 3*3 matrix:")
nums=[]
for i in range(3):
num=[]
for j in range(3):
print("The",i+1,"x",j+1,"is",end='')
x=int(input())
num.append(x)
nums.append(num)
if judge(nums):
print("This is")
else:
print("This isn't")
if __name__=="__main__":
main()
#12素数生成
def function(x):
if x==2: return True
if x<2: return False
if x%2==0:return False
i=3
while i*i<=x:
if x%i==0: return False
i+=2
return True
def main():
n=int(input("Please enter a number:"))
nums=[i for i in range(2,n+1)]
for i in nums:
if function(i):
print(i,"is prime number.")
else:
print(i,"is resultant number.")
if __name__=="__main__":
main()
#14支出饼图
import matplotlib.pyplot as plot
def main():
tags=[]
cost=[]
file=open("expenditure.txt",'r')
line=file.readline()
while line!='' and line!='\n':
tags.append(line.rstrip('\n'))
if line != '' and line != '\n':
line=file.readline()
cost.append(float(line.rstrip('\n')))
line=file.readline()
plot.pie(cost,labels=tags)
plot.title("The cost for one month")
plot.show()
if __name__=="__main__":
main()