Python每日一练 · 四道经典选择题(含详细解析)

Python每日一练 · 四道经典选择题(含详细解析)

Python每日一练 · 四道经典选择题(含详细解析)

本文精选自牛客网 Python 刷题记录,每道题附详细解析、知识拓展和个人思考。适合查漏补缺,夯实基础。

目录


题目1:capitalize() 的返回值

题干
下面这段 Python3 代码运行后,ab 分别输出什么?
之前我一直没注意这个细节,今天终于搞懂了。

a ='python' b = a.capitalize()print(a)print(b)

选项:

A. python python

B. python Python

C. python PYTHON

D. Python Python

我的答案:A(我最初以为 capitalize() 会修改原字符串)

正确答案:B

解析:
capitalize() 方法将字符串的第一个字符转换为大写,其余字符转换为小写,并返回一个新字符串,原字符串 a 不变。所以 a 仍是 ‘python’,b 是 ‘Python’。输出结果为:

text
python
Python
因此选 B。

知识点拓展:

capitalize() 只转换首字母,且其他字母转为小写。

如果想将每个单词首字母大写,用 title()。

其他大小写转换方法:upper()、lower()、swapcase()。

字符串是不可变对象,所有修改操作都返回新字符串,原字符串不受影响。

题目2:字典的键可以是元组吗?

题干
以下代码运行后,输出什么?
做完这道题我才发现,原来我一直误解了字典与元组的区别

dicts ={} dicts[(1,2)]=({3,(4,5)})print(dicts)

选项:

A. 报错

B. {(1, 2): {(4, 5), 3}}

C. {(1, 2): [(4, 5), 3]}

D. {(1, 2): [3, 4, 5]}

我的答案:C(我以为集合会转成列表)

正确答案:B

解析:

字典的键必须是可哈希的(不可变类型)。元组 (1,2) 是不可变的,因此可以作为键。

值是一个集合 {3, (4, 5)},集合本身是可变的,但作为值没有问题。

集合是无序的,输出时元素顺序可能不同,但元素是 3 和 (4,5),所以选项 B 符合。

选项 C 是列表,不符合;D 的元素不对。

知识点拓展:

可哈希类型:不可变类型如 int、str、tuple;可变类型如 list、dict、set 不可哈希。

集合内的元素也必须是可哈希的,所以集合可以包含元组,但不能包含列表。

打印集合时,顺序可能与定义时不同,这是集合的无序性。
接下来这道题更有意思,考查的是默认参数的调用

题目3:默认参数的陷阱

题干:
依次调用 add_user(‘Alice’),再调用 add_user(‘Bob’),两次调用分别返回的列表是什么?

defadd_user(name, users=[]): users.append(name)return users 

选项:

A. 第一次 [‘Alice’], 第二次 [‘Bob’]

B. 第一次 [‘Alice’], 第二次 [‘Alice’, ‘Bob’]

C. 第一次 [‘Alice’, ‘Bob’], 第二次 [‘Alice’, ‘Bob’]

D. 两次均抛出 TypeError

我的答案:A(我以为每次调用都会创建新列表)

正确答案:B

解析:
Python 函数的默认参数在定义时只计算一次,后续调用如果没传该参数,会共用同一个默认对象。因此:

第一次调用后,默认列表变为 [‘Alice’];

第二次调用时,仍使用同一个列表,追加 ‘Bob’ 后变为 [‘Alice’, ‘Bob’]。

所以第一次返回 [‘Alice’],第二次返回 [‘Alice’, ‘Bob’]。

知识点拓展:

避免使用可变对象作为默认参数,可以用 None 并在函数内部创建新列表。

defadd_user(name, users=None):if users isNone: users =[] users.append(name)return users 

这个陷阱常见于初学者,也是面试常考题。

题目4:divmod() 的返回值

这道题我第一眼差点选对,因为divmod的用法
题干:
以下代码运行后输出什么?

a =100 b =14print(divmod(a, b))

选项:

A. (7, 0)

B. (7, 2)

C. [7, 2]

D. None

我的答案:C(我以为返回列表)

正确答案:B

解析:
divmod(a, b) 返回一个元组 (a // b, a % b)。100 除以 14,商为 7,余数为 2,所以结果是 (7, 2)。

知识点拓展:

divmod() 适用于整数和浮点数,返回的商是向下取整。

可以用于同时获取商和余数,比分别计算更高效。

返回值是元组,因此可以用 q, r = divmod(a, b) 解包。

今日总结

今天这四道题涉及:

(1) 字符串方法(capitalize)
(2) 字典键的合法性(可哈希要求)
(3) 函数默认参数的陷阱
(4) 内置函数 divmod 的返回值

其中默认参数是我最容易出错的地方,以后要特别注意避免使用可变默认参数。你也遇到过类似的问题吗?欢迎在评论区留言讨论。

本文首发于 ZEEKLOG,题目来源:牛客网 Python 练习题。
如果觉得有帮助,请点赞、收藏、关注,你的支持是我更新的动力!

Read more

大模型之Spring AI实战系列(二):Spring Boot + OpenAI 打造聊天应用全攻略

大模型之Spring AI实战系列(二):Spring Boot + OpenAI 打造聊天应用全攻略

系列篇章💥 No.文章1大模型之Spring AI实战系列(一):基础认知篇 - 开启智能应用开发之旅2大模型之Spring AI实战系列(二):Spring Boot + OpenAI 打造聊天应用全攻略 目录 * 系列篇章💥 * 前言 * 一、开发环境准备 * (一)Java 版本要求 * (二)Maven 构建工具 * (三)OpenAI API 密钥 * 二、POM依赖引入 * (一)Spring AI与OpenAI集成依赖包 * (二)SpringAI相关依赖包版本管理 * 三、配置文件详解 * 四、核心代码详解 * (一)Application启动类 * (二)基于ChatClient API对话聊天 * 1. 基本对话接口 * 2. 带通用选项对话 * 3.

By Ne0inhk
OpenClaw WebSocket Channel开发实战:从零打造自定义 AI 通信通道

OpenClaw WebSocket Channel开发实战:从零打造自定义 AI 通信通道

🎯 项目背景 为什么做这个项目? 最近 OpenClaw 特别火🔥,这是一个强大的个人 AI 助手网关,支持接入 WhatsApp、Telegram、Discord 等 15+ 个消息平台。作为一个技术爱好者,我决定深入学习一下它的架构设计。 学习目标: * ✅ 理解多通道 AI 网关的架构模式 * ✅ 掌握 OpenClaw 插件化开发技能 * ✅ 实践 WebSocket 实时双向通信 * ✅ 为社区贡献一个实用的教学案例 项目定位:这不是一个生产级项目,而是一个学习性质的教学案例,帮助其他开发者快速上手 OpenClaw 插件开发。 技术栈 前端层:Vue 3 + WebSocket ↓ 服务端:Python + aiohttp + uv ↓ 通道层:Node.js + ws + OpenClaw Plugin SDK

By Ne0inhk
AI工具泛滥时代,为什么“能力“越来越不值钱?

AI工具泛滥时代,为什么“能力“越来越不值钱?

文章目录 * 一、一个荒诞的现象:工具民主化与机会不平等 * 二、三个被误读的AI创业神话 * 三、AI创作者的真正壁垒:从"工具使用者"到"商业闭环构建者" * 四、给新手的实战建议:从0到1的行动清单 * 五、关于《脉向AI》栏目 * 六、适合谁看? 一、一个荒诞的现象:工具民主化与机会不平等 2025被称为"AI应用元年",但一个诡异的分化正在发生。 一方面,AI工具从未如此普及。ChatGPT、Midjourney、Claude、Sora、可灵、即梦……每个月都有新的"生产力神器"登上热搜。知识付费市场上,“AI副业课”" prompt工程&

By Ne0inhk
【AI深究】随机森林(Random Forest)全网最详细全流程详解与案例(附Python代码演示)|集成学习|数学原理、案例流程、代码演示及结果解读|参数与调优、工程启示、单棵决策树的对比、优缺点

【AI深究】随机森林(Random Forest)全网最详细全流程详解与案例(附Python代码演示)|集成学习|数学原理、案例流程、代码演示及结果解读|参数与调优、工程启示、单棵决策树的对比、优缺点

大家好,我是爱酱。本篇将会系统地讲解随机森林(Random Forest)的原理、核心思想、数学表达、算法流程、代码实现与工程应用。内容适合初学者和进阶读者,配合公式和可视化示例。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力! 注:随机森林(Random Forest)与决策树(Decision Tree)息息相关,因此不了解决策树的同学建议先去了解一下,爱酱也有文章深入探讨决策树,这里也给上链接。 传送门: 【AI深究】决策树(Decision Tree)全网最详细全流程详解与案例(附Python代码演示)|数学原理、案例流程、代码演示及结果解读|ID3、C4.5、CART算法|工程启示、分类、回归决策树-ZEEKLOG博客 一、随机森林是什么?

By Ne0inhk