无法在Python中运行else / if语句

时间:2013-07-22 19:19:58

标签: python if-statement

我是Python的新手,我正在尝试使用各种在线资源自学一些东西。在WIkipedia关于算法的文章中,有一个示例BASIC程序;我决定尝试使用Python编写相同的程序,但我遇到了if / else语句的语法问题。我很确定这是一个基本的格式化问题,但我没有足够的编码经验来理解我做错了什么。以下代码块:

# Euclid's algorithm for greatest common divisor

print "Euclid's algorithm for greatest common divisor"

print "Type two integers greater than 0"
("\n")
("\a")

# Gather input from user in the form of a string. 

("\n")
a = raw_input("Integer 1? ")
("\n")
b = raw_input("Integer 2? ")
("\n")

# Calculate equalities.

if b = 0:
    print a

elif a > b:
a = a - b
print a

b = b - a

if b = 0:
print a

返回错误:

  File "euclid.py", line 35
    if b = 0:
         ^
SyntaxError: invalid syntax

我意识到整个模块是不完整的,但在进入下一部分之前,我想弄清楚我在这部分做错了什么。

4 个答案:

答案 0 :(得分:4)

两个问题:

if b = 0: # this is assignment; you want == which is comparison
    print a

elif a > b:
a = a - b # this needs to be indented just like the print under the if clause

答案 1 :(得分:2)

您正在使用要测试相等性的作业。使用两个 =标志:

if b == 0:

b = 0是一个赋值语句,你不能在其他语句中使用语句; b == 0测试b是否等于0.

答案 2 :(得分:2)

  1. =是分配(如x=4,表示set x=4)。 ==是平等检查。你想要==。
  2. python需要缩进。
  3. 因此

    if True:
    print 'happy'`
    

    是语法错误,而

    if True:
      print 'happy'
    

    没关系。

    1. 严格来说,这并不是语法错误,但代码中的("\n")语句是什么?目前他们什么也没做。

答案 3 :(得分:0)

对于大多数编程语言,检查相等性用双等号表示,意味着检查它们是否相等并返回true / 1或false / 0。这是因为你需要区分询问两件事是否相等并说明这种关系。

所以使用==而不是=