前提・実現したいこと
作成したソースコードの構文ミスの指摘や、もっと汎用性のある書き方に添削していただきたいです。
該当のソースコード
Python3
1from random import randint 2 3def get_user_input(): 4 while True: 5 n = -1 6 x = input("要素数が0以上50以下のリストを作れます(要素は0~100の間でランダムに生成します)\n要素を何個にしますか:") 7 if x.isdigit(): 8 n = int(x) 9 if 0 <= n <= 50: 10 return n 11 print("0以上50以下の整数を入力してください!\n\n") 12 13 14def random_list(): 15 user_input = get_user_input() 16 x = [] 17 for i in range(user_input): 18 x.append(randint(0, 100)) 19 return x 20 21def list(a): 22 return a 23 24def random_list_max(a): 25 if not a: 26 return "なし" 27 max_value = a[0] 28 for item in a: 29 if item > max_value: 30 max_value = item 31 return max_value 32 33def list_len(a): 34 l = len(a) 35 return l 36 37def random_list_min(a): 38 if not a: 39 return "なし" 40 min_value = a[0] 41 for item in a: 42 if item < min_value: 43 min_value = item 44 return min_value 45 46def add(a): 47 sum = 0 48 for item in a: 49 sum += item 50 return sum 51 52def play(): 53 l = random_list() 54 print(list(l)) 55 print("要素は{}個".format(list_len(l))) 56 print("合計は{}".format(add(l))) 57 print("最大値は{}".format(random_list_max(l))) 58 print("最小値は{}".format(random_list_min(l))) 59 60def game(): 61 while True: 62 play() 63 get_user_request = input("もう一度生成しますか?y/n:") 64 while get_user_request not in "yn": 65 get_user_request = input("\n\nもう一度生成しますか?\nyかnを入力してください:") 66 continue 67 if get_user_request == "y": 68 print("\n" * 10) 69 else: 70 break 71 print("またのご利用をお待ちしております!") 72 73if __name__ == "__main__": 74 game()
試したこと
手段を関数別に分けて、調節しやすいようにしました。
補足情報(FW/ツールのバージョンなど)
バージョン:Python3.7.7
エディタ:PyCharm CE
回答1件
あなたの回答
tips
プレビュー