2

ここに udacity.com の Web 開発コースがあります。彼らは有効な年のプログラムを書くように求めています。

「不正解です。あなたの提出物は、入力 '1920' に対して正しい結果を返しませんでした。あなたの提出物は、9 つ​​のテスト ケースのうち 7 つに合格しました。」

私の機能:

def valid_year(year):
  if year and year.isdigit():
    if int(year) >=1900 and int(year) <=2020:
      return year

print valid_year('1970')

なぜ1920年に機能しないのですか? そして、udacityによる同じ機能は正常に実行されます....誰かplsは、両方のコードの違いを教えてください

Udacity 関数:

def valid_year(year):
  if year and year.isdigit():
    year = int(year)
    if year >=1900 and year <=2020:
      return year

print valid_year('1970')
4

1 に答える 1

4

intudacity の関数は整数を返すため、を返す必要があります。

def valid_year(year):
  if year and year.isdigit():
    if int(year) >=1900 and int(year) <=2020:
      return year

def valid_year_uda(year):
  if year and year.isdigit():
    year = int(year)
    if year >=1900 and year <=2020:
      return year

print valid_year('1970') == valid_year_uda('1970')
print type(valid_year('1970')), type(valid_year_uda('1970'))

出力:

False
<type 'str'> <type 'int'>

return yearこれは、次のように置き換えるだけで簡単に修正できますreturn int(year)

def valid_year(year):
  if year and year.isdigit():
    if int(year) >=1900 and int(year) <=2020:
      return int(year)  #return an integer

print valid_year('1970')
于 2013-05-27T16:29:10.473 に答える