《Python习题选编.doc》由会员分享,可在线阅读,更多相关《Python习题选编.doc(20页珍藏版)》请在金锄头文库上搜索。
1、Python习题选编华东师大信息学院计算中心一程序结构与算法部分:1. 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。参考代码:x = int(input(Please enter first integer: )y = int(input(Please enter second integer: )if (x = y): print(两数相同!)elif (x y): print(较大数为:,x)else: print(较大数为:,y);2. 写一个算法(流程图和python程序):输入三个数,输出其最大者。参考代码:a,b,c=3,4,5if a = b: if c
2、 b: print (b是最大的数) else: print (c是最大的数)else: if c a: print (a是最大的数) else: print (c是最大的数)3. 使用Python编程,求1100间所有偶数的和。参考代码:sum=0for x in range(1,101): if x % 2=0: print(x) sum=sum+xprint(累加和是:,sum)4. 用Python编写程序,输入一年份,判断该年份是否是闰年并输出结果。注:凡符合下面两个条件之一的年份是闰年。(1) 能被4整除但不能被100整除。(2) 能被400整除。参考代码:year = int(in
3、put(Please enter the year: )if (year%4=0 and year%100!=0) or (year%400=0): print(year,is a leap year.)else: print(year,is not a leap year.)5. 用Python编程,假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?参考代码:cunkuan = 10000 #本金10000元years=0while cunkuan 100: grade = 输入错误!elif score = 90: grade = Aelif sco
4、re = 80: grade = Belif score = 70: grade = Celif score = 60: grade = Delif score = 0: grade = Eelse: grade = 输入错误!print(grade)7. 猜数游戏。预设一个09之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!”。参考答案:num=7while True: guess=int(input(请输入你猜的数(09):) if guess = num: print(恭喜!你猜中了!) b
5、reak; elif guess num: print(太大) else: print(太小)8. 输入一个数,判断这个数是否为素数,并输出判断结果。(所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。下图为参考流程图)参考答案:import mathn=int(input(请输入一个数:)x=int(math.sqrt(n)i,w=2,0for i in range (2,x+1): if n%i=0: w=1if w=1: print(n,不是素数。)else: print(n,是素数。)或import mathn=int(input(请输入一个数:)i,w=2,0while
6、 i = int(math.sqrt(n) and w=0: if n%i = 0: w = 1 break else: i = i+1if w=0: print(n,是素数!)else:print(n,不是素数!)或import mathn=int(input(请输入一个数:)i=2while i = 60: second = second-60 minute += 1minute+=5if minute = 60: minute = minute-60 hour += 1if hour = 24: hour = 0print(%d:%d:%d%(hour,minute,second)10.
7、 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程,找出1000之内的所有完数,并输出该完数及对应的因子。(枚举法)参考答案:m=1000for a in range(2,m+1): s=a L1= for i in range(1,a): if a%i=0: s-=i L1.append(i) if s=0: print(完数:%d,因子包括:%a,end=) for j in range(1,len(L1): print(%d%L1j,end=,) print(n)11编程,解决猴子吃桃问题。猴子第一天摘下若干个桃子,当
8、即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。(迭代法)参考答案:day=9x=1while day0: x=(x+1)*2 day-=1print(total=,x)二输入输出与文件部分:1. 编写一个python程序,输入两个数,输出两数之和。参考代码:x = int(input(Please enter first integer: )y = int(input(Please enter second integer: )print(The su
9、m is:);print(x+y);2.在当前目录下有一个文件名为temp.txt的文件,存放着上海从2014年3月10日(周一)到3月16日(周日)间一周的最高和最低气温(单位为摄氏度)。其中,第一行为最高气温,第二行为最低气温。编程,找出这一周中第几天最热(按最高气温计算)?最高多少度?这一周中第几天最冷(按最低气温计算)?最冷多少度?参考答案:flname=temp.txtf=open(flname)ht=(f.readline().strip()L1=list(ht.split(,)lt=(f.readline().strip()L2=list(lt.split(,)f.close()for i in range(len(L1): L1i=int(L1i) L2i=int(L2i)maxVal=L10maxDay=0minVal=L20minDay=0for i in range(1,len(L1): if L1imaxVal: maxVal=L1i maxDay=i if L2i=10: k+=1 else: k=0avg=int(sum/len(L3)print(周平均气温为:,avg)if k=5: print(上海这周已入春。)