python - 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 循环。为什么?
解决方案
因为你的start
变量原来是一个字符串:start = "[2,5]"
,这不是一个列表。您可以要求用户输入例如2,3
,然后您得到"2,3"
. 然后,您可以使用将其拆分为列表start.split(',')
推荐阅读
- javascript - 在 php 中出现错误,无法以字母形式获取值
- angular - 显示标题字符串/templateRef Angular
- r - R 正则表达式捕获组并引用捕获的模式
- python - 有没有比这更好的方法来混合 websocket recv 和发送调用?
- javascript - 弃用警告:不推荐使用当前的服务器发现和监控引擎
- r - r中矩阵格式数据的相关性
- move - 如何在 Libra 测试网中创建自定义代币?
- javascript - 使用javascript的页脚asp.net core 2.2标签中的数据表页脚摘要
- python - Luigi:提交 PySpark 任务时没有此类文件或目录错误
- javascript - 识别无序列表中单击的按钮:React