1.使用while循环编写程序求解鸡兔同笼的问题。已知同一个笼子里一共有h只鸡和兔,鸡和兔的总脚数为f只,其中,h和f由用户输入,求鸡和兔各有多少只?
h=int(input("please input the total number of animals:"))
f=int(input("please input the total number of feet:"))
n=0
while n<h:
if 2*n+4*(h-n)==f:
break
else:
n+=1
print('鸡和兔的数量分别为:{},{}'.format(n,h-n))
2. 中国汉代有位大将叫韩信,他每次集合部队,只要求部下先后按1~3、1~5、1~7报数,然后再报告一下各队每次报数的余数,他就知道到了多少人。他的这种巧妙算法,人们称为“鬼谷算”,也叫“隔墙算”,或称为“韩信点兵”,外国人还称它为“中国剩余定理”。即有一个数,用3除余2,用5除余3,用7除余2,求0~1000中这样的数并输出结果。
L=[]
for i in range(0,1001):
if i%3==2 and i%5==3 and i%7==2:
L.append(i)
print(L)
3.假设当前目录下有一个文件名为score1.txt的文本文件,存放着某班学生的《计算机导论》课程成绩,共有学生学号、平时成绩和期末成绩三列,每行之间采用空格分割。编写程序完成下列功能:
(1)根据平时成绩占40%、期末成绩占60%的比例计算总评成绩(取整数),并将每个学生的学号和总评成绩写入另一个文件score2.txt中,每个学生的数据占一行;
(2)在屏幕上输出本班学生总人数。
(3)根据总评成绩,统计并输出90以上,80-89,70-79,60-69,60分一下个成绩档学生人数,并输出班级总平均分(保留2位小数)。
nameHandle=open('score1', 'r')
nameHandle1=open('score2', 'w')
L1=[]
L2=[]
c=0
string=''
for line in nameHandle:
for s in line:
if s.isspace() is False:
string+=s
else:
L2.append(string)
string = ''
L2.append(string[:-1])
c+=1
new_L = list(filter(None, L2))
L1.extend([new_L])
L2=[]
new_L=list(filter(None,L1))
print('学生的总人数为:{}'.format(c))
L=[]
for i in range(0,len(L1)):
grade=round(0.4*int(L1[i][1])+0.6*int(L1[i][2]))
L.append(grade)
grade=0
o=0
p=0
q=0
r=0
s=0
total=0
for i in range(len(L)):
if int(L[i])>90:
o+=1
if 80<=int(L[i])<=90:
p+=1
if 70<int(L[i])<=79:
q+=1
if 60<=int(L[i])<69:
r+=1
if int(L[i])<60:
s+=1
total+=L[i]
nameHandle1.write(L1[i][0]+' ')
nameHandle1.write(str(L[i])+'\n')
ave=round(total/len(L),2)
print('班级的总平均分为:{}'.format(ave))
print('90以上,80-89,70-79,60-69,60分以下的学生人数分别为:{},{},{},{},{}'.format(o,p,q,r,s))