Python习题选编

华东师大信息学院计算中心

一.程序结构与算法部分:

1. 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。

参考代码:

x = int(input(\y = int(input(\if (x == y):
print(\两数相同!\elif (x > y):
print(\较大数为:\else:
print(\较大数为:\

2. 写一个算法(流程图和python程序):输入三个数,输出其最大者。

参考代码:

a,b,c=3,4,5 if a <= b: if c < b:
print (\是最大的数\ else:
print (\是最大的数\else:
if c < a:
print (\是最大的数\ else:
print (\是最大的数\

3. 使用Python编程,求1~100间所有偶数的和。

参考代码:

sum=0
for x in range(1,101): if x % 2==0: print(x) sum=sum+x print(\累加和是:\

4. 用Python编写程序,输入一年份,判断该年份是否是闰年并输出结果。

注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

参考代码:

year = int(input(\
if ((year%4==0 and year0!=0) or (year@0==0)): print(year,\else:
print(year,\

5. 用Python编程,假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?

参考代码:

cunkuan = 10000 #本金10000元 years=0
while cunkuan<20000: years+=1
cunkuan=cunkuan*(1+0.0325) print(str(years)+\年以后,存款会翻番\

6. 从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。

参考答案:

score=int(input('请输入成绩(0~100):'))
if score > 100:
grade = \输入错误!\elif score >= 90: grade = 'A' elif score >= 80: grade = 'B' elif score >= 70: grade = 'C' elif score >= 60: grade = 'D' elif score >= 0: grade = 'E' else:
grade = \输入错误!\print(grade)

7. 猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!”。

参考答案:

num=7 while True:
guess=int(input('请输入你猜的数(0~9):')) if guess == num:
print(\恭喜!你猜中了!\ break;
elif guess > num: print(\太大\ else:
print(\太小\

8. 输入一个数,判断这个数是否为素数,并输出判断结果。

(所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。下

图为参考流程图)

参考答案:

import math
n=int(input(\请输入一个数:\x=int(math.sqrt(n)) i,w=2,0
for i in range (2,x+1): if n%i==0: w=1 if w==1:
print(n,\不是素数。\else:
print(n,\是素数。\ 或
import math
n=int(input('请输入一个数:')) i,w=2,0
while i <= int(math.sqrt(n)) and w==0: if n%i == 0: w = 1 break else:
i = i+1 if w==0:
print(n,\是素数!\else:
print(n,\不是素数!\或
import math
n=int(input('请输入一个数:')) i=2
while i <= int(math.sqrt(n)) : if n%i == 0:
print(n,\不是素数!\ break else:
i=i+1 else:
print(n,\是素数!\

9. 输入一个时间(小时:分钟:秒),输出该时间经过5分30秒后的时间。

参考答案:

hour,minute,second=input('请输入一个时间(h:m:s):').split(':') hour=int(hour) minute=int(minute) second=int(second) second+=30 if second >= 60:
second = second-60 minute += 1 minute+=5 if minute >= 60:
minute = minute-60 hour += 1 if hour == 24: hour = 0
print('%d:%d:%d'%(hour,minute,second))

10. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程,找出1000之内的所有完数,并输出该完数及对应的因子。(枚举法)