所以我正在学习如何用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
我尝试将pine转换为字符串格式,但没有工作,所以我只是将其还原回来。Codecademy在我看来很糟糕,我使用它只是因为除了inventwithpython网站之外,我找不到很多好的资源来学习如何使用Python编程。
raw_input()
返回一个字符串。你试图使用模表达式与字符串,这就是为什么你得到这个错误。
使用int()
函数将字符串转换为整数:
number2 = int(raw_input("Pick a number"))
顺便说一下,codecademy并没有那么糟糕。不同的作者会创建不同的教程,这让人很困惑。
您没有键入数字。使用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)