语法错误,初级Python 2.7代码
这里是代码的极端初学者。正在阅读John V.Guttag的“使用Python进行计算和编程入门”。第一个问题是: 编写一个程序,检查三个变量x、y和z- 并打印其中最大的奇数。如果没有奇数,则 应该打印这样的信息。” 我编写的代码在第5、7和9行有语法错误。因为我是一个完全的初学者,我想不出来。欢迎咨询语法错误,初级Python 2.7代码,python,python-2.7,syntax-error,Python,Python 2.7,Syntax Error,这里是代码的极端初学者。正在阅读John V.Guttag的“使用Python进行计算和编程入门”。第一个问题是: 编写一个程序,检查三个变量x、y和z- 并打印其中最大的奇数。如果没有奇数,则 应该打印这样的信息。” 我编写的代码在第5、7和9行有语法错误。因为我是一个完全的初学者,我想不出来。欢迎咨询 FirstNumber=int(input("Enter First Number:")) SecondNumber=int(input("Enter Second Number:"))
FirstNumber=int(input("Enter First Number:"))
SecondNumber=int(input("Enter Second Number:"))
ThirdNumber=int(input("Enter Third Number:"))
if (FirstNumber%2!=0:) and (FirstNumber > SecondNumber and FirstNumber > ThirdNumber)
print 'First Number is largest odd -> '+str(FirstNumber)
elif (SecondNumber%2!=0:) and (SecondNumber > FirstNumber and SecondNumber > ThirdNumber)
print 'Second Number is largest odd -> '+str(SecondNumber)
elif (ThirdNumber%2!=0:) and (ThirdNumber > FirstNumber and ThirdNumber > SecondNumber)
print 'Third Number is largest odd -> '+str(ThirdNumber)
else:
print 'None are odd -> '+str(FirstNumber), str(SecondNumber), str(ThirdNumber)
如注释中所述,您的代码缺少
if
和elif
语句末尾的冒号。此外,您的代码在第一个条件测试中有多余的冒号(即(FirstNumber%2!=0:)
另外,正如您提到的,您是一名初学者,关于简化代码或提高可读性的一些建议
firstNum = int(input("Enter First Number: "))
secondNum = int(input("Enter Second Number: "))
thirdNum = int(input("Enter Third Number: "))
# In this case, we don't need the parenthesis. (Sometimes parens are
# required to ensure that the logic works correctly, but in this case,
# we don't.) Python short circuits, meaning it will stop the If
# statement mid-way as soon as a conditional statement equivocates to False.
if firstNum % 2 != 0 and firstNum > secondNum and firstNum > thirdNum:
print 'First Number is largest odd -> ' + str(firsthirdNum)
elif secondNum % 2 != 0 and secondNum > firstNum and secondNum > thirdNum:
print 'Second Number is largest odd -> ' + str(secondNum)
elif thirdNum % 2 != 0 and thirdNum > firstNum and thirdNum > secondNum:
print 'Third Number is largest odd -> ' + str(thirdNum)
else:
print 'None are odd -> ' + str(firstNum), str(secondNum), str(thirdNum)
你忘了:
在python中,if、elif和else总是以“:”结尾
同样在创建函数时。在if语句中的每个条件的末尾需要冒号(:
)(不是在每个组成部分的末尾)。您只需要知道语法,没有什么特别的
另外两件不必要的事情是,您应该添加一些空格以使操作更清晰,并且可以删除!=0
检查,因为任何不是0
的整数计算为True
,因此将达到相同的效果。最后,不需要括号
下面是正确的代码:
FirstNumber = int(input("Enter First Number:"))
SecondNumber = int(input("Enter Second Number:"))
ThirdNumber = int(input("Enter Third Number:"))
if FirstNumber % 2 and FirstNumber>SecondNumber and FirstNumber>ThirdNumber:
print 'First Number is largest odd -> '+str(FirstNumber)
elif SecondNumber % 2 and SecondNumber>FirstNumber and SecondNumber>ThirdNumber:
print 'Second Number is largest odd -> '+str(SecondNumber)
elif ThirdNumber % 2 and ThirdNumber>FirstNumber and ThirdNumber>SecondNumber:
print 'Third Number is largest odd -> ' + str(ThirdNumber)
else:
print 'None are odd -> ' + str(FirstNumber), str(SecondNumber), str(ThirdNumber)
if needs':'在末尾。去获得一个更好的IDE,他们会突出显示错误。我使用PyCharm,它的if
和elif
语句都需要在条件之后的行末尾有一个:
(你为else
做得很好).Komodo编辑也可以。顺便说一句,欢迎使用SO.Hoora完成教程和漂亮的打字问题;-)评论完成。好好享受吧@ZF007谢谢,我仍在努力寻找最方便的程序,但我目前正在工作和使用,绝望时刻lol。我以后一定会去看看@斯塔西德。。您200%确定要与repl.it?共享您的所有代码/工作?。。除非是你的老板?非常感谢!有太多的小事情我仍在绞尽脑汁,我想在下一个之前把这个弄下来。括号的位置仍然让我困惑,在哪里需要括号,在哪里不需要括号。我想这是有经验的@斯塔西德:是的!它们只有在函数调用和数学运算中才是真正必要的。如果执行复合布尔逻辑语句(如这些if语句
),您有时确实需要它们,但由于所有“门”都是和,它们是不必要的,因为求值顺序是不相关的。