Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
语法错误,初级Python 2.7代码_Python_Python 2.7_Syntax Error - Fatal编程技术网

语法错误,初级Python 2.7代码

语法错误,初级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:"))

这里是代码的极端初学者。正在阅读John V.Guttag的“使用Python进行计算和编程入门”。第一个问题是:

编写一个程序,检查三个变量x、y和z- 并打印其中最大的奇数。如果没有奇数,则 应该打印这样的信息。”

我编写的代码在第5、7和9行有语法错误。因为我是一个完全的初学者,我想不出来。欢迎咨询

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语句
),您有时确实需要它们,但由于所有“门”都是和,它们是不必要的,因为求值顺序是不相关的。