第十六届蓝桥杯省赛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)]
相关推荐
yaoxin5211232 小时前
375. Java IO API - 列出目录内容
java·开发语言·python
小陈工2 小时前
2026年4月5日技术资讯洞察:AI商业模式变革、知识管理革命与开源生态反击
开发语言·人工智能·python·安全·oracle·开源
Tanecious.2 小时前
蓝桥杯备赛:Day8-小红杀怪
c++·蓝桥杯
ZC跨境爬虫2 小时前
Playwright模拟鼠标滚轮实战:从原理到百度图片_豆瓣电影爬取
爬虫·python·计算机外设
生信研究猿2 小时前
leetcode 101.对称二叉树(不会做)
算法·leetcode·职场和发展
The_era_achievs_hero2 小时前
电子签名(蓝桥杯)
前端·蓝桥杯
2401_827499992 小时前
python核心语法04-函数
开发语言·python
重生之我是Java开发战士2 小时前
【笔试强训】Week1:点击消除,数组中两个字符串的最小距离,dd爱框框,腐烂的苹果,大数乘法
java·开发语言·算法
枫叶林FYL2 小时前
【自然语言处理 NLP】前沿架构与多模态 选择性状态空间模型与并行扫描算法:从原理到实现
算法·自然语言处理·架构