当我看到这个问题的答案时,我发现我不明白自己的答案.
我真的不明白这是如何被解析的.为什么第二个示例返回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) 这是关于信用卡问题.因此,如果数字是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 j到int j.我想这是因为51到55的数字是整数..?
无论如何,错误没有说什么pow(10,15) <= c < pow(10,16).为什么我不能用51 <= j <= 55?