西电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大作业都有哪些题目

山东理工大学SDUT - ACM OJ 题: Python代码 及分析

西电Java上机作业—实现赛博朋克宠物商店

OJ2237第k小数题解

Jarvis OJ--PHPINFO

Jarvis OJ--PHPINFO