首页 > 解决方案 > isinstance() 没有按我认为的方式工作

问题描述

我的程序需要用户输入包含两个元素的列表,因此为了检查是否满足这些条件,我使用了以下代码:

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 循环。为什么?

标签: python

解决方案


因为你的start变量原来是一个字符串:start = "[2,5]",这不是一个列表。您可以要求用户输入例如2,3,然后您得到"2,3". 然后,您可以使用将其拆分为列表start.split(',')


推荐阅读