[英]Python NameError - Name not defined
一个名为month_days
的 function 接收月份名称和该月份的天数作为参数。 修改代码的rest,使结果相同。 通过使用列出的两个月份的正确参数进行 function 调用来确认您的结果。
def month_days(month, days):
month__name = str(month)
month__days = int(days)
print(month__name + "has" + month__days + "days" )
month_days(June,30)
给出以下错误
NameError: name 'June' is not defined
首先,让我们尝试了解什么是NameError
。 Python 中的NameError
通常是指执行或调用未找到或未实例化的 object。
在你的情况下month_days(June, 30)
,这个June
是什么? 它是一个已经定义的变量吗?
我猜您是否尝试将June
字符串作为输入传递,如果是,请尝试执行以下操作
month_days("June", 30) # works
month_days('June', 30) # also works
在 Python 通常,所有字符串输入都用单引号或双引号括起来。
您将 June 作为值传递给 function,因此,它应该是字符串,即带有单引号/双引号。 我在您的代码中观察到的另一个问题是您正在添加 integer (month_days) 和字符串。 因此,通过将输入天数转换为字符串 i/o integer 进行更正。 请找到下面的代码。
def month_days(month, days):
month__name = str(month)
month__days = str(days)
print( month__name+" has " + month__days + " days" )
month_days('June',30)
这也可以工作:
def month_days(month, days):
print(month + " has " + str(days) + " days.")
month_days("June", 30)
month_days("July", 31)
只需几个修复,您就真的很接近了。
在正文中的 print 语句中,您需要使用str()
function 确保在month__days
发生显式转换。
您将需要适当的空格和"."
在您的打印声明的末尾。 这正是 coursera autograder 所期望的,所以它必须是精确的。
最后,正如其他人所提到的,您需要在June
和July
左右报价。
def month_days(month, days):
month__name = str(month)
month__days = int(days)
print(month__name + " has " + str(month__days) + " days." )
month_days('June', 30)
month_days('July', 31)
希望对您有所帮助::)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.