繁体   English   中英

Python NameError - 名称未定义

[英]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)

只需几个修复,您就真的很接近了。

  1. 在正文中的 print 语句中,您需要使用str() function 确保在month__days发生显式转换。

  2. 您将需要适当的空格和"." 在您的打印声明的末尾。 这正是 coursera autograder 所期望的,所以它必须是精确的。

  3. 最后,正如其他人所提到的,您需要在JuneJuly左右报价。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM