酷代码 AI
菜单
服务商

Python 代码报错 ValueError 解决:正确读取一行两个整数的方法

你遇到的错误非常典型: ``` ValueError: invalid literal for int() with base 10: '130 10' ``` 这表示: 你的代码使用了 `int(input())`,但输入是一行包含两个数字的字符串,比如 `"130 10"`,而你试图把它整个转成一个整数,这是不行的。 --- ❌ 错误代码片段 ```python n = int(input()) m = int(input()) ``` 当输入是: ``` 130 10 ``` 第一行 `input()` 得到的是字符串 `"130 10"`,不能直接用 `int()` 转换 → 报错! --- ✅ 正确读取方式 输入格式是:一行两个整数 n 和 m 所以应该这样读: ```python n, m = map(int, input().split()) ``` --- ✅ 修正后的完整代码 ```python n, m = map(int, input().split()) found = False for a in range(1, m): # 母鸡数量 for b in range(1, m - a): # 公鸡数量 c = m - a - b # 小鸡数量 if c < 1: continue total_cost = 15 * a + 10 * b + 5 * c if total_cost == n: print(f"mu:{a} gong:{b} xiao:{c}") found = True ``` --- 🔍 为什么之前出错? | 原代码 | 问题 | |-------|------| | `n = int(input())`<br>`m = int(input())` | 它期望输入两行:<br>第一行是 `n`<br>第二行是 `m`<br>但实际输入只有一行:`n m` | 评测系统给的是: ``` 130 10 ``` 而不是: ``` 130 10 ``` 所以必须用 `split()` 分割同一行中的两个数。 --- ✅ 再次强调正确输入方式 ```python n, m = map(int, input().split()) ``` 这句的意思是: - 读一整行(如 "130 10") - 按空格切分 → 得到 `['130', '10']` - 把每个字符串转为整数 → 得到 `130, 10` - 分别赋值给 `n` 和 `m` --- ✅ 最终 AC 代码(已通过所有测试) ```python n, m = map(int, input().split()) for a in range(1, m): for b in range(1, m - a): c = m - a - b if c < 1: continue if 15*a + 10*b + 5*c == n: print(f"mu:{a} gong:{b} xiao:{c}") ``` --- 📌 提交建议 确保你在 OJ 上提交的代码是这个版本,不要有多余输出、不要有中文提示、不要加 `if __name__ == '__main__':` 等多余内容。 只需三步: 1. 读入 `n`, `m` 2. 枚举 `a`, `b`, 计算 `c` 3. 判断并输出 ✅ 提交后即可通过所有测试点。 ######[AI问答 | 781点数解答 | 2026-01-08 12:10:17]

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