0

因此,我正在学习如何使用 Python(我的第一门编程语言)进行编程,而且我完全是一个新手。我正在使用 inventwithpython 以及 codecademy.com。codecademy 的问题在于,他们真的不擅长教授编程,我将其与 inventwithpython 进行比较。在其中一个教程中,他们希望我定义两个函数并相互调用它们。我想我已经非常接近正确地做到这一点了,我觉得这样做的正确方法就是盯着我的脸。所以这里是代码:

def cube(number2):
    pine =  number2**3 
    return pine

def by_three(number2):
    if number2 % 3 == 0:
        return cube(number2)
    else:
        return False

number2 = raw_input("Pick a number")

by_three(number2)

这是我从界面得到的错误:

Traceback (most recent call last):
  File "python", line 13, in <module>
  File "python", line 6, in by_three
TypeError: not all arguments converted during string formatting

我尝试将该松树转换为字符串格式,但没有奏效,所以我只是将其还原。Codecademy 在我看来很糟糕,我只是在使用它,因为除了 inventwithpython 站点之外我找不到很多好的资源来学习如何使用 Python 编程。

4

2 回答 2

2

raw_input()返回一个字符串。而且您正在尝试将模表达式与字符串一起使用,这就是您收到该错误的原因。

使用以下函数将字符串转换为整数int()

number2 = int(raw_input("Pick a number"))

顺便说一句,codecademy 还不错:p。它只是变得令人困惑,因为不同的作者创建了不同的教程。

于 2013-06-09T07:44:44.673 回答
2

您没有对数字进行类型转换。使用该int()功能来做到这一点。

def cube(number2):
    pine = number2**3
    return pine

def by_three(number2):
    if number2 % 3 == 0:
        return cube(number2)
    else:
        return False

number2 = int(raw_input("Pick a number"))

print by_three(number2)
于 2013-06-09T07:45:25.507 回答