函数题:

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}")
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐