{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2023年度計算機演習A・B\n",
    "# 第1回：Python入門1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Pythonとは\n",
    "\n",
    "「Python」（パイソン）は、分かりやすさと実用性を兼ね備えてシステム開発から機械学習まで広く使われている人気のプログラミング言語です。\n",
    "\n",
    "Pythonは、パソコンに無料でインストールして使うことができます。ただし、この授業ではクラウド教育システムCESのプログラミング機能により、「JupyterLab」（ジュピター・ラボ）というWebブラウザ上で動作するプログラム対話型実行環境に搭載されたPythonを使用しますので、パソコンへのインストールは不要です。\n",
    "\n",
    "※Webブラウザ上でPythonを実行できる類似のサービスとしては、Google Colaboratoryが有名です。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. 数値の計算と出力\n",
    "\n",
    "数値の計算について、加算、減算、乗算、除算、余り、べき乗にはそれぞれ「+」「-」「*」「/」「%」「**」の記号を使います。数学と同様に括弧「(」「)」を使えば、計算の順序が変更できます。\n",
    "\n",
    "次のコードを実行してみてください。コードは、セルを選択した状態で[Shift]+[Enter]で実行できます。さらに、コードを書き換えて他の色々な計算も試してみてください。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "1+2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "コードの最後の計算結果は自動的に出力されますが、一般にPythonでは値の出力にprint関数を使います。\n",
    "\n",
    "print関数では文字列の出力も可能です。文字列は「\"」または「'」で囲んで書きます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(1+2)  # 1+2だと出力されない\n",
    "print(3*4)\n",
    "print(\"Hello, World!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上のコードで「#」から後ろはコメントです。コメントはコードの実行時に無視されるため、説明やメモを付ける目的で使われます。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 変数と代入\n",
    "\n",
    "プログラミングにおいては、変数（入れ物）の概念が非常に重要です。次のコードでは、aという変数に値1、bという変数に値2をそれぞれ代入（格納）しておいて、a+bの値を出力します。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "a = 1\n",
    "b = 2\n",
    "print(a+b)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "ここで、「=」は数学における「左辺と右辺が等しい」という意味ではなく、プログラミングでは「右辺の値を左辺の変数に代入する」という意味になることに注意してください。そのため、次のようなことも可能です。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "a = 10\n",
    "print(a)\n",
    "a = a+1\n",
    "print(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "変数の名前は、アルファベットと数字と「_」を組み合わせて複数文字にできます（ただし、一定のルールがあります）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 演習1\n",
    "\n",
    "変数aと変数bの値が任意に与えられたときに、それらの値を入れ替えるコードを書いてください。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "a = 1\n",
    "b = 2\n",
    "print(\"a =\",a,\", b =\",b)\n",
    "\n",
    "# ここで、aとbの値を入れ替える処理を行ってください。\n",
    "\n",
    "print(\"a =\",a,\", b =\",b)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "## 4. Markdownと数式\n",
    "\n",
    "Notebook（現在開いている拡張子ipynbのファイル）では、コードの他にセルの種類をMarkdownに設定して文章を追加することができます。\n",
    "\n",
    "Markdownはセルをダブルクリックして内容確認・編集し、コードと同様に[Shift]+[Enter]で実行（結果表示）します。\n",
    "\n",
    "Markdownの中では、LaTeX（ラテフ、ラテック）と同じ記法で様々な数式を書くことができます。\n",
    "\n",
    "$$\n",
    "a=\\cos \\pi\n",
    "$$\n",
    "\n",
    "$$\n",
    "b=e^{x+y}\n",
    "$$\n",
    "\n",
    "$$\n",
    "c=\\int_0^1 f(x)\\, dx\n",
    "$$\n",
    "\n",
    "余裕があれば、インターネットでMarkdownの書き方とLaTeXにおける数式の入力方法について調べてみてください。それぞれについて、参考ページのURLを1つずつ載せておきます。\n",
    "\n",
    "https://ai-inter1.com/markdown/\n",
    "\n",
    "https://qiita.com/ttabata/items/92a4a72b042e6a2dbbad"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 演習2\n",
    "\n",
    "Markdownの中でLaTeXの記法を用いて、自分の好きな数式を書いてください。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第1回レポート課題\n",
    "\n",
    "演習1と演習2に取り組んでください。\n",
    "\n",
    "このNotebookファイル（拡張子ipynb）ではなく新しいNotebookファイルを作成して解答をまとめ、ファイルをダウンロード（右クリックメニュー）してからCESのレポート提出機能で提出してください。\n",
    "\n",
    "ファイル名はお任せしますが、ファイル内に学籍番号と氏名の記載をお願いします。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
