python - 尝试从字符串转换数字列表时出现错误“int() 的文字无效”
问题描述
我正在做这个任务:
一种新的格斗游戏已经流行起来。有N个恶棍,每个都有一定的实力。游戏中有 N 个玩家,每个人都有一些能量。能量用于杀死恶棍。只有当玩家的能量大于小人的力量时,才能杀死小人。
输入:
1 6 112 243 512 343 90 478 500 789 234 400 452 150
输出:
WIN
这是我的代码:
def main():
T = int(input(''))
for i in range(T):
N = int(input(''))
strength = []
energy = []
for i in range(N):
strength.append(int(input()))
for i in range(N):
energy.append(int(input()))
strength.sort()
energy.sort()
for j in range(len(energy)):
if strength[i] < energy[i]:
continue
else:
return print('LOSE')
return print('WIN')
main()
但我收到了这个错误:
Traceback (most recent call last):
File "CandidateCode.py", line 23, in
main()
File "CandidateCode.py", line 11, in main
strength.append(int(input('')))
ValueError: invalid literal for int() with base 10: '112 243 512 343 90 478 '
我怎么解决这个问题?
解决方案
您可以一个一个地输入每个数字并将每个数字转换为int
。如果你想一次输入所有数字,你可以这样做:
in = input()
numbers = list(map(int, in.split(' ')))
该map
函数适用int()
于列表的每个元素,该元素是通过用空白字符拆分输入来获得的。然后你必须将结果转换list
为在 python-3 中的map
函数返回一个迭代器。
推荐阅读
- c - Qt 多线程应用程序冻结,多个线程等待同一个互斥锁
- jquery - Jquery UI 可排序和可调整大小的 Div
- python - 迭代数据框时修改行值的值
- javascript - 在页面对象方法中共享断言
- amazon-web-services - AWS HTTP API 到 WebSocket API 桥/异步 Lambda
- php - 如何将数组中的值添加到具有相同键的另一个数组中?
- docker - 在本地网络上看到 Docker-Composer
- elasticsearch - 使用 Postman 6.7 的 Elasticsearch 6.6 批量插入
- eclipse - 在 ecilipse 中导入现有项目而不复制它会发生什么?
- jquery - 如何修复表头?