输入合法性判断+素数判断 (10分)
实现isPrime()函数,参数为整数,要有异常处理。如果整数是素数,返回True,否则返回False。
输入格式:
输入一个数
输出格式:
如果整数是素数,输出"是素数", 否则输出"不是素数"; 如果输入不满足要求,输出"输入错误"。
输入样例:
11
输出样例:
是素数
代码:
from math import sqrt
def isPrime(n):
if n <= 1:
return False
for i in range(2, int(sqrt(n)) + 1):
if n % i == 0:
return False
return True
try:
m = eval(input())
if isinstance(m, int):
if(isPrime(m)==True):
print("是素数")
else:
print("不是素数")
else:
print("输入错误")
except:
print("输入错误")
最佳情侣身高 (10分)
最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。下面就请试写个程序,为任意一位用户计算他/她的情侣的最佳身高。
输入格式:
输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间[1.0,3.0]之间的实数。
输出格式:
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
输入样例:
2
F 1.6
M 1.8
输出样例:
1.74
1.65
代码:
import math
n = eval(input())
lis = []
for i in range(n):
lis.append([])
for i in range(0,n):
lis[i] = list((input().split()))
if(lis[i][0] == 'F'):
print(format(1.09*eval(lis[i][1]),'.2f'))
elif(lis[i][0] == 'M'):
print(format(((eval(lis[i][1]))/1.09),'.2f'))
成绩统计 (10分)
现有某班级Python考试成绩,请你帮老师做一下成绩统计,找出最高分、最低分,算出平均分,统计出不及格人数。
输入格式:
输入在第一行给出班级人数n,第二行为n个学生的成绩(0~100之间的整数),中间用空格分隔。
输出格式:
输出共四行,分别为最高分、最低分、平均分和不及格人数,其中平均分保留1位小数。
输入样例:
10
80 95 75 85 90 55 66 88 100 58
输出样例:
Max: 100
Min: 55
Ave: 79.2
Fail: 2
代码:
import math
n = eval(input())
lis = list((input().split()))
for i in range(len(lis)):
lis[i] = int(lis[i])
print("Max: "+str(max(lis)))
print("Min: "+str(min(lis)))
sum = 0
fail = 0
for i in range(0,n):
if(lis[i] < 60):
fail += 1
sum += lis[i]
print("Ave: "+str(format(sum/n,'.1f')))
print("Fail: "+str(fail))
判断完数 (20分)
判断一个正整数是否为完数。完数定义:一个数的所有因子(包括1)之和等于它自身,这个数就是完数。比如6=1+2+3,6是完数。
输入样例:
6
输出样例:
6=1+2+3
输入样例:
28
输出样例:
28=1+2+4+7+14
代码:
import math
N = eval(input())
print(str(N)+"="+"1",end="")
for i in range(2,N):
if(N % i == 0):
print("+"+str(i),end="")
jmu-python-凯撒密码加密算法 (10分)
编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母。
输入格式:
接收两行输入,第一行为待加密的明文,第二行为密钥k。
输出格式:
输出加密后的密文。
输入样例:
Hello World!
3
输出样例:
Khoor Zruog!
代码:
s=input()
key=int(input())
a="abcdefghijklmnopqrstuvwxyz"
A="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in s:
if 'a'<=i<='z':
c=a.find(i)
print(a[(c+key+26)%26],end='')
elif 'A'<=i<='Z':
c=A.find(i)
print(A[(c+key+26)%26],end='')
else:
print(i,end="")
水仙花数(20 分) (20分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。
本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤5)
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
153
370
371
407
代码:
import math
n = eval(input())
for i in range(pow(10,n-1),pow(10,n)):
sum = 0
j = i
for k in range(0,n):
l=j%10
sum += pow(l,n)
j = j//10
if(sum == i):
print(i)
图案打印 (20分)
输入整数n,1<=n<=10,输出n行n列图案。
输入格式:
输入一个整数
输出格式:
输出图案,图案中的每个数所占宽度为4
输入样例:
5
输出样例:
1 1 1 1 1
1 2 2 2 2
1 2 3 3 3
1 2 3 4 4
1 2 3 4 5
代码:
n = eval(input())
for i in range(1,n+1):
for j in range(1,n+1):
if(i <= j ):
print(" "+str(i),end="")
else:
print(" "+str(j),end="")
print()