Python实现:判断数字个位是否为3、5、7的计数函数
好的,我们先来一步步分析这个问题,并用 Python 函数来实现。 --- ## 🧠 问题分析 1. **条件**:桃子喜欢一个数字,当且仅当它的**个位**是 3、5 或 7。 2. **输入**:三个整数 `a, b, c`。 3. **输出**:喜欢数字的个数。 4. **实现方式**:用函数封装判断逻辑。 --- ## 📝 思路 - 判断一个数字 `n` 的个位是否为 3、5 或 7,可以用 `n % 10` 得到个位数。 - 然后检查 `n % 10 in (3, 5, 7)`。 - 对 `a, b, c` 分别判断,统计符合条件的个数。 --- ## 🧑💻 代码实现 ```python def count_favorite_numbers(a, b, c): """ 返回 a, b, c 中个位是 3、5 或 7 的数字个数。 """ count = 0 for num in (a, b, c): if num % 10 in (3, 5, 7): count += 1 return count # 示例:输入读取与函数调用 if __name__ == "__main__": # 输入格式:一行,三个整数,空格分隔 a, b, c = map(int, input().split()) result = count_favorite_numbers(a, b, c) print(result) ``` --- ## 🔍 代码解释 1. **`num % 10`**:取余运算,得到个位数。 2. **`in (3, 5, 7)`**:判断个位数是否在元组 `(3, 5, 7)` 中,比用 `or` 连接多个条件更简洁。 3. **`for num in (a, b, c)`**:遍历三个数,避免重复写三次判断逻辑。 4. **`map(int, input().split())`**:将输入的一行按空格分割,并转为整数。 --- ## ⚠️ 注意事项 - 输入数字可以是负数吗?题目一般默认非负整数或任意整数。 对于负数,`-17 % 10` 在 Python 中结果是 `3`(因为 Python 的 `%` 是取模,不是取余,结果符号与除数相同),所以 `-17` 的个位会被判断为 `3`,也符合“个位是 3”的直观理解(-17 的个位数字确实是 7?这里要小心)。 如果题目明确是**正数**,则没问题。如果包含负数且要求数学上的“个位数字”,需要额外处理:`abs(num) % 10`。 - 如果题目要求**个位数字**是 3、5、7(数学定义,负数时个位数字是绝对值个位),则改为: ```python if abs(num) % 10 in (3, 5, 7): ``` --- ## 🚀 进阶与优化 1. **更通用的函数**:可以传入任意数量的参数: ```python def count_favorite_numbers(*args): return sum(1 for num in args if abs(num) % 10 in (3, 5, 7)) ``` 2. **性能**:对于三个数,直接判断和循环差别不大,可读性优先。 3. **错误处理**:如果输入不是整数,`int()` 会抛出异常,根据题目要求一般不需要处理。 --- ## 📚 开发建议 - 将核心逻辑封装成函数,便于测试和复用。 - 注意题目对负数的要求,决定是否用 `abs()`。 - 使用 `if __name__ == "__main__":` 来隔离主程序代码,方便模块导入。 --- ######[AI写代码神器 | 873点数解答 | 2026-04-10 19:40:16]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)355
- C 语言实现链表操作:创建、输出、删除及插入功能详解(字节豆包 | 534点数解答 | 2024-12-09 21:33:48)349
- C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点(字节豆包 | 609点数解答 | 2024-12-18 12:18:21)369
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)473
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)49
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)61
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)429
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)421
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)325
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)318
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)294
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)86