【发布时间】:2019-10-23 13:33:57
【问题描述】:
我的程序需要用户输入包含两个元素的列表,因此为了检查是否满足这些条件,我使用了以下代码:
start = input('Enter you start location.\nE.g. Enter "[2,5]" for x-coordinate 2 and y-coordinate
5.')
while isinstance(start, list) == False or len(start) != 2:
start = input('Try again.')
无论我输入什么,这都不会退出 while 循环。为什么?
【问题讨论】:
-
input将始终返回str对象。 -
是什么让您认为您从输入中收到的数据是一个列表?很可能是字符串。所以这将使“2,5”是 3 个字符(不是 2)
-
@J.Murray 不太可能; 是。如果
start == '[2,5]',len(start)将返回 5,而不是 3。 -
@mom'sSpaghettiCode 在 Python 2 中,
input确实会返回列表[2, 5]而不是字符串'[2,5]'。这在 Python 3 中不再适用,它的input函数等效于 Python 2 的raw_input。
标签: python