Python编程训练题2(上)

简介: 1.11有 n 盏灯,编号 1~n(0<n<100)。第 1 个人把所有灯打开,第 2 个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第 3 个人按下所有编号为 3 的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。输入灯数和人数,输出开着的灯的编号。比如输入:10 2 输出最后亮灯的编号:1,3,5,7,9 注意:使用循环语句实现。

1.11

有 n 盏灯,编号 1~n(0

2 的倍数的开关(这些灯将被关掉),第 3 个人按下所有编号为 3 的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。输入灯数和人数,输出开着的灯的编号。

比如输入:10 2 输出最后亮灯的编号:1,3,5,7,9 注意:使用循环语句实现。

n, x = input('请依次输入灯数和人数:').split(' ')
n = int(n)
x = int(x)
led = []
# 使输入的所有灯打开
for i in range(n + 1):
    led.append(1)
for i in range(2, x + 1):
    for j in range(i, n + 1, i):
        led[j] = -led[j]
for i in range(1, n + 1):
    if led[i] == 1:
        print(i, end=',')

1.1.png

1.12

冒泡排序

原始数组:[1,9,3,7,4,2,5,0,6,8]

排序后:[0,1,2,3,4,5,6,7,8,9];

要求:综合使用分支、循环结构语句实现,直接输出结果不计分。打印每一次运行的结果

initial = [1, 9, 3, 7, 4, 2, 5, 0, 6, 8]  # 初始值
temp = 0  # 中间值转化
for i in range(len(initial)):
    for j in range(len(initial) - i-1):
        if initial[j] > initial[j + 1]:
            temp = initial[j]
            initial[j] = initial[j + 1]
            initial[j + 1] = temp
    print(f'第{i+1}轮变化结果:{initial}')

1.2.png

1.13

动物园饲养的食肉动物分大型动物和小型动物两类,规定老虎、狮子一类的大动物每次喂肉每头三斤,狐狸、山猫一类小动物每三头喂一斤。该动物园共有这两类动物 100 头,每

次需喂肉 100 斤,编程输出大、小动物的数量。

for big in range(1, 101):
    if 3 * big + 1 / 3 * (100 - big) == 100:
        print(f'大型动物{big},小型动物{100 - big}')

1.3.png

1.14

从键盘接收一个整数 n(n>=4),请打印一个由“*”号组成的长度和宽度均为 n 的空心矩形。例如输入:4 你要在屏幕打印如下图形:1.4.png

n = int(input('请输入一个整数n:'))
for i in range(n):
    for j in range(n):
        if i == 0 or j == 0 or i == n - 1 or j == n - 1:
            print('*', end='')
        else:
            print('', end=' ')
    print()
n = int(input('请输入一个整数n:'))
for i in range(n):
    for j in range(n):
        if i == 0 or j == 0 or i == n - 1 or j == n - 1:
            print('*', end='')
        else:
            print('', end=' ')
    print()

1.5.png

1.15

注意输出指定空心正方形。输入第一个数字为边长,第二个字符为组成图形边的字符。例如:输入

4 a (4为空心正方形的大小,a为显示的字符)

输出

aaaa

a a

a a

aaaa

n, char = input('请依次输入边长和字符:').split(' ')
n = int(n)
for i in range(n):
    for j in range(n):
        if i == 0 or j == 0 or i == n - 1 or j == n - 1:
            print(f'{char}', end='')
        else:
            print('', end=' ')
    print()

1.6.png

1.16

已知鸡和兔的总数量为 n,总腿数为 m。输入 n 和 m,依次输出鸡和兔的数目,如果无解, 则输出“No answer”(不要引号)

n, m = input('依次输入n,m:').split(' ')
n = int(n)
m = int(m)
rabbit = 0
f = True  # 判断答案是否存在
for rabbit in range(n + 1):
    if rabbit * 4 + (n - rabbit) * 2 == m:
        f = False
        print(f'兔的数量:{rabbit},鸡的数量:{n - rabbit}')
if f:
    print('No answer')

1.7.png

1.17

中国古代的《算经》记载了这样一个问题:公鸡 5 文钱 1 只,母鸡 3 文钱 1 只,小鸡 1

文钱 3 只,如果用 100 文钱买 100 只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?现在请

你编程求出所有的解,每个解输出 3 个整数,打印在一行,用空格隔开,分别代表买的公鸡、母鸡、小鸡的数量。

注意:100 文钱要正好用完。请输出所有的解,每个解占一行。

cock, hen, chick = 0, 0, 0  # 公鸡,母鸡,小鸡
for cock in range(100):
    for hen in range(100):
        for chick in range(100):
            if cock + hen + chick == 100 and cock * 3 + hen * 1 + 1 / 3 * chick == 100:
                print(cock, hen, chick, sep=' ')

1.8.png

1.18

啤酒每罐 2.3 元,饮料每罐 1.9 元。小明买了若干啤酒和饮料,一共花了 82.3 元。我们还知道他买的啤酒比饮料的数量少,请你编程计算他买了几罐啤酒。

max_beer = int(82.3 / 2.3)
max_drink = int(82.3 / 1.9)
for beer in range(max_beer):
    for drink in range(max_drink):
        if beer * 2.3 + drink * 1.9 == 82.3 and beer < drink:
            print(beer)

1.9.png


相关文章
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
307 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
330 104
|
3月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
270 103
|
3月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
203 82
|
2月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
193 3
|
2月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
468 3
|
2月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
283 3
|
2月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
289 0
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的多面手
Python:现代编程的多面手
90 0
|
3月前
|
存储 人工智能 算法
Python实现简易成语接龙小游戏:从零开始的趣味编程实践
本项目将中国传统文化与编程思维相结合,通过Python实现成语接龙游戏,涵盖数据结构、算法设计与简单AI逻辑,帮助学习者在趣味实践中掌握编程技能。
369 0

推荐镜像

更多