閲覧ありがとうございます。
入力したデータをもとに、ベースデータと加工データを作りたいと思っています。
このほかにも追加で入力したいデータがあり、Dataクラスを、BaseクラスとKakouクラスに分けたいです。
いろいろ試しましたが、引数の数が違うエラーが出たり、データが空になってしまったりして、私の力ではうまくできませんでした。
どうかご知恵を貸していただけたら幸いです。
また、まだまだ未熟なため、プログラムでこう記述したほうが良いという部分がありましたら、ご指摘いただけましたら幸いです。
よろしくお願いします。
main.py
python3
1from datainput import Data 2data_ins = Data() 3 4datalist = ['モデル1を入力', 'モデル2を入力','幅の数値を入力', 5 '奥行の数値を入力','高さの数値を入力','上部の数値を入力', 6 '左側の数値を入力','右側の数値を入力','下部の数値を入力',] 7 8def for_int(): 9 data = input() 10 if data: 11 data = int(data) 12 return data 13 else: 14 data = 0 15 return data 16 17 18def main(): 19 print('作るデータの数を教えてください。') 20 num_1 = int(input()) 21 for i in range(num_1): 22 print('データ',i+1,'を入力') 23 input_data = [] 24 input_data.append(i+1) 25 for j in datalist: 26 print(j) 27 k = for_int() 28 input_data.append(k) 29 data_ins.assign(input_data[0], input_data[1], input_data[2], 30 input_data[3], input_data[4], input_data[5], 31 input_data[6], input_data[7], input_data[8], 32 input_data[9], ) 33 data_ins.add_data() 34 data_ins.add_base() 35 data_ins.add_kakou() 36 data_ins.show_all() 37 data_ins.show_all2() 38 data_ins.show_all3() 39 40if __name__ == "__main__": 41 main()
datainput.py
python3
1class Data: 2 3 def __init__(self): 4 5 self.all_data = [] 6 self.base_items = [] 7 self.kakou_list = [] 8 9 10 11 def assign(self, data_number, data_model, data_model2, 12 data_width, data_depth, data_height, 13 top_t, left_t,right_t, 14 bottom_t,): 15 self.data_number = data_number 16 self.data_model = data_model 17 self.data_model2 = data_model2 18 self.data_width = data_width 19 self.data_depth = data_depth 20 self.data_height = data_height 21 self.top_t = top_t 22 self.left_t = left_t 23 self.right_t = right_t 24 self.bottom_t = bottom_t 25 26 27 def add_data(self): 28 self.all_data.append({'data_number' : self.data_number, 29 'data_model':self.data_model, 30 'data_model2': self.data_model2, 31 'data_width' : self.data_width, 32 'data_depth' : self.data_depth, 33 'data_height' : self.data_height, 34 'top_t': self.top_t, 35 'left_t' : self.left_t, 36 'right_t': self.right_t, 37 'bottom_t,': self.bottom_t, 38 }) 39 40 def show_all(self): 41 for i in self.all_data: 42 print(i) 43 44 45 46 def hantei_1(self): 47 if self.data_model == 1 or self.data_model ==3 or self.data_model == 5: 48 return 1 49 elif self.data_model == 2 or self.data_model ==4: 50 return 0 51 else: 52 return None 53 54 def hantei_2(self): 55 if self.data_model2== 1 or self.data_model2 == 2 : 56 return 0 57 elif self.data_model2 == 5 or self.data_model2 ==6: 58 return 1 59 elif self.data_model2 == 4 or self.data_model2 ==8 : 60 return 2 61 elif self.data_model2 == 3 or self.data_model2 ==7 : 62 return 3 63 else: 64 return 0 65 66 67 def add_base(self): 68 #黄色の部分の数値 69 self.base_items.append({'データ番号' : self.data_number, 70 'モデル1の判定' : self.hantei_1(), 71 'モデル2の判定': self.hantei_2(), 72 '幅' : self.data_width, 73 '深さ' : self.data_depth, 74 '高さ' : self.data_height, 75 '上部':self.top_t, 76 '左側':self.left_t, 77 '右側':self.right_t, 78 '下部':self.bottom_t, }) 79 80 def show_all2(self): 81 for i in self.base_items: 82 print(i) 83 84 85 def top_1(self): 86 if self.hantei_1() == 1: 87 return self.data_width 88 elif self.hantei_1() == 0: 89 return self.data_width - self.left_t - self.right_t 90 else: 91 return 'error' 92 93 94 95 96 def bottom_1(self): 97 if self.data_model == 1 or self.data_model == 2: 98 return self.data_width - self.left_t - self.right_t 99 elif self.data_model == 3 or self.data_model ==4: 100 return self.data_width 101 elif self.data_model == 5 or self.data_model == 7: 102 return self.data_width - self.left_t 103 elif self.data_model == 6 or self.data_model == 8: 104 return self.data_width -self.right_t 105 else: 106 return 0 107 108 def add_kakou(self): 109 self.kakou_list.append({'データ番号' : self.data_number, 110 '上部加工長さ':self.top_1(), 111 '右側加工長さ':5, 112 '左側加工長さ':3, 113 '下部加工長さ':self.bottom_1(), 114 }) 115 116 def show_all3(self): 117 for i in self.kakou_list: 118 print(i)
回答1件
あなたの回答
tips
プレビュー