我目前正在阅读"How to think like a computer scientist: Learning with Python“(绿茶出版社,2002年1月)。
我不能让任何定义函数工作。我已经完全按照书中的内容复制了,但它不工作。我哪里做错了?
代码如下:
def printParity(x):
if (x)%2 == 0:
print (x), ("is even")
else:
print (x), ("is odd")
它只打印(x)输入,而不是(x)是奇数或偶数。
发布于 2012-08-31 00:25:44
您需要:
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')
发布于 2012-08-31 00:26:00
在Python3中,print
是一个函数,而不是一个语句。使用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
的值。
发布于 2012-08-31 00:27:07
该代码片段中有几个错误。由于您使用的是Python编程,因此必须确保每个代码块都缩进。这就是在Python中定义代码块的方式--通过缩进,而不是使用括号。
此外,(x)并不意味着什么。它将只打印x或其他任何东西。
试试这个:
def printParity(x):
if x % 2 == 0:
print (x, "is even")
else:
print (x, "is odd")
https://stackoverflow.com/questions/12201337
复制相似问题