前提・実現したいこと
作成したソースコードの構文ミスの指摘や、もっと汎用性のある書き方に添削していただきたいです。よろしくお願いします。
該当のソースコード
Python3
1from random import randint 2 3 4def get_user_input(): 5 val_min = 0 6 val_max = 1000000 7 val_error = "0以上の整数を入力してください。(上限1000000)\n" 8 print("要素数の個数、要素の最小、最大値を入力し、ランダムにリストを生成します。(半角数字で入力してください)") 9 while True: 10 n = -1 11 x = input("要素数:") 12 if x.isdecimal(): 13 n = int(x) 14 if val_min <= n <= val_max: 15 return n 16 print(val_error) 17 18def random_list(b): 19 range_error = "最小値<最大値となるような整数を入力してください。半角数字で入力してください\n" 20 while True: 21 range_min = input("要素の最小値:") 22 range_max = input("要素の最大値:") 23 if (range_min[0] == "-" and range_min[1:].isdecimal() or range_min.isdecimal()) and ( 24 range_max[0] == "-" and range_max[1:].isdecimal() or range_max.isdecimal()): 25 range_min = int(range_min) 26 range_max = int(range_max) 27 if range_min < range_max: 28 break 29 print(range_error) 30 x = [] 31 for i in range(b): 32 x.append(randint(range_min, range_max)) 33 return x 34 35 36def list_max(a): 37 if not a: 38 return "なし" 39 max_value = a[0] 40 for item in a: 41 if item > max_value: 42 max_value = item 43 return max_value 44 45 46def list_min(a): 47 if not a: 48 return "なし" 49 min_value = a[0] 50 for item in a: 51 if item < min_value: 52 min_value = item 53 return min_value 54 55 56def list_len(a): 57 return len(a) 58 59 60def list_sum(a): 61 val_sum = 0 62 for item in a: 63 val_sum += item 64 return val_sum 65 66 67def play(): 68 user_input = get_user_input() 69 l = random_list(user_input) 70 print(list(l)) 71 print("要素は{}個".format(list_len(l))) 72 print("合計は{}".format(list_sum(l))) 73 print("最大値は{}".format(list_max(l))) 74 print("最小値は{}".format(list_min(l))) 75 76 77def game(): 78 while True: 79 play() 80 get_user_request = input("もう一度生成しますか?y/n:") 81 while get_user_request not in "yn": 82 get_user_request = input("\nもう一度生成しますか?\nyかnを入力してください:") 83 continue 84 if get_user_request == "y": 85 print("\n" * 10) 86 else: 87 break 88 print("またのご利用をお待ちしております!") 89 90 91if __name__ == "__main__": 92 game()
試したこと
要素数、要素の最小最大値を入力方式にし、わかりやすくなるよう目的別に関数を分けました。
補足情報(FW/ツールのバージョンなど)
バージョン:Python3.7.7
エディタ:PyCharm CE
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/18 22:25
2020/03/19 00:25