diff --git a/ask_class.py b/ask_class.py new file mode 100644 index 0000000..e38e2a4 --- /dev/null +++ b/ask_class.py @@ -0,0 +1,49 @@ +import csv +from collections import defaultdict + + +class Ask_robot(object): + + #ここでつかう各インスタンスの、キーを名前で、値をそれぞれ好きなもの(str型)、きらいなもの(str型)、年齢(int型)を格納する辞書型変数を三つ用意 + person_like_dict=defaultdict(str) + person_dislike_dict=defaultdict(str) + person_age_dict=defaultdict(int) + + #Ask_robotのインスタンス生成時に行う処理 + def __init__(self,name): + self.name=name + print("\n\nこんにちは"+self.name+"さん\n\n") + + #新しく作られたPersonインスタンスの情報を各辞書型変数に追加 + def add_dict(self,name,age,like,dislike): + self.person_like_dict[name]=like + self.person_dislike_dict[name]=dislike + self.person_age_dict[name]=age + + #ヘッダーをNameとLikeとし、Personインスタンスで得た情報(名前と好きなもの)をExcelファイルに出力 + def person_like_csv(self,name,like,like_dict): + with open("person_like.csv","w",newline="") as csv_file: + fieldnames=["Name","Like"] + writer=csv.DictWriter(csv_file,fieldnames=fieldnames) + writer.writeheader() + for name,like in like_dict.items(): + writer.writerow({"Name":name,"Like":like}) + + #ヘッダーをNameとDislikeとし、Personインスタンスで得た情報(名前ときらいなもの)をExcelファイルに出力 + def person_dislike_csv(self,name,dislike,dislike_dict): + with open("person_dislike.csv","w",newline="") as csv_file: + fieldnames=["Name","Dislike"] + writer=csv.DictWriter(csv_file,fieldnames=fieldnames) + writer.writeheader() + for name,dislike in dislike_dict.items(): + writer.writerow({"Name":name,"Dislike":dislike}) + #ヘッダーをNameとageとし、Personインスタンスで得た情報(名前と年齢)をExcelファイルに出力 + def person_age_csv(self,name,age,age_dict): + with open("person_age.csv","w",newline="") as csv_file: + fieldnames=["Name","Age"] + writer=csv.DictWriter(csv_file,fieldnames=fieldnames) + writer.writeheader() + for name,age in age_dict.items(): + writer.writerow({"Name":name,"Age":age}) + + diff --git a/main.py b/main.py new file mode 100644 index 0000000..2b2f44f --- /dev/null +++ b/main.py @@ -0,0 +1,47 @@ +from ask_class import Ask_robot +from person_class import Person + + +set_information=0 + +#Personクラスへの情報設定処理 +while set_information==0: + name=input("あなたの名前を入力してください:") + age=input("次にあなたの年齢を入力してください:") + like=input("次にあなたの好きなものを入力してください:") + dislike=input("最後にあなたの嫌いなものを入力してください:") + + person=Person(name,age,like,dislike) + + person.person_information() + set_information=int(input("情報はあっていますか?あっていれば1を入力して次に進んでください。違う場合は0を入力して情報を入力しなおしてください:")) + +ask_robot=Ask_robot(person.name) +ask_robot.add_dict(person.name,person.age,person.like,person.dislike) +ask_continue=1 + +#一人目以降のask_robotの処理 +while ask_continue==1: + set_information=0 + + #Personクラスへの情報設定処理 + while set_information==0: + name=input("あなたの名前を入力してください:") + age=input("次にあなたの年齢を入力してください:") + like=input("次にあなたの好きなものを入力してください:") + dislike=input("最後にあなたの嫌いなものを入力してください:") + + person=Person(name,age,like,dislike) + + person.person_information() + set_information=int(input("情報はあっていますか?あっていれば1を入力して次に進んでください。違う場合は0を入力して情報を入力しなおしてください:")) + ask_robot=Ask_robot(person.name) + ask_robot.add_dict(person.name,person.age,person.like,person.dislike) + + ask_continue=int(input("処理を続けますか?(Yes:1/No:0)")) + + +ask_robot.person_like_csv(person.name,person.like,ask_robot.person_like_dict) +ask_robot.person_dislike_csv(person.name,person.dislike,ask_robot.person_dislike_dict) +ask_robot.person_age_csv(person.name,person.age,ask_robot.person_age_dict) + diff --git a/person_class.py b/person_class.py new file mode 100644 index 0000000..93efa9b --- /dev/null +++ b/person_class.py @@ -0,0 +1,13 @@ +class Person(object): + def __init__(self,name,age,like,dislike):#Personクラスへの初期情報の設定 + self.name=name + self.age=age + self.like=like + self.dislike=dislike + def person_information(self):#生成したPersonクラスのインスタンスの情報出力 + print("\n\n入力された情報を確認します\n\n") + print("名前:"+self.name) + print("年齢:"+self.age) + print("好きなもの:"+self.like) + print("嫌いなもの:"+self.dislike) +