0

駐車場の車登録用のコードがあります。車の登録番号をキー、休憩情報を値として辞書を作成しました。登録番号を入力して、各登録の詳細(値)を取得しようとしています。IDが辞書にある場合でも、辞書にないメッセージが表示されます。

global variable
data_dict = {}
def createNameDict(filename):
  path = "C:\Users\user\Desktop"
  basename = "ParkingData_Part2.txt"
  filename = path + "\\" + basename
  file = open(filename)
  contents = file.read()
  print contents,"\n"


  data_list = [lines.split(",",1) for lines in contents.split("\n")]
  #data_list.sort()
  #print data_list 
  #dict_list = []

  for line in data_list:
    keys = line[0]
    values = line[1]

    data_dict[keys] = values
  print data_dict,"\n"
  print data_dict.keys(),"\n"
  print data_dict.values(),"\n"
  print data_list  
def detailForRegistrationNumber(regNumber):
  regNumber == "keys"
  if regNumber in data_dict:
    print data_dict[regNumber]
  else:
    print regNumber, "Not in dictionary" 

私が受け取っているエラーメッセージは次のとおりです。

======= Loading Progam =======
>>> detailForRegistrationNumber('EDF768')
EDF768 Not in dictionary

ただし、辞書には上記の登録番号があります。

{'HUY768': ' Wilbur Matty, 8912, Creche_Parking', 'GH7682': ' Clara Hill, 7689, AgHort_Parking', 'GEF123': ' Jill Black, 3456, Creche_Parking', 'WER546': ' Olga Grey, 9898, Creche_Parking', 'TY5678': ' Jane Miller, 8987, AgHort_Parking', 'ABC234': ' Fred Greenside, 2345, AgHort_Parking', 'KLOI98': ' Martha Miller, 4563, Vet_Parking', **'EDF768'**: ' Bill Meyer, 2456, Vet_Parking', 'JU9807': ' Jacky Blair, 7867, Vet_Parking', 'DF7800': ' Jacko Frizzle, 4532, Creche_Parking', 'ADF645': ' Cloe Freckle, 6789, Vet_Parking'}
4

1 に答える 1

2

あなたの問題はあなたの関数def createNameDict(filename):が何も返さないことだと思うので、そのdata_dict中はただのローカル変数です!

関数の最後の行を作成し、のreturn data_dictように使用しdata_dict = createNameDict(filename)ます。グローバル変数部分は必要ないので、削除するだけです。

于 2012-05-13T14:03:46.693 に答える