当前位置: 首页 > article >正文

Python练习(5)

今日题单

  1. 古风排版
  2. 阅览室
  3. 整除光棍
  4. 编程团体赛
  5. 打印沙漏
  6. 连续因子
  7. 帅到没朋友
  8. 天梯赛座位分配

示例代码

古风排版

n = int(input())
s = input()
if len(s) % n != 0:
    s += ' ' * (n - len(s) % n)
x = []
for i in range(n):
    x = [s[j] for j in range(len(s)) if j % n == i]
    x.reverse()
    for k in x:
        print(k, end='')
    print()

阅览室

def time_get(time1, time2):
    h1, m1 = map(int, time1.split(':'))
    h2, m2 = map(int, time2.split(':'))
    return (h2 * 60 + m2) - (h1 * 60 + m1)


n = int(input())
for i in range(n):
    data = input().split()
    dic = {}
    cnt = time = 0
    while data[0] != '0':
        if data[1] == 'S':
            dic[data[0]] = data[2]
        else:
            if data[0] in dic.keys():
                cnt += 1
                time += time_get(dic[data[0]], data[2])
                del dic[data[0]]
        data = input().split()
    if cnt != 0:
        time = time / cnt
    print('%d %.0f' % (cnt, time))

整除光棍

n = int(input())
x = '1'
while True:
    if int(x) % n == 0:
        print(int(x) // n, len(x))
        break
    x += '1'

编程团体赛

n = int(input())
dic = {}
for i in range(n):
    team, score = input().split()
    a, b = team.split('-')
    score = int(score)
    if a in dic:
        dic[a] += score
    else:
        dic[a] = score
print(max(dic, key=dic.get), dic[max(dic, key=dic.get)])

打印沙漏

n, c = input().split()
n = int(n)
for i in range(1, 100):
    if 2 * i ** 2 - 1 > n:
        break
x = i - 1
for i in range(x, 0, -1):
    print(' ' * (x - i) + c * (2 * i - 1))
for i in range(2, x + 1):
    print(' ' * (x - i) + c * (2 * i - 1))
print(n - (2 * i ** 2 - 1))

连续因子

import math

n = int(input())
Max = p = cnt = 0
for i in range(2, int(math.sqrt(n)) + 1):
    cnt = 0
    x = n
    j = i
    while x % j == 0:
        x //= j
        j += 1
        cnt += 1
    if cnt > Max:
        Max = cnt
        p = i
if Max == 0:
    print('1\n%d' % n)
else:
    print(Max)
    print('*'.join([str(i) for i in range(p, p+Max)]))

帅到没朋友

n = int(input())
lst = set()
ID = []
for i in range(n):
    temp = input().split()
    if len(temp) > 2:
        for j in range(1, len(temp)):
            lst.add(temp[j])
m = int(input())
qst = input().split()
for i in range(m):
    if qst[i] not in lst:
        lst.add(qst[i])
        ID.append(qst[i])
if ID:
    print(' '.join(ID))
else:
    print('No one is handsome')

天梯赛座位分配

n = int(input())
lst = [0] + list(map(int, input().split()))
Max = max(lst)
team = [[[0 for _ in range(15)] for _ in range(15)] for _ in range(105)]
past = -1
num = 1
for i in range(1, Max+1):
    for j in range(1, 11):
        for k in range(1, n+1):
            if lst[k] < i:
                continue
            if past == k:
                team[k][j][i] = num + 1
                num += 2
            else:
                team[k][j][i] = num
                num += 1
            past = k
for k in range(1, n+1):
    print('#%d' % k)
    for i in range(1, Max+1):
        if lst[k] < i:
            continue
        for j in range(1, 10):
            print(team[k][j][i], end=' ')
        print(team[k][10][i])

到这里,python的专题练习就结束了,想必大家已经很熟练了吧!!!

感谢大伙观看,别忘了三连支持一下


大家也可以关注一下我的其它专栏,同样精彩喔~


下期见咯~


http://www.kler.cn/a/543468.html

相关文章:

  • 2025.2.11
  • bug-ant下拉框解决下拉框跟随表单容器(指定下拉框挂载容器):getPopupContainer=“p=>p.parentNode“
  • 深度学习-交易预测
  • 【数据结构】双向链表(真正的零基础)
  • 深度整理总结MySQL——MySQL加锁工作原理
  • 第433场周赛:变长子数组求和、最多 K 个元素的子序列的最值之和、粉刷房子 Ⅳ、最多 K 个元素的子数组的最值之和
  • mydb:TM实现
  • 微信小程序 - 组件和样式
  • 权重修剪(Pruning)和量化(Quantization)
  • AcWing 5166:对称山脉 ← 动态规划
  • 32单片机学习记录4之串口通信
  • 记一次HID报表描述符识别异常问题排查
  • 使用Docker部署MySQL 5.7并配置防火墙
  • C++,STL容器 unordered_set/unordered_multiset:无序集合/无序多重集合深入解析
  • 【面试集锦】如何设计SSO方案?和OAuth有什么区别?
  • JavaWeb学习-Mybatis(增删改查)
  • Windows 软件奔溃-dmp文件分析
  • 微信小程序网络请求封装
  • 【JavaEE进阶】Spring IoC
  • 【漫话机器学习系列】088.常见的输出层激活函数(Common Output Layer Activation Functions)
  • 堆、方法区、虚拟机栈、本地方法栈 和 程序计数器
  • HCIA项目实践--RIP相关原理知识面试问题总结回答
  • 从 0 开始本地部署 DeepSeek:详细步骤 + 避坑指南 + 构建可视化(安装在D盘)
  • Oracle数据库ADG日志丢失处理方法
  • js实现深拷贝
  • HDL Compiler:工具简介