繁体   English   中英

“ int()的无效文字”使用空格分隔的数字解析字符串

[英]“invalid literal for int()” parsing a string with space-separated numbers

我正在为在线课程编写的程序是确定整数列表是否为正,然后检查它们是否是回文。 如果所有条件都为真,则应该打印True,如果所有条件都为假,则应该打印false。

我已经尝试过使用列表推导来避免使用map函数,但是它仍然给了我同样的错误,因此我决定改回使用map。

_ = input()
number = list(map(int, input()))
if all(number) > 0:
    all(number == number[::-1] for i in number)
else:
    print("False")

我预期为False因为我输入的自定义输入为:3 8 -12 25但相反,一直收到错误消息:ValueError:int的无效文字,它指出的那一行是第2行

修正:

  1. 将数字分成列表
  2. 固定使用all
  3. 在条件匹配的情况下实际打印True

请让我知道这是否适合您:

_ = input()
numbers = list(map(int, input().split()))
if all(n > 0 for n in numbers) and numbers == numbers[::-1]:
    print("True")
else:
    print("False")

您必须拆分字符串才能从中获取列表:

number = list(map(int, input().split(" ")))

map()一次接受输入字符串1个字符-因此,当它遇到空格('')-无法转换时,请尝试

number = list(map(int,input().split()))

代替:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM