福建农林大学【python--期末复习2】

福建农林大学–>python – 期末复习2

一、选择题

1、关键字中,用来引入模块的是
A、include
B、from
C、import
D、continue


2、下列删除列表中最后一个元素的函数是
A、del
B、pop
C、remove
D、cut


3、字符串的strip方法的作用是
A、删除字符串头尾指定的字符
B、删除字符串末尾的指定字符
C、删除字符串头部的指定字符
D、通过指定分隔符对字符串切片


4、以下关于Python循环结构的描述中,错误的是 ( )。
A、continue只结束本次循环
B、遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()函数等
C、Python通过for、while等保留字构建循环结构
D、break用来结束当前当次语句,但不跳出当前的循环体


5、以下程序输出为: info = ['name’:'班长,‘id’ :100,‘sex’:‘f’,'address’:”北京’]
age = info.get (‘age’)
print(age)
age=info.get(‘age’,18)
print(age)
A、None 18
B、None NonE
C、编译错误
D、运行错误


6、下列哪个语句在Python中是非法的?
A、x=y=z=1
B、x=(y=z+1)
C、x,y=y,x
D、x+=y


7、列表lis=[1,2,3,4,5,6],其切片lis[-1:1:-1]结果为 ()
A、[6, 5]
B、[1,2]
C、[1,2,3,4]
D、[6,5,4,3]


8、在Python3中关于下列字符串程序运行结果为?
Strl = exam is a example
str2 = examprint(str1.find(str2,7))
A、-1
B、14
C、0
D、10


9、在python中,使用open方法打开文件,语法如下open(文件名,访问模式)
如果以二进制格式打并一个文件用于追加,则访问模式为
A、rb
B、wb
C、ab
D、a


10、以下代码的输出结果是 ()。
A=10.99
print(complex(a))
A、0.99
B、10.99+j
C、10.99
D、10.99+0j


11、以下关于Python程序语法元素的描述,正确的选项是

A、缩进格式要求程序对齐,增添了编程难度
B、所有的if、while、 def、 class语句后面都要用’:’结尾
C、Python变量名允许以数字开头
D、true是Python的保留字


12、以下选项不属于Python语言特点的是
A、与平台无关
B、第三方库丰富
C、适合编写系统软件
D、语法简洁


13、s=‘1234567890’,以下表示‘1234’得选项是
A、s[-10:-5]
B、s[0:3]
C、s[0:4]
D、s[1:5]


14、表达式int(‘100/3’)的执行结果是
A、’100/3‘
B、33.3
C、33
D、Value Error


15、以下赋值语句,错误的选项是 ( )
A、b+= 1
B、s=s. replace(':,")
C、a,b=b,C
D、x==0

二、程序改错题

1、修改程序,判断一个数是不是回文数,所谓回文数指的是:正着数和倒着数都一样,如 1221。
错误的位置已在程序中标出。要求在程序中输入一个数字字符串,对其判断,如果是回文数,则输出“Yes”,否则输出“No”.

【输入】 输入一个数字字符串 s
【输出】 若是回文数,输出“Yes”,否则输出“NO”
在这里插入图片描述
在这里插入图片描述

#本程序判断一个数是否回文数
s=input()
if(s[::] == s[::-1]):  #本行有错
    print("Yes")
else:
    print("No")

2、修改程序,以实现输入一个整数,来判断它是不是素数
【输入】 输入 1 个整数 m
【输出】若是素数,输出“Yes”,反之则输出“No”
在这里插入图片描述

#判断一个整数m是否为素数 

def func(m):
    for i in range(2,m):
        if m % i ==0:  #本行有错
            return "No"
    else:
        return "Yes"
        
n=int(input())
print(func(n))

3、程序填空题

1、在程序中指定的位置补齐代码,完成下列功能:
在程序中输入两个整数 m 和 n,输出它们之间能够被 7 整除,但不能够被 5 整除的所有整数。

【输入】 输入 2 整数 m,n
【输出】输出它们之间能够被 7 整除,但不能够被 5 整除的所有整数
在这里插入图片描述

m,n=map(int,input().split())
if m>n:
    m,n=n,m
for i in range(m,n+1):
  #在本注释下面一行填写适应代码
     if(i % 7 == 0 and i % 5 !=0):
        print(i,end=" ")

2、在键盘上输入 3 个正整数,判断它们能不能构成一个三角形的边长。
【输入】 输入 3 个整数
【输出】能够成三角形的输出“Yes”,不能的输出“No”
在这里插入图片描述

a,b,c=map(int,input().split())
#在本行下面填写相应的代码
if( a + b > c and a + c > b and b + c > a) :
    print("Yes")
else:
    print("No")

4、程序设计题

1、四叶玫瑰数是 4 位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。求 2 个 4 位数之间的所有四叶玫瑰数,如果不存在则返回 None。
【输入】 输入 2 个整数 m,n
【输出】按要求输出字典
在这里插入图片描述

#四叶玫瑰数
m,n=map(int, input().split())
flag = 0
for i in range (m, n):
	a =i // 1000
	b = i // 100 % 10
	c= i // 10 %10
	d=i % 10
	if a**4 + b**4 + c**4 + d**4 == i:
		flag += 1
		print(i)
if flag == 0:
	print("None")

2、杨辉三角形又称 Pascal 三角形,它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前 4 行:
1
1 1
1 2 1
1 3 3 1
给出 n,输出它的前 n 行。
【输入】 输入 1 个整数 n
【输出】输出杨辉三角形的前 n 行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
在这里插入图片描述

n = int(input())
s = []
for i in range(n):
	s.append(list(range(i+1)))
	s[i][0] = 1
	s[i][i] = 1
	for j in range(1,i):
		s[i][j] = s[i-1][j-1]+s[i-1][j]
	else:
		continue
for x in range(len(s)):
	while s[x]:
		print(s[x].pop(0),end = '')
	else:
		print(' ')

3、某校大门外长度为 L 的马路上有一排树,每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 的位置,另一端在 L 的位置;数轴上的每个整数点,即 0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
【输入】输入的第一行有两个整数 L(1≤L≤10000)L 代表马路的长度,M 代表区域的数目,L 和 M 之间用一个空格隔开。接下来的 M 行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
【输出】输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

在这里插入图片描述

L, M = map(int, input().split(" "))
T = [1 for i in range(L+1)]
for i in range(M):
	x = input().split()
	for j in range(int(x[0]), int(x[1])+1):
		T[j] = 0
print(sum(T))

4、小蓝正在玩一款游戏,游戏中魏(X)、蜀(Y)、吴(Z)三个国家各自拥有一定数量的士兵 X、Y、Z(一开始可以认为都是 0)。游戏有 n 个可能会发送的事件,每个事件之间相互独立且最多只发送一次,当第 i 个事件发送时会分别让 X、Y、Z 增加 Ai,Bi,Ci,当游戏结束时(所以事件的发生与否已经确定),如果 X,Y,Z 的其中一个大于另外两个之和,我们认为其获胜。例如,当 X>Y+Z 时,我们认为魏国获胜,小蓝想知道游戏结束时,如果有其中一个国家获胜,最多发生了多少个事件?如果不存在任何一个让某个国家获胜的情况,请输出-1。
【输入】
输入的第一行包含一个整数 n。
第二行包含 n 个整数表示 A,相邻整数之间使用一个空格分隔
第三行包含 n 个整数表示 B,相整数之间使用一个空格分隔
第四行包含 n 个整数表示 C,相邻整数之间使用一个空格分隔
【输出】
输出一行包括一个整数表示答案
在这里插入图片描述

n = int(input ())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
C = list(map(int, input().split ()))

new_X = sorted([A[_] - B[_] - C[_] for _ in range(n)],reverse=True)
new_Y = sorted([B[_] - A[_] - C[_] for _ in range(n)],reverse=True)
new_Z = sorted([c[_] - A[_] - B[_] for _ in range(n)],reverse=True)
ans,resX,resY,resZ, sum_X, sum_Y, sum_Z = 0, 0, 0, 0, 0, 0, 0
for i in range (n):
	sum_X, sum_Y, sum_Z = sum_X + new_X[i], sum_Y + new_Y[i] , sum_Z + new_Z[i]
	resX = resY = resZ = i + 1
	if sum_X > 0: ans = max(ans,resX)
	if sum_Y > 0: ans = max(ans,resY)
	if sum_Z > 0: ans = max(ans,resZ)
	if sum_X <= 0 and sum_Y <= 0 and sum_Z <= 0: break
print(ans if ans else -1)
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值