西电2020 python OJ作业(50道题目,持续更新)
Posted 唯_ww
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了西电2020 python OJ作业(50道题目,持续更新)相关的知识,希望对你有一定的参考价值。
西电2020 python OJ作业(50道题,持续更新)
0.A+B problem
题目描述
用来适应环境的题目,自然比较简单些。 计算2个整数的和。这两个整数都在1到1000之间。
输入
输入只有一行,包括2个整数a, b。之间用一个空格分开。
输出
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
必须用print()输出你的结果,才能通过OJ的评判
#!/usr/bin/python3
a, b = map(int, input().split())
print(a+b)
1.python的hello world
题目描述
请在一行输出 “Python = Pile + sensensen”
输入
程序无输入
输出
按照题目要求输出
#!/usr/bin/python3
print('Python = Pile + sensensen');
2.python成绩
题目描述
森森最近学习了Python课,这门课程的总成绩计算方法是:总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50% (课程实际评分规则请以任课教师要求为准)
森森想知道,这门课程自己最终能得到多少分。
输入
输入文件只有1行,包含三个非负整数A、B、C,分别表示森森的作业成绩、小测成绩和期末考试成绩。
相邻两个数之间用一个空格隔开,三项成绩满分都是100分。
0 ≤ A、 B、 C ≤ 100 且 A、 B、 C 都是 10 的整数倍
输出
输出文件只有1行,包含一个整数,即森森这门课程的总成绩,满分也是100分。
#!/usr/bin/python3
a, b, c= map(int, input().split())
d = int (a*0.2 + b*0.3 + c*0.5)
print(d)
3.eval() 函数的使用1
题目描述
Pile 学了 eval() 函数,感觉非常好用。所以,她也希望你能掌握这个技能。让我们开始吧。
输入
输入一行一个字符串,表示 eval() 函数所需要执行的语句。保证可以正常执行 eval() 函数。
输出
输出 eval() 函数执行的语句。
#!/usr/bin/python3
eval(input())
4.math 库的使用1
题目描述
森森在学专业课的时候,发现一个神奇的函数,叫 Gamma 函数。
森森想知道 Gamma 函数的值。
输入
输入一行一个正整数 n ,表示森森想要知道的函数值。
输出
输出一行一个浮点数,表示 Gamma(n) 的值。
#!/usr/bin/python3
import math
a = int(input())
print(math.gamma(a))
5.字符串存在判定
题目描述
Pile 想要知道,一个字符串在另一个字符串内是否存在。
输入
输入第一个字符串表示字符串 a;
第二行一个字符串 b
输出
输出 ‘True’ 或者 ‘False’ ,表示字符串是否存在。
#!/usr/bin/python3
a = input()
b = input()
if b.find(a) != -1:
print("True")
else : print("False")
6.回文串的判断
题目描述
Pile 想知道她构造的一个字符串是不是回文串,请你帮她判断一下吧。
回文串的定义是反向排列与原串相同。
输入
一行一个字符串,表示 Pile 提供给你的字符串。
输出
输出 ‘True’ 表示输入的串是回文串;否则输出 ‘False’ 。
#!/usr/bin/python3
s = input()
a = len(s)
i = 0
count = 1
while i <= (a / 2):
if s[i] == s[a - i - 1]:
count = 1
i += 1
else:
count = 0
break
if count == 1:
print('True')
else:
print('False')
7.成绩分析
题目描述
森森的期末考试考完了,她想知道自己的成绩等级。
她的成绩与等级之间是这样转换的:
成绩在 90~100 分之间是 A;
成绩在 80~89 分之间是 B;
成绩在 70~79 分之间是 C;
成绩在 60~69 分之间是 D;
成绩在 0~59 分之间是 F。
请你根据她的成绩计算出她的等级。当然,她可能会输入一个错误的值,这时候请输出 “Error!” 。
输入
输入一行一个整数,表示森森的成绩
输出
输出一个字母或者 “Error!” 表示结果。
#!/usr/bin/python3
a = int(input())
if 0<=a<=59:
print("F")
else:
if 60<=a<=69:
print("D")
else:
if 70<=a<=79:
print("C")
else:
if 80<= a <= 89:
print("B")
else:
if 90 <= a <= 100:
print("A")
else: print("Error!")
8.最大公约数
题目描述
Pile 想要知道一个经典问题:
给你两个数,请求出一个数的最大公约数
输入
输入两行,其中:
第一行一个正整数,表示 a
第二行一个正整数,表示 b
输出
输出 a, b 的最大公约数
#!/usr/bin/python3
import math
a = int(input())
b = int(input())
z=math.gcd(a,b)
print(z)
9.输出偶数
题目描述
森森最喜欢偶数了。
请你帮她输出 从 1 到 n 的所有偶数~
输入
输入一行一个数,表示上文中的 n
输出
输出多行,保证一行有且只有一个偶数。
#!/usr/bin/python3
n = int(input())
i = 1
while i<=n:
if (i % 2) == 0:
print(i)
i += 1
else:
i += 1
10.计算均值
题目描述
Pile 想问你一个问题:
给你 n(1 <= n <= 10000)个整数,求它们的和与均值。
输入
输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。
输出
输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。
#!/usr/bin/python3
n = int(input())
a = [0]
sum = 0
average = 0
i = 1
while i<=n:
b = int(input())
a.append(b)
i +=1
j=1
while j<=n:
sum += a[j]
j +=1
average = sum/n
print(sum,format(average, '.5f'))
11.计算阶乘
题目描述
森森想知道 1! + 2! + … + n!,请你帮她计算一下吧。
输入
输入一行一个整数 n, 表示上文的 n
输出
输出一个整数表示结果
#!/usr/bin/python3
n = int(input())
a = [0]
sum = 0
i = 1
b=1
while i<=n:
b = 1
for x in range(1, i + 1):#[1,i]
b = b * x
a.append(b)
i += 1
j=1
while j<=n:
sum += a[j]
j +=1
print(sum)
12.汇率兑换
题目描述
按照课本中温度转换程序的设计思路,按照 1美元 = 6人民币的汇率编写美元和人民币的双向兑换程序。
输入
输入一行字符串,表示人民币或者美元的数量。保证字符串的最后一位是 A-Z 的字母,其他位置均为数字。
人民币的最后一位一定是 ‘R’ 或者 ‘r’
美元的最后一位一定是 ‘D’ 或者 ‘d’
输出
输出转换后的结果。结果表示为一个字符串,前面输出一个整数,最后一位输出 “R” 或者 “D” 表示人民币或者美元。
如果不能转换,输出 “Error!” 。
#!/usr/bin/python3
zifuchuan = input()
a = 'R'
b = 'D'
c = 'r'
d = 'd'
num = int(''.join([x for x in zifuchuan if x.isdigit()]))
if zifuchuan.find(a) != -1:
m=num//6
print(str(m)+'D')
else:
if zifuchuan.find(c) != -1:
m = num //6
print(str(m) + 'D')
else :
if zifuchuan.find(b) != -1:
r = num * 6
print(str(r)+'R')
else:
if zifuchuan.find(d) != -1:
r = num * 6
print(str(r) + 'R')
else:
print("Error!")
13.进度条的显示
题目描述
实现一个进度条函数,具体的实现方法可以与书上的代码以及对照进行实现。
输入
输入 scale 表示输出进度条的精度。
输出
输出整个执行过程。
#!/usr/bin/python3
scale = int(input())
print("------start------")
for i in range(scale+1):#[0 , scale]
a = '**' * i
b = '.' * 2*(scale - i)
c = (i/scale)*100
print("0:3.0f %[1->2]".format(c,a,b))
print("------end-----")
14.因子数
题目描述
森森非常喜欢数字4和7,看到一个数字她就想快速计算出因子里面分别有几个4和7,但是智商捉急的她总是要算很久,喜欢编程的你能够帮助她吗?
输入
第一行一个整数n,表示给定的数字。
输出
两个用空格隔开的数字,分别表示给定数字的因子中4和7的个数。
#!/usr/bin/python3
n = int(input())
i=0
j=0
n1=n
n2=n
while(n1%4 == 0):
i=i+1
n1=n1//4
while(n2%7 == 0):
j=j+1
n2=n2//7
print(i,j)
15.文章检测
题目描述
给你一篇英文文章,请问你里面有多少个空格、数字字符、英文字母和其他字母。
输入
输入多行文字,以 EOF 结束
每一行表示一个文章的段落
输出
输出一行提示信息,具体格式见样例。
#!/usr/bin/python3
stopword = ''
stri = ''
try:
for line in iter(input, stopword):
stri += line + '\\n'
except EOFError:
pass
stri = stri[0:-1]
# do something...
int1_count = 0
str_count = 0
other_count = 0
kong_count = 0
for i in stri:
if i.isdigit():
int1_count += 1
elif i.isalnum():
str_count += 1
elif i == ' ':
kong_count += 1
else:
other_count += 1
print('%d spaces, %d numbers, %d letters, %d other characters.' %(kong_count, int1_count ,str_count,other_count))
16.eval() 函数的使用2
题目描述
森森希望多了解一下 eval() 函数,于是她给你了几个定义:
x = 12, y = 14
她希望你能计算她的表达式。
她可能需要使用 math 库来保证表达式的正常执行。
输入
输入一行字符串表示 x 和 y 的表达式
输出
输出一行一个数,表示字符串的值。
#!/usr/bin/python3
import math
x = 12
y = 14
value = eval(input())
print(value)
17.质数的和与积
题目描述
Pile 想知道一个简单的问题:
两个质数的和是S,它们的积最大是多少?
输入
一个不大于10000的正整数S,为两个质数的和。
输出
一个整数,为两个质数的最大乘积。数据保证有解。
#!/usr/bin/python3
import math
def is_prime(number): # 判断是否为素数
sqrt = int(math.sqrt(number))
for j in range(2, sqrt + 1): # 从2到number的算术平方根迭代
if number % j == 0: # 判断j是否为number的因数
return 0
return 1
n = int(input())
x = n//2
while(1):
if is_prime(x)+is_prime(n-x) == 2:
break
x -=1
s = x*(n-x)
print(s)
18.寻找多数元素
题目描述
森森在学习列表的时候,发现一道经典的题目:在一个序列中寻找多数元素。
她给你了一道简化版的问题:
询问你这个序列里面出现次数最多的元素的出现次数。
输入
输入多行,一行一个数表示序列里面的每一个数。
注:使用
try:
except EOFError:
来判断什么时候结束输入
输出
输出一行,表示出现次数最多的数字的出现次数。
#!/usr/bin/python3
list=[]
while(1):
try:
num=int(input())
list.append(num)
except:
break
dict=#字典
for key in list:
dict[key]=dict.get(key,0)+1 #查询字典中key是否有,有的话返回key值,没有返回0
value=max(dict.values())
print(value)
19.判断素数
题目描述
Pile 想实现一个判断素数的函数。当这个数是素数的时候输出 ‘True’ ,不是素数输出 ‘False’ 。
但是她是一个粗心的孩子,她有时候会输入一些奇怪的字符串,这个时候你需要输出 ‘invalid’。
输入
输入一行一个字符串表示 Pile 的输入。
输出
对于输入,输出一行字符串 ‘True’ ‘False’ 或者 ‘invalid’ 表示结果。
#!/usr/bin/python3
import math
def is_prime(number): # 判断是否为素数
sqrt = int(math.sqrt(number))
for j in range(2, sqrt + 1): # 从2到number的算术平方根迭代
if number % j == 0: # 判断j是否为number的因数
return 'False'
return 'True'
str = input()
int1_count = 0
for i in str:
if i.isdigit():
int1_count += 1
if int1_count!=len(str):
print('invalid')
else:
print(is_prime(int(str)))
20.所有参数的乘积
题目描述
森森想要写一个返回多个参数的乘积函数。你需要这样调用:
#!/usr/bin/python3
print(eval(input()))
输入
输入一行表示字符串,保证字符串的格式为:
multi(参数列表)
其中参数列表中每个数以逗号分隔。
保证至少有一个参数。
输出
如果输入的参数均可以参与乘法运算,输出乘积;
否则输出第一个不合法的参数,形式为 :
Invalid arg x
x 表示第 x 个参数不合法
#!/usr/bin/python3
def multi(*n):
result = 1
count = 0
try:
for i in n:
count += 1
i = i + 1 - 1 #判断是否为数字
result *= i
except TypeError:
return ('Invalid arg %d'%count)
return result
print(eval(input()))
21. 到底怎么样才能写好 Python?
题目描述
Pile 想知道,到底怎么样才能写好 Python?你需要输出一篇 Tim Peters 的文章来告诉 Pile。
输入
程序无输入。
输出
输出题目所要求的文章。
#!/usr/bin/python3
import this
22. CSV 文件解析
题目描述
森森喜欢将 CSV 文件打开看看,但是当她看到的文件里面都有好多逗号的时候,她觉得很不舒服。
她需要你去把一个 CSV 文件的逗号去掉并换成 \\t 。
请你帮帮她吧。
输入
输入多行,表示一个 CSV 文件。
输出
输出多行,表示你的输出。注意逗号都需要换成 \\t 。
#!/usr/bin/python3
import csv
#输入csv文件
fo = open("shishi.csv","w")
list=[]
stopword = ''
stri = ''
try:
for line in iter(input, stopword):
stri += line + '\\n'
except EOFError:
pass
stri = stri[0:-1]
list = stri.split(",")
fo.write(",".join(list)+"\\n")
fo.close()
#输出csv文件
fo = open("shishi.csv","r")
ls = []
for line in fo:
line = line.replace("\\n","")
ls = line.split(",")
lns = ""
for s in ls:
lns += "\\t".format(s)
print(lns)
fo.close()
23. 重复元素的判定
题目描述
Pile 想知道一个集合里面有没有重复元素,请你帮帮她吧。
输入
输入第一行表示元素的个数 N。
以下 N 行,每行一个数字。
输出
如果有重复元素,请输出两行:第一行"True" ;第二行,输出一个数,表示是第几个元素重复。如果有多个重复的,请输出重复元素中编号最小的; (注:这里重复元素中编号最小的指从第2个重复的元素开始算,如1 2 2则输出第二个2所在的位置3,1 3 4 3输出4,1 3 4 5 3 3输出5,依次类推。)
否则,输出一行 “False” 表示没有元素重复。
#!/usr/bin/python3
list=[]
N = int(input())
while(N):
try:
num=int(input())
list.append(num)
N -= 1
except:
break
i = 0
dict=#字典
for key in list:
dict[key]=dict.get(key,0)+1 #查询字典中key是否有,有的话返回key值,没有返回0
i +=1
if dict[key] == 2:
print("True")
print(i)
break
value=max(dict.values())
if value<2:
print("False")
24. 计算集合的并
题目描述
森森喜欢求两个集合的并,请你帮她求一下吧。
输入
输入两行,每行表示一个集合,每个集合的元素(均为数字)以一个空格分隔。
输出
输出一行表示集合。
#!/usr/bin/python3
s = set(map(int,input().split()))
t = set(map(int,input().split()))
z = s|t
print(z)
25. 计算标准差
题目描述
Pile 想知道好多个数字的标准差。
输入
输入多行,每行表示一个整数
输出
输出标准差,输出格式可以参考样例。
输出的标准差要求利用科学计数法表示,且只能输出 2 位数,例如 1.2e+09。
#!/usr/bin/python3
import math
def mean(numbers):#计算平均值
s = 0.0
for num in numbers:
s = s +num
return s / len(numbers)
def dev(numbers,mean):python大作业都有哪些题目