Python入門トップページ


目次

  1. プログラミング言語
  2. Anaconda - Jupyter Notebook / JupyterLab の環境設定
  3. Python の基礎
  4. リスト,タプル,辞書,集合
  5. 再び Jupyter Notebook の操作
  6. Python の制御構文
  7. 関数
  8. 便利な関数など
  9. リストの内包表記
  10. 多次元リスト
  11. クラス
  12. 演習問題
  13. 雑多な情報

Python の基礎

演習問題

  1. 1週間が何秒かを求めよ.
  2. 変数 xy にぞれぞれ適当な整数を代入し,和,差,積,商を表示します.
  3. 変数 x1x2x3 に適当な整数を代入し,合計と平均を表示します.また,x1x2x3 の値とそれぞれを2倍した値も表示します.
  4. x 冊のノートと y 本のボールペンを n 人に分けた場合,1人当たりのノート冊数,ボールペンの本数とそれぞれの余りを求める.
  5. 変数 englishmathematicsjapanese に3科目の得点を入力します.3科目の合計が270点以上で評価をA,180点以上270点未満をB,180点未満をCと判定します.
  6. 変数 englishmathematicsjapanese に3科目の得点を入力します.3科目の得点の最小値を除いた2科目の得点で平均を求める.
  7. 購入金額(税抜き価格)が1万円未満なら7%引き,1万円以上なら15%引き,2万円以上の場合は20%引きとして,それに消費税8%を加えた合計額を計算します.
  8. 閏年の判定処理を行おう.その年が4で割り切れる場合は閏年とします.ただし,100で割り切れるときは閏年とせず,400で割り切れるときは閏年とします.
  9. 年月日の文字列を分割し,yearmonthday を取得します.例えば「2020年6月7日」を与えれば,year = 2020month = 6day = 7 のような値を取得します.
  10. 上で得られた月と日付の正当性チェックを行います.
  11. 年を与えると年号(明治,大正,昭和,平成,令和)を表示します.例えば,1945と入力すれば,「昭和20年」と表示します.
  12. 年月日を与えて元号で表示します.例えば,1945年8月15日と入力すれば,「昭和20年8月15日」と表示します.なお,次の表を参考にすると良いでしょう.また,例えば1926年12月25日は大正15年であり,昭和元年でもあることにも注意しよう(その他の改元日にも注意しよう).
    元号期間年数
    明治1868年1月1日 1912年7月30日45年
    大正1912年7月30日 1926年12月25日15年
    昭和1926年12月25日 1989年1月7日64年
    平成1989年1月8日 2019年4月30日31年
    令和2019年5月1日
  13. リストを使って,データを集計しよう.
    • リスト scores に10個の整数(得点)を入力し,リスト全体を表示した後,合計点と平均点を表示します.
    • 上で作成したリスト scores に1つの整数を追加し,リスト全体を表示するとともに,合計点と平均点を表示します.
    • 上のリスト scores を得点順にソートしたものを表示し,最高点と最低点も表示します.
    • 上のリスト scores の値と2倍した値の組み合わせを順に表示します.
  14. 辞書を使って,名前と得点を管理しよう.
    • 名前をキーとして得点を格納する辞書を作成し,10人の適当なデータ(ただし,同点はない)を入力します.全員の名前と得点を表示した後,最高点と最低点の名前と得点を表示します.
    • 上の問題で,同点のデータがある場合にはどのようにプログラムを修正すべきか?
    • 10人の適当なデータに対して,名前,得点と合否の一覧を表示するプログラムを作成します.ただし,合否は得点が60点以上で「可」それ以外は「否」と表示します.
  15. 関数を作ってみよう.
    • 引数に xyを与えれば,べき乗 (xのy乗)を返す関数 myPower を作成します.
    • 引数に xyを与えれば,商と余りのリストを返す関数 myDiv を作成します.
    • 引数に xyを与えれば,商と余りの辞書(商は quotient,余りは remainder をキーとする)を返す関数 myDiv_dic を作成します.
    • 引数に数のリストを与えれば,その合計を返す関数 mySum を作成します.
    • 上で作成した名前と得点の辞書を引数に与えれば,「可」の人数を返す関数 get_n_success を作成します.
    • 上で作成した名前と得点の辞書を引数に与えれば,「可」と判定された名前のリストと「否」と判定された名前のリストを返す関数 get_success_list を作成します.
  16. 整数のリストを与えて,nの倍数を含まないリストを作成します.(たとえば,[1,3,4,5,6,9] というリストと n = 2 を与えたら,[1,3,5,9]を返す.)
  17. 文字列を与えて,文字列の中に同じ文字が含まれているかどうかをチェックします.もしも同じ文字が含まれていればその文字を出力し,含まれていなければ「重複なし」と表示します.例えば「Java」と入力すれば「a」と出力され,「Python」と入力すれば「重複なし」と表示します.
  18. 数値や文字列が含まれるリストの中に重複した値が含まれているかどうかをチェックする関数を作成します.もしも同じ値が含まれていれば重複するすべての値をリスト形式で返し,含まれていなければ空のリストを返す.例えば [1, 2, 3, 4, 5] というリストを与えた場合は空のリスト [] を返し,[1, 2, 3, 1, 2] というリストを与えた場合は [1, 2] を返す.
  19. 2個のサイコロを振ったときの,目の組み合わせとそれぞれの確率を求める.
  20. 整数 n を入力して n! を計算する(だだし,n! = 1 x 2 x ... n ).
  21. n 個のものから r 個取り出す組み合わせの数を次の式を用いて計算します.
    \begin{equation} \mbox{ }_{n}C_{r} = \frac{n!}{r! (n-r)!} \end{equation}
  22. グループでの食事代を割り勘するプログラムを作成します.人数 n = 13,合計金額 total = 37378 を与えて,1人当たりの支払額を計算します.
    • まず,端数(小数点以下)が出ても良いので1人当たりの支払額を表示します.
    • 次に,端数は一人が払うものとして,n - 1人の支払額と,端数を払う人の支払額を表示します.
    • さらに,n - 1人の支払額が100円単位になるようにして,不足分は幹事が支払う場合に,n - 1人の支払額と,幹事の支払額を表示します.
    • 最後は,端数を支払う幹事の支払額が皆よりも少なくなるように,かつn - 1人の支払額が100円単位になるようにして,n - 1人の支払額と,幹事の支払額を表示します.
  23. 次の9個の数式を効率よく計算する方法を考えよう.また,それぞれの計算結果がどのような値になるか表示してみよう.
    \begin{eqnarray} \frac{111}{1 + 1 + 1} &=& ? \\ \\ \frac{222}{2 + 2 + 2} &=& ? \\ \\ \vdots \hspace{2em} && \vdots \\ \\ \frac{999}{9 + 9 + 9} &=& ? \\ \end{eqnarray}

目次に戻る