我是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
我意识到整个模块是不完整的,但在进入下一部分之前,我想弄清楚我在这部分做错了什么。
答案 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)
x=4
,表示set x=4
)。 ==是平等检查。你想要==。因此
if True:
print 'happy'`
是语法错误,而
if True:
print 'happy'
没关系。
("\n")
语句是什么?目前他们什么也没做。答案 3 :(得分:0)
对于大多数编程语言,检查相等性用双等号表示,意味着检查它们是否相等并返回true / 1或false / 0。这是因为你需要区分询问两件事是否相等并说明这种关系。
所以使用==而不是=