簡體   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