【发布时间】:2017-04-22 15:08:25
【问题描述】:
我正在尝试创建一个简单的脚本,该脚本应该计算列表中有多少 integers 或 strings。
起初列表是空的,然后要求用户用数字或字符串填充它,这是脚本:
lis = [] # list name
num, lett = 0, 0 # init counters of numbers and letters
while True:
x = input("digit an int or string, 'stop' returns values: ")
if(x=='stop'):
False
break
i = lis.append(x)
if isinstance(i, int): # check whether is integer
num += 1
else:
lett += 1
print(lis)
print("there are " + str(num) + " numbers")
print("there are " + str(lett) + " strings")
程序可以运行,但问题最终出现,因为当我打印列表时,它只看到字符串,例如,偶数返回为 '10'。
我需要解释器自动识别整数。
【问题讨论】:
-
你需要使用
x.isdigit(),因为x仍然是一个字符串isinstance()每次都会失败,因为它测试的是变量的数据类型而不是字符内容。但是除了这个之外,您的代码中还有很多,很多错误。我建议阅读 Python 教程以了解如何在其中编程。 -
The program works我非常怀疑这一点。lis.append(x)返回None。顺便说一句:False之前的break什么都不做。 -
致正在回答的用户:请停止回答此问题。它是广泛的,离题的,很可能不会帮助任何未来的用户。如果他阅读 Python 的初学者教程,它将使 OP 受益更多。在代码转储之后简单地发布代码转储对任何人都没有帮助。至少你可以为你的代码提供一个解释。
-
@mpf82 在他不会出错的意义上它会起作用。
lis.append(x)返回None只是通过检查i是否属于int类型来复杂化问题——i永远不会是int,因为它是None,因此他的代码称之为字符串。
标签: python string list integer