酷代码 AI
菜单
服务商

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]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]