6-1 jmu-python-判断质数
本题要求实现一个函数,判断参数是否是质数,是的话返回True,否则返回False
注意:函数中要有异常处理,如果参数不是整数,返回False
def isPrime(num):
try:
int(num)
except:
return False
else:
num=int(num)
for i in range(2,num):
if num%i==0:
return 0
return 1
7-1 下标异常
输入一个非空字符串和一个索引值,输出字符串中,该索引值对应的字符。若发现异常,则输出“输入下标有误”
a=input()
try:
b=int(input())
print(a[b])
except:
print("输入下标有误")
7-2 try-except-else异常
本题目要求读入1个整数A,然后输出20/A的值,保留两位小数;如果输入不正确,则输出相应的异常信息。
try:
a=int(input())
b=20/a
print("20除以%d的结果是: %.2f"%(a,b))
print("没有出现异常")
except ValueError:
print("值错误,您必须输入数值")
except ZeroDivisionError:
print("算术错误,您不能输入0")
7-3 综合题:学生成绩输入及输出
输入n(1<n<=100)个学生的信息,包括学号、姓名、语文、数学和英语。学号为4位数字组成,成绩为整数,如果不满足此条件,出现异常,如果输入的n不是数字或者 n<=1或n>100,出现异常,输出“输入的人数必须是数字,大于0并且小于等于100”。要求根据3门功课的平均成绩从高分到低分输出每个学生的学号、姓名、3门功课成绩及平均成绩,若平均成绩相同则按语文成绩从高到低排序。
try:
n=int(input())
if n<=1 or n>100:
raise ValueError
a = []
for i in range(n):
b=input().split()
if len(b[0])!=4 or not b[0].isdigit():
raise ValueError
if not b[2].isdigit():
raise ValueError
if not b[3].isdigit():
raise ValueError
if not b[4].isdigit():
raise ValueError
a.append([b[0],b[1],int(b[2]),int(b[3]),int(b[4])])
for i in a:
i.append(sum(i[2:])/3)
a.sort(key = lambda x : (-x[5],-x[2]))
for i in a:
print(i[0],i[1],i[2],i[3],i[4],end=" ")
print("%.2f"%i[5])
except ValueError:
print("输入的人数必须是数字,大于0并且小于等于100")