2012-08-30 41 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