# Python - 多国語- Exercise ###### tags: `Python HomeWork` **例**:着ぐるみのバイトの求人には幾つの条件があります。特に着ぐるみ自体の大きさが決まっているので身長制限があります。とある会社の求人には、160センチ以下が好ましいと書いていて、もし153センチの杏奈が応募したら果たしてTrueなのかFalseなのか、プログラミングで出力してください。 ``` 杏奈の身長を表す変数を利用して比較してください annaHigh = 153 出力例: Ture ``` :::info code: ```python= annaHigh = 153 print( annaHigh <= 160 ) ``` 答え: ![](https://i.imgur.com/SM2qRLJ.png) ::: -------------------------------------------- ## 問1:Jackpotゲーム 多国語に対応する数字を当てるゲーム「Jackpot」を作りましょう。 このゲームを海外と日本で販売したいので、言語ファイルを読み込み、最初は言語を選択できるようにしてください。そして、もちろんなんですが、英語だったら英語で、日本語だったら日本語で表示してください。 **遊び方:** 言語選択が終わったら、まず数値の範囲を設定できるようにしましょう。範囲の設定を終わらせたら、今度は設定した範囲からランダムに一つの数値をJackpotとして指定しましょう!そして、数値の範囲もJackpotも設定したら、ちゃんと準備ができたってプレイヤーに教えてください。 続いて、当てる回数も設定します。設定し終わったら、ゲーム開始のメッセージを表示し、ゲームスタートです。 ここで注意してほしいのは、ゲームは当てる回数だけ数値を入力できるようにしてください。また、入力した数字により、数字の範囲が変わるので気をつけてください。 もちろん、入力した数値が範囲を超えたとき、当たった時のメッセージと、指定した回数分試しても当たらない時のメッセージも必要なので忘れないでね! ``` 以下はjackpot_language.txtファイルの内容 English,日本語 Start from:,開始値: Ending at:,終了値: The jackpot and number range settings are complete.,ジャックポットと数字範囲の設定が完了しました。 Count:,回数: Game START,ゲーム開始 Choise a number from {} to {},{}~{}の数字から一つ選んでください I told you enter a number from {} to {}!!,{}~{}の数字から一つ選んでって言ったでしょう! Jackpot is {}.,ジャックポットは{}です! You win!!,あなたの勝ちです!! You lost...,あなたの負けです... ``` ``` **入出力1:** 1.English 2.日本語 Which one?1 Start from:1 Ending at:50 The jackpot and number range settings are complete. Count:5 「-----Game START-----」 Choise a number from 1 to 50 1:25 -------------------------- Choise a number from 25 to 50 2:37 -------------------------- Choise a number from 37 to 50 3:43 -------------------------- Choise a number from 43 to 50 4:45 -------------------------- Choise a number from 45 to 50 5:48 -------------------------- You lost... Jackpot is 46. **入出力2:** 1.English 2.日本語 Which one?2 開始値:1 終了値:30 ジャックポットと数字範囲の設定が完了しました。 回数:5 「-----ゲーム開始-----」 1~30の数字から一つ選んでください 1:15 -------------------------- 1~15の数字から一つ選んでください 2:7 -------------------------- 7~15の数字から一つ選んでください 3:12 -------------------------- 12~15の数字から一つ選んでください 4:14 -------------------------- 12~14の数字から一つ選んでください 5:13 ジャックポットは13です!あなたの勝ちです!! ``` :::info code: ```python= cho = int(input("Which one?")) lanlist = [] for i in lines: temp = i.strip().split(",") lanlist.append(temp[cho-1]) #※1 start = int(input(lanlist[0])) end = int(input(lanlist[1])) print(lanlist[2]) jackpot = () jackpot = random.randint(start,end) repeat = int(input(lanlist[3])) print("「-----{}-----」".format(lanlist[4])) for i in range(repeat): print(lanlist[5].format(start,end)) temp1 = start #範囲確認のため直前のstartを仮置き start = int(input("{} : ".format(i+1))) if start < temp1 or end < start: print(lanlist[6].format(temp1,end)) start = temp1 #間違った範囲のstartを直前のに置き換え print("--------------------------") if start == jackpot: print(lanlist[7].format(jackpot),lanlist[8]) else: print(lanlist[7].format(jackpot),lanlist[9]) file.close() ``` 結果: ::: :::success ###### ※1 lanlistの中身を変数に置き換えたほうがわかりやすい。 ex. ```python= StartText = lanlist[0] endText = lanlist[1] copletMessage = lanlist[2] ``` etc..... ::: ## 問2:砲弾射撃記録の作成(ファイル書き込みの練習) 以下はとある砲弾射撃の記録です。 射撃に参加した人数は全部で50人でそれぞれIDがあり、全員100回試射しました。 以下の条件従ってファイルを作成してください。 * 一行目に「砲弾射撃記録」を書き込むこと。 * 二行目に「ID」、「1回目」、「2回目」、、、「100回目」を書き込むこと。 * 三行目以降、ID と 1回目から100回目までの成績を書き込むこと。 尚、今回は書き込むの練習ということで、成績は全部50~100から一つ乱数を生成し、成績しにてください。 図1: ![](https://i.imgur.com/Rvtgnve.png) 図2: ![](https://i.imgur.com/wpnUHI4.png) :::info code: ```python= import random file = open("houdan1.txt","w") file.write("砲弾射撃記録\n") file.write("ID ")#space9 for i in range(1,101): file.write("{:>5}回目".format(i))#space4 for i in range(1,11): file.write("\n{} ".format(i))#space13 for j in range(1,101): file.write("{:>9}".format(random.randint(50,100)))#space7 file.close() ``` ::: ## 問3:砲弾射撃記録の読み込み 以下の砲弾射撃ファイルを読み込み、必要なデータを抽出しましょう。 [砲弾射撃記録ファイル](https://drive.google.com/file/d/13JCxgUzZ-tIh8OeWjzZVBMQ9jmbkb00m/view?usp=sharing) 全試合の総合ランキング1位、ラスト1位を出力してください。 皆の成績が一番いい試合を出力してください。 ```python= file = open("Cannon.txt","r") file.readline() file.readline() final = [] total = [] for i in range(50): linemax = [] read = "" read = file.readline() read = read.strip().split() read.remove(read[0]) read = [int(i) for i in read] final.append(read[-1]) linemax.append(max(read)) total.append(sum(read)) print(max(linemax)) temp = max(final) finalindex = final.index(temp)+1 print("No.{}".format(finalindex)) temp = max(total) maxindex = total.index(temp)+1 #indexが0からだから print("No.{}".format(maxindex)) ```