【问题标题】:Java vs Python Logic on Selection Statement( if-else) [closed]选择语句上的 Java vs Python 逻辑(if-else)[关闭]
【发布时间】:2017-11-24 10:28:54
【问题描述】:

在 JAVA 中,下面的代码输出为“hi”

boolean b=True;
if (b=False) 
{ 
    SOP("hello"); 
} 
else 
{ 
    SOP("hi"); 
}

Python-2.7 中的相同登录不起作用。为什么??????

b=True
if (b=False):
        print "hello"
else:
        print "hi"

【问题讨论】:

  • 您的语法错误。使用 == 进行比较
  • 尝试 if (b): print "hello" else: print "hi" .
  • f"h{('i','ello')[b]}"
  • 问题错了。两种语言的if 语句中的相等性检查是==,而不是单个“=”。投票结束这个问题。
  • 但是当它“=”适用于 JAVA,其中“==”是 JAVA 中的比较运算符时,python 不同样适用???...

标签: python


【解决方案1】:

一个等号,即=,用于变量赋值。

为了比较,您必须使用双等于==。所以用这个替换你的if 行:

if (b==False):

除此之外,Python 中的括号是不必要的。你可以写:

if b == False:

它仍然可以工作。由于b 是一个布尔值(True 或 False),你也可以这样做

if not b:

【讨论】:

  • 但是当它“=”适用于 JAVA,其中“==”是 JAVA 中的比较运算符时,python 不同样适用???...
  • @Anith 我对 Java 不是很熟悉,但我猜赋值是一个返回 0 的函数。由于 0 转换为布尔值是假的,这就是你的代码有效的原因。不过,这并不是真正预期的行为。尝试将条件更改为 if (b=true) 并查看它是否输出相同的内容。我的猜测是它会的。
  • @Anith for Java stackoverflow.com/questions/2393988/… .. if(b=false) 计算结果为 if(b) 这是错误的
  • @PedrovonHertwig 不是真的......检查我上面的评论
【解决方案2】:

b 已经是一个布尔值,无需与另一个布尔值进行比较。

b = True
if not b:
    print("hello")
else:
    print("hi")

或者简单地颠倒逻辑:

b = True
if b:
    print("hi")
else:
    print("hello")

如果你确实将它与False 进行比较,你会写b == False,而不是b = False

最后,在 Python 中,赋值是 statement, not an expression。这是一个深思熟虑的选择,以避免在编写 if (b = x) 而不是 if (b == x) 时出现错误。

【讨论】:

  • 但是当它“=”适用于 JAVA,其中“==”是 JAVA 中的比较运算符时,python 不同样适用???...
猜你喜欢
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2014-02-19
  • 2011-10-31
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多