【发布时间】:2017-04-02 15:26:11
【问题描述】:
我有一个简单的函数,可以测试元组中的一个项目,看看它是否真实。出于某种原因,所有测试都返回 True (...if connection:...),即使正在测试的值是 1(假定为 True)或 0(假定为 false)。
我测试了1 == True(输出:True),1 == False(False),连接是否为True(False)只是为了尝试了解发生了什么。
用户输入:players = [('a', 1), ('b', 0)]
功能:
def validplayers(players):
for player, connection in players:
if connection:
player
print player, connection, 1 == True, 1 == False, connection is True
输出:
a 1 True False False
b 0 True False False
connection var 传递了 type(connection) 定义为 int 的 1 或 0。
【问题讨论】:
-
你没有在
if声明中做任何事情。你只引用player,没有别的。这种表达方式一无所获。 -
我是一名学习python的学生。该功能不应该只显示具有 1(真)连接的玩家吗?
-
为什么要这样?
print语句不是if测试的一部分。它总是被执行。 -
如果您希望这种情况发生,
print的缩进位置错误。 -
是否不接受学习该语言的学生提出的问题?不知道为什么或不赞成一个问题意味着什么。这是一个愚蠢的问题还是这是否意味着堆栈溢出太容易了?
标签: python truthiness