# Hackmd 個別課題 安江 これが今回のテーマです [課題リンク先](https://hackmd.io/@SisypheanEphyra/BkxkjCeWd) --- 上記のプログラムを作成してみてください。 出来る場合は、ここにコードを貼り付けてください ```python= # これより下にコードを貼り付けてください # これより上にコードを貼り付けてください ``` :::danger これを完全に自身でかけるのであれば以下の「出来ない場合はこっちから」は作らなくてもいいですが、出来ない場合は素直に下の部分から始めましょう。 下の部分を自分でプログラムできるようになれば、自ずと最初に渡した課題をある程度自力で解けるようになります。 ::: --- ## 出来ない場合はこっちから 先ずは選択肢ですね、機能を4つに分ける必要があるので、その部分のプログラムを作らなければいけません。なので次の問題から作ってみましょう。 :::info ### **問題1:** - ユーザーに数字の1~4の数値を入力させ、入力した後はそれぞれ次の様に表示できるようにしましょう。 - **「1」が入力された場合:** 「これより機能1を実行します」、を表示させましょう - **「2」が入力された場合:** 「今回は機能2を実行しましょう」、を表示させましょう - **「3」が入力された場合:** 「3が入力されました」、を表示させましょう - **「4」が入力された場合:** 「機能4、実行準備・・・」、を表示させましょう - 実行結果例: - 実行例1 ``` Please input 1~4:1 これより機能1を実行します ``` - 実行例2 ``` Please input 1~4:3 3が入力されました ``` - 実行例3 ``` Please input 1~4:0 その機能は存在しません ``` ::: ```python= # これより下にコードを貼り付けてください number = int(input("Please input 1~4")) if number == 1: print("これより機能1を実行します") else: if number == 2: print("今回は機能2を実行しましょう") else: if number == 3: print("3が入力されました") else: if number == 4: print("機能4、実行準備・・・") # これより上にコードを貼り付けてください ``` :::danger 機能的には問題ないですが、出来れば分岐を「elif」文に修正してみましょう。 インデントが深くなるほど見づらくなってしまいます。 ::: #### コードが分からない場合はこっちのスライドを参考にしましょう。 [入力「input」 に関するスライド](https://drive.google.com/file/d/1_G5lTYKz8C0NUJGnHakqYejluE4m1vTK/view "input関連教材1") [if elif else に関するスライド](https://drive.google.com/file/d/10YxwFttkjUwByAwRS-JzSHeuqpvU1yXb/view "IF関連教材1") [ifの運用 に関するスライド](https://drive.google.com/file/d/1IREfeJtONBKxk8lnL_g74ZAUxC05lmbV/view "IF関連教材2") 分からない場合は分からない部分など、聞きたい事柄などを、次の中に書き込んでください。 :::warning (次の行から書き込んでください) ::: --- 出来たら次の問題をプログラムしてみましょう。 :::info ### **問題2:** - 長さが5であるリストを作成し、リストの要素は乱数の1~10の整数で構成されている。そしてそのリストを出力する事。 乱数を5回実行して長さが5になるようにすれば問題ないという事ですね。 つまり順番としては 1. 予め空のリストを作っておく事 2. 「ループ」を使う事 3. ループ処理で乱数をリストに追加する事(リストの「append」) - **実行結果例:** ``` [5, 6, 6, 8, 2] ``` ::: ```python= # これより下にコードを貼り付けてください import random Alist = [] a = 0 while a >= 5: x = random.randrange(1,11) Alist.append(x) a =a+1 print(Alist) # これより上にコードを貼り付けてください ``` :::danger 自分で実行して確認しましたか? 実行例とは基本的に違うとは言ってもリストが空では何もしてないものと同じですよ。 ::: #### コードが分からない場合はこっちのスライドを参考にしましょう。 [for に関するスライド](https://drive.google.com/file/d/10YxwFttkjUwByAwRS-JzSHeuqpvU1yXb/view "for関連教材") [List に関するスライド](https://drive.google.com/file/d/1mmPB6g250jFoesAZYEaz2tWk1OX_QTH-/view "List関連教材") 分からない場合は分からない部分など、聞きたい事柄などを、次の中に書き込んでください。 :::warning (次の行から書き込んでください) ::: --- :::info ### **問題3:** - 問題2で作ったリストを使用して、そのリストの要素を全部表示して要素間は半角の空白で開けて表示する事。 つまりリストの要素を一つずつ取り出して表示すればいいですね。なので順序的には 1. リストの要素を一つずつ読み込むためにForを使う 2. 一つずつ出力する時にデフォルトでは改行されるので、出力する時に使われる「end」を変更する - **実行結果例:** ``` List: 5 6 6 8 2 ``` ::: ```python= # これより下にコードを貼り付けてください for i in range(0,5): print(Alist[i]) # これより上にコードを貼り付けてください ``` :::danger 問題文通りのコードになっていませんし、実行例とも大きく違いますね。 項目「2」で出力する際に「end」を使用して、改行されないように調整する必要があると書かれています。 一番の問題点は、リストが定義されていません。 これだけではエラーです。 リストを使用するとありますが、きちんと全てのプログラムを貼り付けましょう。 ::: #### コードが分からない場合はこっちのスライドを参考にしましょう。 [print(format) に関するスライド](https://drive.google.com/file/d/15R-b1vGqDy7IwGOb4m1eZ7ZpwOfcaDkw/view "printのformat関連教材") [for-list に関するスライド](https://drive.google.com/file/d/1mmPB6g250jFoesAZYEaz2tWk1OX_QTH-/view "リストのループ関連教材") 分からない場合は分からない部分など、聞きたい事柄などを、次の中に書き込んでください。 :::warning (次の行から書き込んでください) ::: --- :::info ### **問題4:** - 問題3で使っていたリストを元に、複数の要素を追加できるようにしましょう。 複数の要素を追加する為には何個追加するかユーザーに指定させなければいけなく、その個数に応じて実行する回数を変更できなければいけません。なので次の通りにプログラムしてみましょう。 1. ユーザーに幾つ数値を追加させるかを数字で入力させること 2. その数字を数値にして指定回数ループ(for)をさせる事 3. 追加する要素の数値をユーザーが決める必要があるのでループ内処理にも入力が必要 4. ユーザーが入力した数値をリストに追加する事(append) - **実行結果例:** - 実行例1 ``` How many append? 2 New number: 10 List: 5 6 6 8 2 10 New number: 13 List: 5 6 6 8 2 10 13 ``` - 実行例2 ``` How many append? 3 New number: 15 List: 5 6 6 8 2 15 New number: 0 List: 5 6 6 8 2 15 0 New number: 99 List: 5 6 6 8 2 15 0 99 ``` ::: ```python= # これより下にコードを貼り付けてください b = int(input("How many append?") for i in range(1,b): c = int(input("New number:")) Alist.append(c) # これより上にコードを貼り付けてください ``` :::danger 先程と同じようにリストが定義されていません。 新しい数値を入れればいいですが、このコードでは追加する量が正確ではないですね。 今一度コードを確認してみてください。 そして追加された後は、直後にリストに入っている要素が全て出力表示されていることが、実行例にあると思います。 リスト内の全要素を出力するコードも書き込む必要があるでしょう。 ::: #### コードが分からない場合はこっちのスライドを参考にしましょう。 [入力「input」 に関するスライド](https://drive.google.com/file/d/1_G5lTYKz8C0NUJGnHakqYejluE4m1vTK/view "input関連教材1") [for に関するスライド](https://drive.google.com/file/d/10YxwFttkjUwByAwRS-JzSHeuqpvU1yXb/view "for関連教材") [List に関するスライド](https://drive.google.com/file/d/1mmPB6g250jFoesAZYEaz2tWk1OX_QTH-/view "List関連教材") 分からない場合は分からない部分など、聞きたい事柄などを、次の中に書き込んでください。 :::warning (次の行から書き込んでください) ::: --- :::info ### **問題5:** - 問題3で使っていたリストを元に、複数の要素をそれぞれ指定したリストの位置で追加できるようにしましょう。(insert) 複数の要素を追加する為には何個追加するかユーザーに指定させなければいけなく、その個数に応じて実行する回数を変更できなければいけません。なので次の通りにプログラムしてみましょう。 1. ユーザーに幾つ数値を追加させるかを数字で入力させること 2. その数字を数値にして指定回数ループ(for)をさせる事 3. 追加する要素の数値をユーザーが決める必要があるのでループ内処理にも入力が必要 4. 入力した数値をどの場所に挿入するかもユーザーが決めるためもう一つ数値が必要 5. ユーザーが入力した数値を指定した位置のリストに追加する事(insert) - **実行結果例:** - 実行例1 ``` How many insert? 2 Insert position(First position is 1《最初の位置は1》)? 3 New number: 0 New number: 10 List: 5 6 0 10 6 8 2 ``` - 実行例1 ``` How many insert? 2 Insert position(First position is 1《最初の位置は1》)? 3 New number: 0 New number: 10 List: 5 6 0 10 6 8 2 ``` ::: ```python= # これより下にコードを貼り付けてください d = int(input("How many insert?")) for i in range(1,d): e = int(input("Insert position(First position is 1《最初の位置は1》)?")) f = int(input("New number:")) print(Alist) # これより上にコードを貼り付けてください ``` #### コードが分からない場合はこっちのスライドを参考にしましょう。 [入力「input」 に関するスライド](https://drive.google.com/file/d/1_G5lTYKz8C0NUJGnHakqYejluE4m1vTK/view "input関連教材1") [for に関するスライド](https://drive.google.com/file/d/10YxwFttkjUwByAwRS-JzSHeuqpvU1yXb/view "for関連教材") [List に関するスライド](https://drive.google.com/file/d/1mmPB6g250jFoesAZYEaz2tWk1OX_QTH-/view "List関連教材") 分からない場合は分からない部分など、聞きたい事柄などを、次の中に書き込んでください。 :::warning (次の行から書き込んでください) ::: --- :::info ### **問題6:** - 問題3で使っていたリストを元に、ユーザーが指定した要素を削除できるようにしましょう。(remove) 削除に使う「remove」はリストに存在する値、要素を削除する事になるので、ユーザーに削除する値を入力してもらわなければいけません。なので入力した後に削除コマンドを行う必要があります。なので次の通りにプログラムしましょう。 1. ユーザーに削除させる値を入力させること 2. その数値をリストから削除すること(remove) - **実行結果例:** - 実行例1 ``` Delete number: 2 List: 5 6 6 8 ``` - 実行例2 ``` Delete number: 5 List: 6 6 8 2 ``` - 実行例3 ``` Delete number: 6 List: 5 8 2 ``` ::: ```python= # これより下にコードを貼り付けてください # これより上にコードを貼り付けてください ``` #### コードが分からない場合はこっちのスライドを参考にしましょう。 [入力「input」 に関するスライド](https://drive.google.com/file/d/1_G5lTYKz8C0NUJGnHakqYejluE4m1vTK/view "input関連教材1") [for に関するスライド](https://drive.google.com/file/d/10YxwFttkjUwByAwRS-JzSHeuqpvU1yXb/view "for関連教材") [List に関するスライド](https://drive.google.com/file/d/1mmPB6g250jFoesAZYEaz2tWk1OX_QTH-/view "List関連教材") 分からない場合は分からない部分など、聞きたい事柄などを、次の中に書き込んでください。 :::warning (次の行から書き込んでください) ::: --- :::info ### **問題7:** - さてここで問題1を振り返ってみましょう。問題1では選択できる機能を作ったと思います。それではここで5つ目の選択「End」を追加しましょう。ユーザーは5つの選択肢から何れかを選ぶことができ、1~4は問題1で使った機能をそのまま実行し、その後にまた選択出来る様にしましょう。この処理は5の「End」が選択されるまで続き、5が選択されたら「End」と表示し、以降再度選択が出来ないようになります。 - ユーザーに数字の1~5の数値を入力させ、入力した後はそれぞれ次の様に表示できるようにしましょう。 - **「1」が入力された場合:** 「これより機能1を実行します」、を表示させましょう、その後にまた1~5の選択に戻ります。(ループ) - **「2」が入力された場合:** 「今回は機能2を実行しましょう」、を表示させましょう、その後にまた1~5の選択に戻ります。(ループ) - **「3」が入力された場合:** 「3が入力されました」、を表示させましょう、その後にまた1~5の選択に戻ります。(ループ) - **「4」が入力された場合:** 「機能4、実行準備・・・」、を表示させましょう、その後にまた1~5の選択に戻ります。(ループ) - **「5」が入力された場合:** 「End」、を表示させましょう、そのまま選択ループから抜けましょう。 - **実行結果例:** ``` 機能1~4はループします・・・ Please input 1~5:1 これより機能1を実行します Please input 1~5:3 3が入力されました Please input 1~5:0 その機能は存在しません Please input 1~5:5 End ``` ::: ```python= # これより下にコードを貼り付けてください # これより上にコードを貼り付けてください ``` #### コードが分からない場合はこっちのスライドを参考にしましょう。 [入力「input」 に関するスライド](https://drive.google.com/file/d/1_G5lTYKz8C0NUJGnHakqYejluE4m1vTK/view "input関連教材1") [while に関するスライド](https://drive.google.com/file/d/1IHKO8sNzMN6KjcFphdm-cvBj7miBPtgX/view "while関連教材") [for に関するスライド](https://drive.google.com/file/d/10YxwFttkjUwByAwRS-JzSHeuqpvU1yXb/view "for関連教材") 分からない場合は分からない部分など、聞きたい事柄などを、次の中に書き込んでください。 :::warning (次の行から書き込んでください) ::: ---