第十六届蓝桥杯省赛Python研究生组-C变换数组

  • 考点:基础逻辑
  • 题目描述:
  • 解题思路:
  1. 输入处理
  2. 数据转换
  3. 输出结果
  • 参考代码:
python 复制代码
def main():
    # 1.输入处理
    n = int(input())
    # n = int(sys.stdin.readline().strip())
    a = list(map(int, input().split()))
    m = int(input())

    # 2.数据转换
    for _ in range(m):
        for i in range(n):
           # 当前数字转为二进制,并统计含1的个数
           bit_count = bin(a[i]).count('1') 
           a[i] = a[i] * bit_count

    # 3.输出结果
    print(' '.join(map(str, a)))

if __name__ == '__main__':
    main()
  • 相关函数:
函数 类型 参数 功能 返回值
intpu() 内置函数 prompt:提示字符串 读取一行,自动去掉末尾换行符 \n,返回字符串,速度相对较慢 str
sys.stdin.readline() 系统方法 / 从标准输入快速读取一行,保留末尾的换行符 \n str
str.strip() 字符串方法 chars(可选):指定去除的字符 去除字符串首尾的空白字符(或指定字符) str
str.split(sep=None) 字符串方法 sep:分隔符,默认空白 maxsplit:最大分割次数 按分隔符将字符串切分为列表 list
str.join(iterable) 字符串方法 iterable:字符串组成可迭代对象 以调用该方法的字符串为分隔符,将可迭代对象中的所有元素连接成一个新字符串 str
map(function, iterable) 内置函数 function:要应用的函数 iterable:可迭代对象 将函数依次作用于可迭代对象的每个元素 map object 迭代器
list(iterable) 内置函数 iterable:可迭代对象 将可迭代对象转换为列表 list
bin(x) 内置函数 x:整数 返回整数的二进制字符串表示,前缀为 0b str
str.count(sub) 字符串方法 sub:搜索的子字符串 start/end(可选):范围 统计子字符串在字符串中出现的次数 int
range(stop) 内置函数 stop:结束值(不包含) 生成一个不可变的整数序列 range
range(start,stop,step) 内置函数 start(可选):默认为0 step(可选):步长,默认为1 生成一个不可变的整数序列 range
  • for 循环的多种用法
  1. 直接遍历列表、字符串、元组...

    python 复制代码
    for 元素 in 可迭代对象:
    
    # 示例
    for char in "Python":
        print(char)
  2. 结合 range() 控制次数

    python 复制代码
    for i in range(stop):           # 0 到 stop-1
    for i in range(start, stop):    # start 到 stop-1
    for i in range(start, stop, step): # 带步长
  3. 结合 enumerate() 有索引

    python 复制代码
    for 索引, 元素 in enumerate(列表):
    
    # 示例
    lst = ['a', 'b', 'c']
    
    # 同时获取下标和值
    for idx, val in enumerate(lst):
        print(f"索引 {idx} 对应的是: {val}")
  4. 结合 zip() 并行遍历

    python 复制代码
    for 元素1, 元素2 in zip(列表1, 列表2):
    
    # 示例
    names = ['Alice', 'Bob', 'Charlie']
    scores = [95, 87, 92]
    
    # 同时遍历名字和分数
    for name, score in zip(names, scores):
        print(f"{name} 的分数是 {score}")
  5. 使用 _ 占位符

    python 复制代码
    for _ in range(次数):
    
    # 示例
    # 单纯打印 3 次 "Hello",不关心是第几次
    for _ in range(3):
        print("Hello")
  6. 结合 else 加入判断,else 只会在循环正常结束后执行

    python 复制代码
    for 元素 in 列表:
        if 条件:
            break
    else:
        # 如果循环没有被 break 打断,执行这里
  7. 一行代码

    python 复制代码
    新列表 = [表达式 for 变量 in 可迭代对象 if 条件]
    
    # 示例-需求:生成 0-9 每个数的平方的列表 [0, 1, 4, 9...]
    
    # 普通写法 (3行)
    squares = []
    for i in range(10):
        squares.append(i ** 2)
    
    # 列表推导式写法 (1行)
    squares = [i ** 2 for i in range(10)]
相关推荐
jufeng13077 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 11 篇】
python·ai agent·mcp
想吃火锅10057 小时前
【leetcode】200. 岛屿数量
算法·leetcode·职场和发展
En^_^Joy7 小时前
Django项目配置全攻略:settings配置文件
后端·python·django
Nil2088 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
for_ever_love__8 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习
AC赳赳老秦8 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
依然鸣9 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
麻雀飞吧10 小时前
零基础选量化工具,先把问题说清楚
人工智能·python
段一凡-华北理工大学10 小时前
AI推动工业智能化转型~系列文章20:工业 AI 平台架构:云-边-端协同的技术体系
人工智能·python·架构·工业平台·云-边协同