知識がとても乏しい初心者です。
Pythonで電話帳プログラムを作りたかったのですが、
from
1import pickle 2import re 3phone = dict 4def main(): 5 while True: 6 番号 = int(input(''' 7 番号を入力してください。 8 1:電話番号を検索 9 2:電話番号を登録 10 3:電話番号を削除 11 4:電話番号を一覧 12 0:プログラムの終了 13 -> ''')) 14 if 番号 not in range(5): 15 print('コマンド番号を入力してください') 16 continue 17 ☆☆else: 18 [終了,検索,登録,削除,一覧][番号](phone) 19def 終了(phone):…
と、続くのですが、☆☆マークのところのelse: [終了,検索…]のところでType Error: argument of type 'type' is not iterable とエラーが出ます。
また、途中の
def
1 name = input('検索する名前を入力してください:') 2 ☆☆if name in phone: 3 print('名前:{0} 電話番号:{1}'.format(name, phone[name])) 4 else: 5 print('{}は登録されていません'.format(name))……(中略) 6……if __name__ == '__main__': 7 ☆☆main()
の2つの☆☆のところでまた同じエラーが出ます。
どのように対処すれば正常に動作するでしょうか? 教えていただけたら幸いです。
また、他に誤ったところがあればご指摘お願いいたします。
全文はコチラです。
from
1import pickle 2import re 3phone = dict 4def main(): 5 while True: 6 番号 = int(input(''' 7 番号を入力してください。 8 1:電話番号を検索 9 2:電話番号を登録 10 3:電話番号を削除 11 4:電話番号を一覧 12 0:プログラムの終了 13 -> ''')) 14 if 番号 not in range(5): 15 print('コマンド番号を入力してください') 16 continue 17 else: 18 [終了,検索,登録,削除,一覧][番号](phone) 19def 終了(phone): 20 print('プログラムを終了します。') 21 exit() 22 # 電話帳をpickleへ書き出し 23 with open('phone.pkl', 'wb') as f: 24 pickle.dump(phone, f) 25 quit() 26def 検索(phone): 27 name = input('検索する名前を入力してください:') 28 if name in phone: 29 print('名前:{0} 電話番号:{1}'.format(name, phone[name])) 30 else: 31 print('{}は登録されていません'.format(name)) 32def 登録(phone): 33 name = input('登録する名前を入力してください:') 34 if name in phone: 35 print('名前:{0} は登録済みです'.format(name)) 36 return 37 num = input('登録する電話番号を入力してください:') 38 if not re.match(r'^[\d-]+$', num): 39 print('{0}は電話番号として不適切です'.format(num)) 40 return 41 phone[name] = num 42 print('名前:{0} 電話番号:{1}で登録しました'.format(name,num)) 43def 削除(phone): 44 name = input('削除する名前を入力してください:') 45 if name in phone: 46 del phone[name] 47 print('名前:{0}の電話番号は削除されました'.format(name)) 48 else: 49 print('名前:{0}は登録されていません'.format(name)) 50def 一覧(phone): 51 for k, v in phone.items(): 52 print('名前:{0} 電話番号:{1}'.format(k, v)) 53 54if __name__ == '__main__': 55 main()
回答3件
あなたの回答
tips
プレビュー