sdut-python-实验八-异常
函数题:
6-1 jmu-python-判断质数
分数 10
作者 蔡莉白
单位 集美大学
本题要求实现一个函数,判断参数是否是质数,是的话返回True,否则返回False
注意:函数中要有异常处理,如果参数不是整数,返回False
函数接口定义:
def isPrime(num)
裁判测试程序样例:
▾
▾
/* 请在这里填写答案 */
num=input()
if isPrime(num):
print('yes')
else:
print('no')
输入样例1:
ab
输出样例1:
no
输入样例2:
1.1
输出样例2:
no
输入样例3:
11
输出样例3:
yes
实现代码:
def isPrime(num):
try:
num=int(num)
except:
return 0
else:
if num <=1:
return 0
else:
for i in range(2,int(num**0.5)+1):
if num %i==0:
return 0
return 1
编程题:
7-1 try-except-else异常
分数 10
作者 曹记东
单位 陕西理工大学
本题目要求读入1个整数A,然后输出20/A的值,保留两位小数;如果输入不正确,则输出相应的异常信息。
输入格式:
输入在一行中给出1个整数A。
输出格式:
对每一组输入,在一行中输出20/A的值或相应的异常信息。
输入样例1:
3
输出样例1:
20除以3的结果是: 6.67
没有出现异常
输入样例2:
3.0
输出样例2:
值错误,您必须输入数值
输入样例3:
0
输出样例3:
算术错误,您不能输入0
代码长度限制
实现代码:
n=input()
try:
n=int(n)
except ValueError:
print("值错误,您必须输入数值")
else:
if n==0:
print("算术错误,您不能输入0")
else:
print(f"20除以{n}的结果是: {20/n:.2f}")
print("没有出现异常")
7-2 jmu-python-数据异常处理
分数 10
作者 linli
单位 集美大学
输入一组数据,求平均值。要求:
- 数据正确,正确计算。
- 数据有错误,能异常处理,输出错误信息,不进行计算。
输入格式:
- 行1:n代表输入的数据个数
- 接下来n行表示输入的数据
输出格式:
- 输入数据合法正确,则输出
正确,并输出平均值。 - 输入数据不正确,如果数值错误,输出
数值错误 - 除0错误,输出
除0错误,n不能等0 - 不管有没有异常,都输出
程序结束
输入样例1:
3
2
a
输出样例1:
数值错误
程序结束
输入样例2:
0
输出样例2:
除0错误,n不能等0
程序结束
输入样例3:
3
5.6
6.8
9.4
输出样例3:
正确
avg=7.27
程序结束
实现代码:
n=int(input())
t=n
cnt=0
sum=0
if n==0:
print("除0错误,n不能等0")
else:
while n:
n-=1
x=input()
try:
x=float(x)
except:
print("数值错误")
break
else:
cnt+=1
sum+=x
if cnt==t:
print("正确")
print(f"avg={sum/cnt:.2f}")
print("程序结束")
7-3 jmu-python-字符串异常处理
分数 10
作者 linli
单位 集美大学
输入一行字符串及下标,能取出相应字符。程序能对不合法数据做相应异常处理。
输入格式:
- 行1:输入一字符串
- 行2:输入字符下标
输出格式:
- 下标非数值异常,输出
下标要整数 - 下标越界,输出
下标越界 - 数据正确,输出下标对应的字符
输入样例:
python
1
输出样例:
y
输入样例:
python
a
输出样例:
下标要整数
输入样例:
python
10
输出样例:
下标越界
实现代码:
s=input()
n=input()
try:
n=int(n)
except:
print("下标要整数")
else:
if n>len(s):
print("下标越界")
else:
print(s[n])
7-4 jmu-python-简单计算器
分数 10
作者 linli
单位 集美大学
输入一个表达式字符串,计算其结果
输入格式:
- 行1:输入字符串数目
- 下面分别输入要计算的表达式
输出格式:
输出计算结果,结果保留2位小数。对于异常数据能输出相应异常信息。
输入样例1:
4
1+1
56-23
5/3
5*3.5
输出样例1:
2.00
33.00
1.67
17.50
输入样例2:
3
ab+23
2/0
23+36f
输出样例2:
NameError
ZeroDivisionError
SyntaxError
实现代码:
n=int(input())
while n:
n-=1
try:
s=eval(input())
except NameError:
print("NameError")
except ZeroDivisionError:
print("ZeroDivisionError")
except SyntaxError:
print("SyntaxError")
else:
print("%.2f" %s)
7-5 jmu-python-异常-学生成绩处理基本版
分数 15
作者 郑如滨
单位 集美大学
小明在帮老师处理数据,这些数据的第一行是n,代表有n行整数成绩需要统计。
数据没有错误,则计算平均值(保留2位小数)并输出。
数据有错误,直接停止处理,并且不进行计算。
注:该程序可以适当处理小错误,比如对于有些数据如果左右包含空格,先去掉
空格再行处理。
输入格式:
第一行为n,代表接下来要输入的行数。
然后输入n行成绩(整数)。
输出格式:
如果输入过程中均未出现异常,则输出All OK。 否则输出样例2、3所示格式的错误信息。
如果未出现异常则输出:avg grade = 平均值。平均值(保留2位小数)
不管输入过程中有无出现异常,最后都要输出Process Completed
输入样例1:
3
1
2
3
输出样例1:
All OK
avg grade = 2.00
Process Completed
输入样例2:
3
a b
输出样例2:
Error for data " a b"! Break
Process Completed
输入样例3:
3
1
a
输出样例3:
Error for data "a"! Break
Process Completed
实现代码:
n=int(input())
t=n
cnt=0
sum=0
while n:
n-=1
x=input()
try:
x=int(x)
except ValueError:
print(f'Error for data "{x}"! Break')
break
else:
sum+=x
cnt+=1
if cnt==t:
print("All OK")
print(f"avg grade = {sum/t:.2f}")
print("Process Completed")
7-6 jmu-python-异常-学生成绩处理中级版
分数 15
作者 郑如滨
单位 集美大学
小明在帮老师处理数据,这些数据的第一行是n,代表有n行整数成绩需要统计。
接着连续输入n个成绩,如果中途输入错误(非整数)提示'Error! Reinput',
并输出错误的数据。然后重新输入,直到输入n个正确的成绩才退出。如果整个
输入过程中没有错误数据,提示'All OK'。最后输出所有学生的平均值,保留两
位小
数。
注:该程序可以适当处理小错误,比如对于有些数据如果左右包含空格,先去掉
空格再行处理。
输入格式:
第一行为n,代表接下来要输入的正确行数。
然后输入成绩,输入错误则提示重输,直到输入n行正确的数据为止。
输出格式:
如果输入过程中无异常,需输出All OK。
输入样例1:
3
1
2
3
输出样例1:
All OK
avg grade = 2.00
输入样例2:
3
1
#
b
2
3
输出样例2:
Error for data #! Reinput
Error for data b! Reinput
avg grade = 2.00
实现代码:
n=int(input())
t=n
sum=0
cnt=0
while n:
cnt+=1
s=input()
try:
s=int(s)
except:
print(f"Error for data {s}! Reinput")
else:
n -= 1
sum+=s
if cnt==t:
print("All OK")
print(f"avg grade = {sum/t:.2f}")更多推荐


所有评论(0)