相关疑难解决方法(0)

为什么([1,0] == True中的1)评估为False?

当我看到这个问题的答案时,我发现我不明白自己的答案.

我真的不明白这是如何被解析的.为什么第二个示例返回False?

>>> 1 in [1,0]             # This is expected
True
>>> 1 in [1,0] == True     # This is strange
False
>>> (1 in [1,0]) == True   # This is what I wanted it to be
True
>>> 1 in ([1,0] == True)   # But it's not just a precedence issue!
                           # It did not raise an exception on the second example.

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    1 in ([1,0] == …
Run Code Online (Sandbox Code Playgroud)

python syntax operator-precedence

149
推荐指数
1
解决办法
4630
查看次数

为什么我不能只使用51 <= j <= 55?/数据类型

这是关于信用卡问题.因此,如果数字是16位且前两位是51,52,53,54或55,则该卡是万事达卡.

起初,我试过了(51 <= j <= 55).我认为这种情况是有道理的.原因j是整数.但由于某种原因,错误说(51 <= j <= 55)永远是真的(我不明白这一点!).所以我不得不写(j==51 || j==52 || j==53 || j==54 || j==55),这基本上是一样的(51 <= j <= 55).

int j = c / pow(10,14);

if(pow(10,15) <= c < pow(10,16) && (j==51 || j==52 || j==53 || j==54 || j==55)) 
{
    printf("MASTERCARD\n");
}
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好..(我不知道为什么)而且我不得不做一些改动j,从... double jint j.我想这是因为51到55的数字是整数..?

无论如何,错误没有说什么pow(10,15) <= c < pow(10,16).为什么我不能用51 <= j <= 55

c

-3
推荐指数
1
解决办法
121
查看次数

标签 统计

c ×1

operator-precedence ×1

python ×1

syntax ×1