首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python 3.2.2中的用户定义函数(def)

Python 3.2.2中的用户定义函数(def)
EN

Stack Overflow用户
提问于 2012-08-31 00:22:43
回答 4查看 7.2K关注 0票数 4

我目前正在阅读"How to think like a computer scientist: Learning with Python“(绿茶出版社,2002年1月)。

我不能让任何定义函数工作。我已经完全按照书中的内容复制了,但它不工作。我哪里做错了?

代码如下:

代码语言:javascript
运行
复制
def printParity(x):
    if (x)%2 == 0:
        print (x), ("is even")
    else:
        print (x), ("is odd")

它只打印(x)输入,而不是(x)是奇数或偶数。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-31 00:25:44

您需要:

代码语言:javascript
运行
复制
def printParity(x):
    if x % 2 == 0:
        print(x, "is even")
    else:
        print(x, "is odd")

您的语句print (x), ("is even")

实际上是创建一个元组,可以在控制台上看到:

代码语言:javascript
运行
复制
>>> x=2
>>> print (x), ("is even")
2
(None, 'is even')
票数 4
EN

Stack Overflow用户

发布于 2012-08-31 00:26:00

在Python3中,print是一个函数,而不是一个语句。使用Python 3教程。

代码语言:javascript
运行
复制
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的值。

票数 4
EN

Stack Overflow用户

发布于 2012-08-31 00:27:07

该代码片段中有几个错误。由于您使用的是Python编程,因此必须确保每个代码块都缩进。这就是在Python中定义代码块的方式--通过缩进,而不是使用括号。

此外,(x)并不意味着什么。它将只打印x或其他任何东西。

试试这个:

代码语言:javascript
运行
复制
def printParity(x):
    if x % 2 == 0:
        print (x, "is even")
    else:
        print (x, "is odd")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12201337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档