第十六届蓝桥杯省赛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)]
相关推荐
cpp_250115 分钟前
P1024 [NOIP 2001 提高组] 一元三次方程求解
数据结构·c++·算法·题解·二分答案·洛谷·csp
2401_846339561 小时前
CSS如何优化大型项目样式_使用SASS预处理器提升开发效率
jvm·数据库·python
田梓燊7 小时前
力扣:23.合并 K 个升序链表
算法·leetcode·链表
invicinble7 小时前
这里对java的知识体系做一个全域的介绍
java·开发语言·python
re林檎7 小时前
算法札记——4.27
算法
m0_674294648 小时前
如何编写SQL存储过程性能对比_记录执行时间评估优化效果
jvm·数据库·python
数据牧羊人的成长笔记8 小时前
逻辑回归与Softmax回归
算法·回归·逻辑回归
运气好好的8 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
郑州光合科技余经理8 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
2401_871492859 小时前
Layui如何修改Layui默认的UI主题颜色(换肤功能实现)
jvm·数据库·python