2012-08-30 106 views

回答

4

你想:

def printParity(x): 
    if x % 2 == 0: 
     print(x, "is even") 
    else: 
     print(x, "is odd") 

你的陈述print (x), ("is even")

实际上是做一个元组,因为可以在可见控制台:

>>> x=2 
>>> print (x), ("is even") 
2 
(None, 'is even') 
0

你不需要在你的变量名称周围加括号。此外,您还可以使用格式字符串,使打印输出更清楚一点

def printParity(x): 
    if x % 2 == 0: 
     print ("%s is even" % x) 
    else: 
     print ("%s is odd" % x) 
+2

Becaue的OP是使用Python 3,这会给一个'SyntaxError'。 – DSM

+0

只是为了澄清:@DSM在这里的评论由于之后发生的编辑而过时。 – glglgl

4

在Python 3中,print i是一种功能,而不是一种说法。使用Python 3教程。

def printParity(x): 
    print("{0} is {1}".format(x, "odd" if x % 2 else "even")) 

由于DSM所指出的,你的代码正在为它的第一要素,评估的print(x)结果的元组(并自print()不返回任何东西,那结果是None),并"is even"作为其第二个元素。然而,它不会对这个元组做任何事情,所以什么也看不见(并且未命名的元组很快就会被垃圾收集)。唯一可见的是函数调用print(x)的“副作用”,它当然会输出值x

1

该代码片段中存在一些错误。既然你是用Python编程,你必须确保每个代码块都是缩进的。这就是你如何在Python中定义代码块 - 通过缩进而不是使用括号。 (x)并不意味着什么。它只会打印x或其他任何东西。

试试这个:

def printParity(x): 
    if x % 2 == 0: 
     print (x, "is even") 
    else: 
     print (x, "is odd") 
+2

这些'print'语句在Python 3中不起作用。 – kindall

+0

试试这个:'print(x)' – vaidik

+1

@vaidik如果它们被证明是有误导性的,那么编辑答案是可能的。 – glglgl