# python编程考试题目大全

11 篇文章 5 订阅
6 篇文章 4 订阅

1.题目名称：批阅奏章

5 3
5 4 3 2 1
3 5 4

3 5 4 1 2

line1 = list(map(int,input('ddd').split()))
p = line1[0]
q = line1[1]
article_author = list(map(int,input('ddd').split()))
persons = list(map(int,input('ddd').split()))
result =[]
article_author.sort()
for p1 in persons:
for a1 in range(0,len(article_author)):
if article_author[a1] == p1:
result.append(p1)
article_author[a1] = 0
for a1 in article_author:
if a1!=0:
result.append(a1)
print_text = list(map(str,result))
print(" ".join(print_text))


2.题目名称：报价

17 20 33
37

17 20

list1=list(map(int,input().split()))
goal=int(input())
list1.sort()
for i in list1:
if (goal-i) in list1:
print(str(i)+" "+str(goal-i))
break


3.题目名称：水仙花数

100 170

153

a,b = map(int,input().split())
for n in range(a,b+1):
x = int(str(n)[0])
y = int(str(n)[1])
z = int(str(n)[2])
if n == x**3 + y**3 + z**3:
print(n)


4.题目名称：字符串查找和比较(pass)

aocdfe
pmcdfa

Cdf

A = str(input(""))
B = str(input(""))
if len(A)>len(B):
A,B = B,A
out_put=[]
for i in range(len(A),0,-1):
for j in range(0,len(A)-i+1):
if A[j:j+i] in B:
print(A[j:j+i])
out_put.append(A[j:j+i])
if out_put:
break


5.题目名称：尼姆博弈

true或false

4

False

num = int(input())
if num % 4 == 0:
print("false")
else:
print("true")



6.题目名称：罗马数字转整数(pass)

I 可以放在 V (5) 和 X (10) 的左边，来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边，来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边，来表示 400 和 900。

src = input()
n_value = {"Z":0,"I":1,"V":5,"X":10,"L":50,"C":100,"D":500,"M":1000}
pre_value = {"I":"Z","V":"I","X":"I","L":"X","C":"X","D":"C","M":"C"}
result = 0
last_char = ""
for _c in src:
result+= n_value[_c]
if last_char == pre_value[_c]:
result-= n_value[last_char] * 2
last_char = _c
print(result)



7.题目名称：员工排序

1、职级高的排在前面

2、若职级相同，按工资少的排前面

3、若工资相同，工作年限长的排前面

6

num = int(input())
employees = []
for _i in range(0,num):
employees.append(input().split())
src_data = list(map(lambda x:[x[0],int(x[1]),int(x[2]),float(x[3])],employees))
src_data.sort(key=lambda x: -1000000000000*x[1] + 10000*x[3] - x[2])
for _i in src_data:
print("%s %d %d %0.2f" % (_i[0],_i[1],_i[2],_i[3]))


8.题目名称：汉诺塔

3

a->c
a->b
c->b
a->c
b->a
b->c
a->c

def han_nuo(n,src,tmp,dest):
if n <= 0:
return
if n == 1:
print(src + "->" + dest)
return
han_nuo(n-1,src,dest,tmp)
print(src + "->" + dest)
han_nuo(n-1,tmp,src,dest)

num = int(input())
han_nuo(num,"a","b","c")


9.题目名称：交换数值

a 和b 的值交换

a=100
b=200

a=200
b=100

a = int(input().split('=')[1])
b = int(input().split('=')[1])
a,b = b,a
print("a=%d"%a)
print("b=%d"%b)


10.题目名称：进程排序(pass)

4 5
1 3 10 5
3 0 5 3

import copy
n,k=map(int,input().split(' '))
pids=list(map(int,input().split(' ')))
ppids=list(map(int,input().split(' ')))
t=[k]
A=[k]
while len(set(t)&set(ppids))>0:
zk=[]
for x in t:
for i in range(len(ppids)):
if ppids[i]==x:
zk.append(pids[i])
A.append(pids[i])
t=copy.deepcopy(zk)
A.sort()
li=[str(x) for x in A]
print(' '.join(li))



11.题目名称：丑数

m=int(input())
def cnum(n):
while True:
if n <= 0:
return False
elif n==1 or n==2 or n==3 or n==5:
return True
elif n % 2 ==0:
n = n/2
elif n % 3 ==0:
n = n/3
elif n % 5 ==0:
n = n/5
else:
return False
f=cnum(m)
if f == True:
print("true")
else:
print("false")



12、 克拉兹猜想：任取一正整数，如果是偶数，将其除以2。如果是奇数，将其乘以3再加1，然后重复这个过程，最后结果都会陷入4 2 1 的循环。

[13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1]
[31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1]
[101, 304, 152, 76, 38, 19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1]

def collatz(number):
res=number%2
if res==0:
return number//2
else:
return number*3+1

num=13
in_list=[13,31,101]
for  num in in_list:
jg_list = [num]
while True:
num=collatz(num)
jg_list.append(num)
if jg_list.count(1)==2:
break
print(jg_list)
----------------------------------------------------------


num= int(input())
arr = input()

in_list = [int(n) for n in arr.split()]
def collatz(number):
res=number%2
if res==0:
return number//2
else:
return number*3+1

for  num in in_list:
jg_list = [num]
while True:
num=collatz(num)
jg_list.append(num)
if jg_list[-6:]==[4,2,1,4,2,1]:
break
print(jg_list)


13、给定一组数，按照数组中出现的次数依次从大到小排序，出现次数一样的按照数组中的先后顺序输出

n=map(int,input().split())
n=list(n)

jg_list=[]
for index,value in enumerate(n):
j=n.count(value)
jg=[value,index,j]
jg_list.append(jg)

jg_list.sort(key=lambda x:x[1])
jg_list.sort(key=lambda x:x[2],reverse=True)

for x in jg_list:
print(x[0],'',end='')


14、完数：一个数如果恰好等于它的因子之和，这个数就称为"完数"。例如6=1＋2＋3。编程找出10000以内的所有完数。

jg=[]
for i in range(1,10000):
sum1 = 0
for j in range(1,int(i/2)+1):
if i/j==int(i/j):
sum1+=j
if sum1==i:
jg.append(i)
print(jg)


15、利用条件运算符的嵌套来完成此题：学习成绩>=90分的同学用A表示，60-89分之间的用B表示，60分以下的用C表示

def main():
s = int(input('请输入成绩:'))
if s>=90:
elif s>=60:
else:
main()


16、递归案例 求斐波那契列数列1，1，2，3，5，8，13 的第30位

def f(n):
return 1 if n==1 or n==2 else f(n-1)+f(n-2)

n=int(input())

ls=[]
for i in range(1,n+1):
if i==1 or i==2:
ls.append(1)
else:
ls.append(ls[i-2]+ls[i-3])

print(ls)


### 求整数N的阶乘

n=int(input())
def f(n):
if n==1:
return(n)
else:
return(n*f(n-1))

print(f(1),f(2),f(3),f(4),f(5),f(6))

print(f(n))


#求整数N的阶乘

def f(n):
if n==1:
return(n)
else:
return(n*f(n-1))

n=int(input())
ls=[]
for i in range(1,n+1):
if i==1:
ls.append(1)
else:
ls.append(f(i))
print(ls)

print(f(1),f(2),f(3),f(4),f(5),f(6))

print(f(n))

• 20
点赞
• 234
收藏
觉得还不错? 一键收藏
• 1
评论
06-12 7万+
04-03 7563
04-20 32万+
10-20 4万+
12-21 2361
12-30
03-26
02-28
02-28
05-15

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、付费专栏及课程。