{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Comments & Printing to the Console</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# This is a comment. Comments begin with a pound symbol. \n",
    "print('Hello World!!\\n')\n",
    "\n",
    "# Notice that single-quotes and double quotes work the same.\n",
    "print(\"Hello World!\\n\")\n",
    "\n",
    "# Data type declaration not required.\n",
    "message = \"Hello World\"\n",
    "print(message)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<H1>Useful Commmands</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "var = 1.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# The type() commmand\n",
    "print('The variable \"var\" is of the following type: %s' % type(var) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# The len() command\n",
    "print('The string \"%s\" is made up of %i characters.' % (var, len(str(var)) ))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# The dir() command\n",
    "\n",
    "print('\"var\" has the following attributes and methods:\\n')\n",
    "print(dir(var))\n",
    "print('\\n')\n",
    "\n",
    "# Call an attribute\n",
    "print(var.is_integer())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# The help() command\n",
    "help(print)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Data Types</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Data type declaration is implicit\n",
    "\n",
    "# Ints\n",
    "num1 = 1\n",
    "print(num1, type(num1))\n",
    "\n",
    "# Floats\n",
    "num2 = 1.0\n",
    "print(num2, type(num2))\n",
    "\n",
    "# Strings\n",
    "string = str(num1)\n",
    "print(string, type(string))\n",
    "\n",
    "# Lists\n",
    "list1 = [1,2,3]\n",
    "list1.append(4)\n",
    "print(list1, type(list1))\n",
    "\n",
    "# Dictionaries (Hash Tables)\n",
    "dict1 = {1: 'red', 2: 'blue'}\n",
    "print(dict1, type(dict1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Basic Math</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Adding\n",
    "num3 = num1 + num2\n",
    "print(num3, type(num3))\n",
    "\n",
    "# Quick Increment\n",
    "num3 += 2\n",
    "print(num3, type(num3))\n",
    "\n",
    "# Division\n",
    "print (5/3)\n",
    "\n",
    "# Modulus (Remainders)\n",
    "print(5%3)\n",
    "\n",
    "# Powers\n",
    "print(2**3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Conditional Flow & Loops</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('If/Else')\n",
    "flag = True\n",
    "\n",
    "if flag:\n",
    "    print('Option 1')\n",
    "else:\n",
    "    print('Option 2')\n",
    "    \n",
    "    \n",
    "print('\\nWhile Loops')\n",
    "num = 1\n",
    "while(flag):\n",
    "    \n",
    "    print(num)\n",
    "    num += 1\n",
    "    \n",
    "    if num == 3:\n",
    "        continue\n",
    "    elif num == 4:\n",
    "        break\n",
    "    else:\n",
    "        continue\n",
    "\n",
    "print('\\nFor Loops')\n",
    "for number in list1:\n",
    "    print(number)\n",
    "\n",
    "print('\\nFor Loops with Range')\n",
    "start = 4\n",
    "end = 9\n",
    "step = 2\n",
    "for number in range(start,end,step):\n",
    "    print(number)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Exceptions</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "animals = {'fish': 3, 'otters': 4} # Dictionary\n",
    "    \n",
    "try:\n",
    "    print(animals['seals'])\n",
    "except:\n",
    "    print(\"Sorry, that was not a valid entry\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>File I/O</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('The_Design_Process.txt', 'r') as text_file:\n",
    "    text = text_file.read()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(text_file.closed)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Time</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from datetime import datetime\n",
    "print(datetime.now())\n",
    "\n",
    "print(datetime.utcnow())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1>Plotting</h1>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = []\n",
    "for num in range(10):\n",
    "    data.append(random.randint(1,101))\n",
    "\n",
    "plt.figure(figsize=(16,4.5))\n",
    "plt.plot(data, label='Trend 1')\n",
    "plt.title('CPF Data')\n",
    "plt.ylabel('some numbers')\n",
    "plt.grid()\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = []\n",
    "for num in range(10):\n",
    "    data.append(random.randint(1,101))\n",
    "\n",
    "plt.figure(figsize=(8,8))\n",
    "plt.plot(data, 'ro')\n",
    "plt.ylabel('some numbers')\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "var1 = 100.0\n",
    "var2 = 200.0\n",
    "\n",
    "for i in range(0,10):\n",
    "    var3 = var1*i\n",
    "    var4 = var2*i\n",
    "    print(\"var 3 = %.2f var 4 = %.2f\" %(var3, var4) )\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
