【python】真题练习

------------------------------------------------可能存在问题,可大家探讨---------------------------------------------

1、 筛选满足条件的整数

代码:

N,M=map(int,input().split(' '))
list = []
for i in range(N+1,M):
    # 如果i能被整除5则加入集合
    if 3*i%5 == 0:
        list.append(i)
    a = len(list)
    # 当集合里面有三个值则退出循环
    if a == 3:
        break
    # 当循环在最后都没有3个值,则缺几个加几个-1
    if i == M-1 and a < 3:
        for i in range(3-a):
            list.append(-1)
# 输出值
print(list[0],list[1],list[2])

 2、连续M个数之积最小

代码:

N,M=map(int,input().split(' '))
list = list(map(int,input().split(' ')))
list1 = []
# 需要连续M个数,所以最多循环到N-M+1
for i in range(N-M+1):
    a = list[i]
    # 计算连续M个数之积
    for j in range(1,M):
        a = a*list[i+j]
    list1.append(a)
b = max(list1)
# 找到最大数的第一个出现的位置
for i in range(len(list1)):
    if list1[i] == b:
        print(b,(i+1))
        break

 3、字符串中最长连续非降序子串

 代码:

S = input()
n1 = ""
n2 = ""
for i in range(len(S)):
    # 防止过界
    if i == 0 :
        n2 += S[i]
    # 判断该值是否是升序值
    if S[i]>=S[i-1]:
        n2 += S[i]   # 升序则为一个子串
    if S[i]<S[i-1]:
        if len(n2) > len(n1): # 不是则断掉,将大的子串存进n1中
            n1 = n2
        n2 = S[i]  # n2重新存子串
if len(n2)>len(n1):
    print(n2)
else:
    print(n1)

4、病毒信息筛选

代码:

S = input()
a = "_1234.exe"
b = 0 # 嫌疑片段数
c = []
for i in range(len(S)-len(a)+1):
    if S[i:len(a)+i] == a:
        b += 1
        c.append(i)
s= str(b)
for i in range(b):
    s = s + " "+ str(c[i])
print(s)

5、货物摆放

代码: 

N = int(input())
list1 = []
# 将值存进list
for i in range(N):
    list2 = list(map(str,input().split(' ')))
    list1.append(list2)
# 比较颜色大小排序
for i in range(len(list1)-1):
    for j in range(len(list1)-1):
        if list1[j][1] > list1[j+1][1]:
            temp = list1[j +1 ]
            list1[j + 1] = list1[j]
            list1[j] = temp
# 如果有两个颜色相同就看货物字母排序
for i in range(len(list1)-1):
    for j in range(len(list1)-1):
        if list1[j][1] == list1[j+1][1]:
            if list1[j][0] > list1[j+1][0]:
                temp = list1[j + 1]
                list1[j + 1] = list1[j]
                list1[j] = temp
# 输出
for i in range(len(list1)):
    print(list1[i][0],list1[i][1])

6、投石饮水

代码:

# 直接体积求解
l,h = map(int,input().split(' '))
if h <= 2:
    print(0)
else:
    # 计算需要上升的体积
    s = (l**2)*(h-2)
    num = s//8
    if s % 8 != 0:
        num += 1
    print(num)

 7、学科竞赛

代码:

# 拿到所有学生参加竞赛需要科目的最大分,然后看哪些学生有资格
n,c = input().split(maxsplit=1)
n = int(n)
list1 = []
for i in range(n):
    list2 = list(map(int,input().split(' ')))
    list1.append(list2)
big = 0
if c == "B":  # 参加的竞赛
    for i in range(n):
        b_num  = list1[i][2]+list1[i][4]  # 当前学生参加竞赛需要科目的分数
        if b_num > big:   # 拿到最高分
            big = b_num
    for i in range(n):      # 看哪些学生有资格
        b_num  = list1[i][2]+list1[i][4]
        if b_num == big:
            print(list1[i][0])
elif c == "I":
    for i in range(n):
        b_num = list1[i][2] + list1[i][3]
        if b_num > big:
            big = b_num
    for i in range(n):
        b_num  = list1[i][2]+list1[i][3]
        if b_num == big:
            print(list1[i][0])
else:
    for i in range(n):
        b_num = list1[i][5] + list1[i][6]
        if b_num > big:
            big = b_num
    for i in range(n):
        b_num  = list1[i][5]+list1[i][6]
        if b_num == big:
            print(list1[i][0])

 8、集合位置

# 算出以每个机器人为集合点所需要的能量,找到最低耗能
k = int(input())
list1 = []
for i in range(k):
    list2 = list(map(int, input().split(' ')))
    list1.append(list2)
little = 0
for i in range(k):
    now = 0
    for j in range(k):  # 计算以每个机器人为集合点所需要的能量
        if list1[i][0] >= list1[j][0]:
            now += list1[i][0] - list1[j][0]
        else:
            now +=  list1[j][0] - list1[i][0]
        if list1[i][1] >= list1[j][1]:
            now += list1[i][1] - list1[j][1]
        else:
            now += list1[j][1] - list1[i][1]
    if i == 0:       # 找到最低耗能
        little = now
    elif now < little:
        little = now
print(little)

 总结:自己的代码还不够精炼,代码逻辑还存在部分问题,希望能和大家能讨论学习!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯是中国著名的计算机竞赛,其中包含了多个不同的竞赛项目,其中也包括了PythonPython是指在比赛中需要使用Python编程语言完成的目。通常这些目旨在考察参赛者对Python语法、基本数据结构和算法的理解与掌握。 在Python中,常见的型包括但不限于以下几种: 1. 简单的输出:要求参赛者编写Python代码,输出指定的结果。这类目主要考察对基本语法的掌握和对输出格式的处理能力。 2. 数据处理:给出一定规模的数据,要求参赛者编写Python代码进行相应的数据处理和运算。这类目主要考察对Python基本数据结构(如列表、字典、字符串等)和控制流程(如循环、条件判断等)的掌握。 3. 算法设计:给出一定的问描述,要求参赛者设计一个Python函数或类来解决该问。这类目主要考察对算法的理解与应用能力,包括对递归、动态规划、贪心算法等常见算法思想的应用。 完成Python需要参赛者具备一定的编程基础和对Python语言的熟悉程度。因此,在备战蓝桥杯的过程中,建议参赛者通过刷练习和项目实践等方式提升编程能力,并深入学习Python语言的特性和常用库的使用。同时,了解和掌握各类常见的算法思想和数据结构,对于解决复杂的Python很有帮助。 总之,通过积极学习和不断练习,参赛者可以在蓝桥杯Python中展示自己的编程实力,并提升自己在计算机科学领域的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值