{ "metadata": { "name": "", "signature": "sha256:1419097e799f886c39d4efaf48b46e814bb6210a1535985040e41cca9fbeaee3" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "***\n", "# 3. \uc218\uce58 \uc790\ub8cc\ud615\uacfc \uc5f0\uc0b0\uc790\n", "***\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 01 \uc218\uce58 \uc790\ub8cc\ud615\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-1 \uc815\uc218\ud615 \uc0c1\uc218" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = 23 # 10\uc9c4 \uc815\uc218\n", "b = 023 # 8\uc9c4 \uc815\uc218\n", "c = 0x23 # 16\uc9c4 \uc815\uc218\n", "print type(a), type(b), type(c)\n", "print a, b, c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " \n", "23 19 35\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "import sys\n", "sys.maxint # \ucd5c\ub300 \uc815\uc218 \uac12 \ud655\uc778" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "9223372036854775807" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-2 \uc2e4\uc218\ud615 \uc0c1\uc218" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = 1.2\n", "b = 3.5e3\n", "c = -0.2e-4\n", "print type(a), type(b), type(c)\n", "print a, b, c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " \n", "1.2 3500.0 -2e-05\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "e, f, g = 3.14, 2.16e-9, 3E220\n", "print e, f, g" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "3.14 2.16e-09 3e+220\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-3 \ub871\ud615 \uc0c1\uc218\n", "- \uba54\ubaa8\ub9ac\uac00 \ud5c8\uc6a9\ud558\ub294 \ud55c \uc720\ud6a8\uc790\ub9ac\uc218\ub294 \ubb34\ud55c\ub300" ] }, { "cell_type": "code", "collapsed": false, "input": [ "h1 = 123456789012345678901234567890L # \ub9c8\uc9c0\ub9c9\uc5d0 L\uc744 \ubd99\uc5ec\uc11c \uba85\uc2dc\uc801\uc73c\ub85c long \ud615\uc774\ub77c\uace0 \uc54c\ub824\ub3c4 \ub418\uace0\n", "print type(h1)\n", "print h1 * h1\n", "print\n", "\n", "h2 = 123456789012345678901234567890 # L\uc744 \ubd99\uc774\uc9c0 \uc54a\uc544\ub3c4 int\ud615\uc774 \ub2f4\uc744 \uc218 \uc788\ub294 \uc218\uce58\ub97c \ucd08\uacfc\ud558\uba74 \uc790\ub3d9\uc73c\ub85c long\ud615\uc774 \ub41c\ub2e4. \n", "print type(h2)\n", "print h2 * h2\n", "print\n", "\n", "h3 = 123L\n", "print type(h3)\n", "print\n", "\n", "h4 = 123\n", "print type(h4)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "15241578753238836750495351562536198787501905199875019052100\n", "\n", "\n", "15241578753238836750495351562536198787501905199875019052100\n", "\n", "\n", "\n", "\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "octal = 01234L # 8\uc9c4\ubc95 long\ud615\n", "print octal\n", "octal" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "668\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "668L" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "hexa = 0x123456789L # 16\uc9c4\ubc95 long\ud615\n", "hexa" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "4886718345L" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "123456789012345678890 # \uc790\ub3d9 long\ud615 \ubcc0\ud658" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "123456789012345678890L" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "2 ** 3 ** 4 # print \uc5c6\uc774 \ucd9c\ub825\ud560 \ub54c\uc5d0\ub294 L\ub97c \ud568\uaed8 \ud45c\uae30\ud568" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "2417851639229258349412352L" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "print 2 ** 3 ** 4 # print\uc640 \ud568\uaed8 \ucd9c\ub825\ud560 \ub54c\uc5d0\ub294 L \ud45c\uae30 \ud558\uc9c0 \uc54a\uc74c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2417851639229258349412352\n" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-4 \ubcf5\uc18c\uc218\ud615 \uc0c1\uc218\n", "- \uc0dd\ub7b5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-5 Decimal \uc790\ub8cc\ud615\n", "- \ucef4\ud4e8\ud130\uc758 \ubd80\ub3d9\uc18c\uc218\uc810 (Floating point)\uc5d0 \uc758\ud55c \uc2e4\uc218 \ud45c\ud604\uc740 \ub9e4\uc6b0 \ubbf8\ubbf8\ud55c \uc624\ucc28\ub97c \ub3d9\ubc18\ud568\n", "- \uadf8\ub7ec\ud55c \uc624\ucc28\ub97c \ucd5c\ub300\ud55c \uc904\uc774\uace0 \ucd5c\ub300\ud55c \uc815\ud655\ud55c \uacb0\uacfc \uac12\uc744 \uc5bb\uc5b4\ub0b4\uae30 \uc704\ud574 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ubaa8\ub4c8 -> decimal \ubaa8\ub4c8\n", "- \ub2e4\uc74c \ub450 \uac1c\uc758 \ud074\ub798\uc2a4\ub97c \uc81c\uacf5\n", " - Decimal: \uc22b\uc790 \uc790\uccb4\ub97c \ud45c\ud604\n", " - Context: \uc815\ud655\ub3c4\ub098 \ubc18\uc62c\ub9bc \ubc29\ubc95 \ub4f1\uacfc \uac19\uc740 \ud658\uacbd \uc124\uc815" ] }, { "cell_type": "code", "collapsed": false, "input": [ "1.1" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "1.1" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uc815\uc218 \ub9ac\ud130\ub7f4\ub85c \ubd80\ud130 \uc815\uc218 Decimal \uac1d\uccb4 \uc0dd\uc131" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from decimal import *\n", "Decimal(1234)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "Decimal('1234')" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ubb38\uc790 \ub9ac\ud130\ub7f4\ub85c \ubd80\ud130 \uc815\uc218 Decimal \uac1d\uccb4 \uc0dd\uc131" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Decimal('1234')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "Decimal('1234')" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uc2e4\uc218 \ub9ac\ud130\ub7f4\ub85c \ubd80\ud130 \uc2e4\uc218 Decimal \uac1d\uccb4 \uc0dd\uc131\n", " - \uc774\uc804 python \ubc84\uc804\uc5d0\uc11c\ub294 \uc5d0\ub7ec \ubc1c\uc0dd\n", " - \ucd5c\uadfc python \ubc84\uc804\uc5d0\uc11c\ub294 \uc5d0\ub7ec \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc9c0\ub9cc \ucd94\ucc9c\ud558\uc9c0 \uc54a\uc74c\n", " - \uc774\uc720: \uc774\ubbf8 \uc2e4\uc218 \ub9ac\ud130\ub7f4 \uc790\uccb4\uac00 \uc624\ucc28\ub97c \ud3ec\ud568\ud558\uace0 \uc788\uae30 \ub54c\ubb38" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from decimal import *\n", "Decimal(1.1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 47, "text": [ "Decimal('1.100000000000000088817841970012523233890533447265625')" ] } ], "prompt_number": 47 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ubb38\uc790\uc5f4 \ub9ac\ud130\ub7f4\ub85c \ubd80\ud130 \uc2e4\uc218 Decimal \uac1d\uccb4 \uc0dd\uc131 " ] }, { "cell_type": "code", "collapsed": false, "input": [ "Decimal('1.1')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 37, "text": [ "Decimal('1.1')" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "from decimal import *\n", "Decimal('Infinity') # \uc591\uc758 \ubb34\ud55c\ub300 \ud45c\ud604" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 28, "text": [ "Decimal('Infinity')" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "Decimal('-Infinity') # \uc74c\uc758 \ubb34\ud55c\ub300 \ud45c\ud604" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "Decimal('-Infinity')" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "Decimal(\"NaN\") # Not a number \ud45c\ud604 " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "Decimal('NaN')" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Decimal \ud65c\uc6a9\uc758 \uc88b\uc740 \uc608" ] }, { "cell_type": "code", "collapsed": false, "input": [ "e = 0.0 # \uae30\ubcf8 \uc790\ub8cc\ud615\uc778 float\ud615 \ubcc0\uc218 e \uc0dd\uc131 \ubc0f 0.0 \uac12\uc73c\ub85c \ucd08\uae30\ud654\n", "for k in range(10000): # 0\ubd80\ud130 9999 \uae4c\uc9c0 \ub9cc\ubc88 \ubc18\ubcf5\n", " e += 0.0001 # 0.0001\uc744 \ub204\uc801 \n", " \n", "print e # print\ub85c\ub294 1.0\uc774 \ucd9c\ub825\ub428" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1.0\n" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "e # \ud558\uc9c0\ub9cc, \uc2e4\uc81c \uc800\uc7a5\ub418\uc5b4 \uc788\ub294 \uac12\uc5d0\ub294 \uc624\ucc28 \uc874\uc7ac" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 36, "text": [ "0.9999999999999062" ] } ], "prompt_number": 36 }, { "cell_type": "code", "collapsed": false, "input": [ "from decimal import *\n", "e2 = Decimal('0.0') # \uae30\ubcf8 \uc790\ub8cc\ud615\uc778 float\ud615 \ubcc0\uc218 e \uc0dd\uc131 \ubc0f 0.0 \uac12\uc73c\ub85c \ucd08\uae30\ud654\n", "delta = Decimal('0.0001') # \ub204\uc801\ud558\ub824\uace0 \ud558\ub294 0.0001 \uac12\uc744 Decimal \uac1d\uccb4\uc778 delta \ubcc0\uc218\ub85c \uc0dd\uc131\n", "\n", "for k in range(10000): # 0\ubd80\ud130 9999 \uae4c\uc9c0 \ub9cc\ubc88 \ubc18\ubcf5\n", " e2 += delta # delta\ub97c \ub204\uc801 \n", " \n", "print e2 # print\ub85c\ub294 1.0\uc774 \ucd9c\ub825\ub428" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1.0000\n" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "e2 # \uc2e4\uc81c \uc800\uc7a5\ub418\uc5b4 \uc788\ub294 \uac83\uc740 \uc624\ucc28 \uc5c6\uc774 1.0 \uac12\uc744 \uc9c0\ub2cc Decimal \uac1d\uccb4" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "Decimal('1.0000')" ] } ], "prompt_number": 6 }, { "cell_type": "raw", "metadata": {}, "source": [ "- Decimal \uac1d\uccb4\uc5d0 \ub300\ud574 \uac01\uc885 \uc5f0\uc0b0\uc790\ub4e4\uc774 \ubaa8\ub450 \uc218\ud589\ub428\n", " - \uc624\ucc28\uac00 \uac70\uc758 \uc5c6\ub294 \uc5f0\uc0b0\uc774 \uac00\ub2a5\ud568" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "a = Decimal('35.72')\n", "b = Decimal('1.73')\n", "\n", "print a + b\n", "print a - b\n", "print a * b\n", "print a / b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ucd5c\uadfc python \ubc84\uc804\uc5d0\uc11c\ub294 \uc2e4\uc218\uc5d0 \ub300\ud55c \uc9c0\uc218\uc2b9 \uc9c0\uc6d0 (decimal\uc774 \uc544\ub2c8\uc5b4\ub3c4 \uc2e4\uc218\uc5d0 \ub300\ud55c \uc9c0\uc218\uc2b9 \uac00\ub2a5) " ] }, { "cell_type": "code", "collapsed": false, "input": [ "print a ** 2\n", "a ** b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1275.9184\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 45, "text": [ "Decimal('485.8887109649886451686600498')" ] } ], "prompt_number": 45 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Decimal \ud0c0\uc785\uacfc \uae30\ubcf8 \uc815\uc218\ud615\uc5d0 \ub300\ud55c \uc0ac\uce59\uc5f0\uc0b0 \uc9c0\uc6d0" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = Decimal(\"1.2\")\n", "\n", "print a + 2\n", "print 2 + a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "3.2\n", "3.2\n" ] } ], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Decimal \ud0c0\uc785\uacfc \uae30\ubcf8 \uc2e4\uc218\ud615\uc5d0 \ub300\ud55c \uc0ac\uce59\uc5f0\uc0b0\uc740 \uc5d0\ub7ec \ubc1c\uc0dd" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = Decimal(\"1.2\")\n", "a + 1.5" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "unsupported operand type(s) for +: 'Decimal' and 'float'", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDecimal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"1.2\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1.5\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'Decimal' and 'float'" ] } ], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "import math, cmath\n", "\n", "d = Decimal('123.456789012345')\n", "\n", "print math.sqrt(d)\n", "print cmath.sqrt(-d)\n", "\n", "print d.sqrt() # Decimal \uac1d\uccb4 \uc790\uccb4\uac00 sqrt() \ud568\uc218 \uc9c0\ub2c8\uace0 \uc788\uc74c\n", "print d.quantize(Decimal('.01'), rounding = ROUND_DOWN) # \ud574\ub2f9 \uc790\ub9ac\uc218 \ubbf8\ub9cc \ub0b4\ub9bc (\uc81c\uac70)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "11.1111110611\n", "11.1111110611j\n", "11.11111106111108044305541755\n", "123.45\n" ] } ], "prompt_number": 52 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ud29c\ud50c \ub9ac\ud130\ub7f4\ub85c Decimal \uac1d\uccb4 \uc0dd\uc131\n", " - \ub2e4\uc74c\uacfc \uac19\uc740 \uc778\uc790 3\uac1c \ud544\uc694\n", " - \ubd80\ud638: 0 - \uc591\uc218, 1 - \uc74c\uc218\n", " - \uac12\n", " - \uc18c\uc218\uc810\uc758 \uc704\uce58" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a1 = Decimal((1, (1, 4, 7, 5), 0))\n", "a2 = Decimal((1, (1, 4, 7, 5), -1))\n", "a3 = Decimal((1, (1, 4, 7, 5), -2))\n", "a4 = Decimal((1, (1, 4, 7, 5), -3))\n", "\n", "print a1\n", "print a2\n", "print a3\n", "print a4\n", "print\n", "\n", "b1 = Decimal((0, (1, 4, 7, 5), 0))\n", "b2 = Decimal((0, (1, 4, 7, 5), -1))\n", "b3 = Decimal((0, (1, 4, 7, 5), -2))\n", "b4 = Decimal((0, (1, 4, 7, 5), -3))\n", "\n", "print b1\n", "print b2\n", "print b3\n", "print b4" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-1475\n", "-147.5\n", "-14.75\n", "-1.475\n", "\n", "1475\n", "147.5\n", "14.75\n", "1.475\n" ] } ], "prompt_number": 57 }, { "cell_type": "code", "collapsed": false, "input": [ "getcontext()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[Inexact, Rounded], traps=[DivisionByZero, Overflow, InvalidOperation])" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "Decimal(1) / Decimal(7)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 35, "text": [ "Decimal('0.1428571428571428571428571429')" ] } ], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "getcontext().prec = 9\n", "Decimal(1) / Decimal(7)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "Decimal('0.142857143')" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "ExtendedContext" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "Context(prec=9, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[])" ] } ], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "BasicContext" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "Context(prec=9, rounding=ROUND_HALF_UP, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[Clamped, DivisionByZero, Underflow, Overflow, InvalidOperation])" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "DefaultContext" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 32, "text": [ "Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[DivisionByZero, Overflow, InvalidOperation])" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "setcontext(ExtendedContext)\n", "Decimal(1)/ Decimal(7)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 60, "text": [ "Decimal('0.142857143')" ] } ], "prompt_number": 60 }, { "cell_type": "code", "collapsed": false, "input": [ "setcontext(DefaultContext)\n", "Decimal(1)/ Decimal(7)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 34, "text": [ "Decimal('0.1428571428571428571428571429')" ] } ], "prompt_number": 34 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- ROUND_HALF_UP vs. ROUND_HALF_EVEN\n", " - ROUND_HALF_UP:\n", " - 2.44 -> 2.4\n", " - ***2.45 -> 2.5***\n", " - 2.46 -> 2.5\n", " - ...\n", " - 2.54 -> 2.5\n", " - ***2.55 -> 2.6***\n", " - 2.56 -> 2.6\n", " - ROUND_HALF_EVEN\uc740 \uac70\ub9ac\uac00 \uac19\uc740 \uacbd\uc6b0\uc5d0 \ub9c8\uc9c0\ub9c9\uc758 \uc22b\uc790\uac00 \uc9dd\uc218\ub97c \uc720\uc9c0\ud558\ub3c4\ub85d \ud568\n", " - ROUND_HALF_EVEN:\n", " - 2.44 -> 2.4\n", " - ***2.45 -> 2.4***\n", " - 2.46 -> 2.5\n", " - ...\n", " - 2.54 -> 2.5\n", " - ***2.55 -> 2.6***\n", " - 2.56 -> 2.6\n", "\n", "- Rounding\uc5d0 \ub300\ud55c \ucc38\uace0\uc790\ub8cc\n", " - https://docs.python.org/2/library/decimal.html#context-objects\n", " - http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.config.doc/doc/r0052298.html?cp=SSEPGG_9.7.0%2F2-2-6-7-29&lang=ko\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 02 \ud30c\uc774\uc36c \uc5f0\uc0b0\uc790\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-1 \uc0b0\uc220 \uc5f0\uc0b0\uc790" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| \uc5f0\uc0b0\uc790 | \uc6b0\uc120\uc21c\uc704 | \uc124\uba85 | \uacb0\ud569\uc21c\uc11c |\n", "|:------:|:------:|:-----------------:|:-----------:|\n", "| +, - | 1 | \ub2e8\ud56d \uc5f0\uc0b0\uc790 | - | \n", "| ** | 2 |\uc9c0\uc218 \uc5f0\uc0b0\uc790 | \uc67c\ucabd <- \uc624\ub978\ucabd | \n", "| *,/,%,// | 3 |\uacf1\ud558\uae30,\ub098\ub204\uae30,\ub098\uba38\uc9c0,\ubaab | \uc67c\ucabd -> \uc624\ub978\ucabd | \n", "| +, - | 4 |\ub354\ud558\uae30,\ube7c\uae30 | \uc67c\ucabd -> \uc624\ub978\ucabd |" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print 2 ** 3\n", "print 2 ** 3 ** 2\n", "print (2 ** 3) ** 2\n", "print 5 % 2\n", "print -5 % 2" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "8\n", "512\n", "64\n", "1\n", "1\n" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "5 ** -2.0" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "0.04" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "print 3+5\n", "print 3+5.0 # \uc815\uc218 + \uc2e4\uc218\uc758 \uacb0\uacfc\ub294 \uc2e4\uc218" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "8\n", "8.0\n" ] } ], "prompt_number": 63 }, { "cell_type": "code", "collapsed": false, "input": [ "print 5 / 2.0 # \uc815\uc218 / \uc2e4\uc218\uc758 \uacb0\uacfc\ub294 \uc2e4\uc218\n", "print 5 / 2" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2.5\n", "2\n" ] } ], "prompt_number": 64 }, { "cell_type": "code", "collapsed": false, "input": [ "a = 5 / 3\n", "b = 5 % 3\n", "\n", "print a, b\n", "\n", "print divmod(5,3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1 2\n", "(1, 2)\n" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "print 5 % 3\n", "print 5 % -3\n", "print -5 % 3\n", "print -5 % -3" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2\n", "-1\n", "1\n", "-2\n" ] } ], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "print 5 / 3\n", "print 5 / -3\n", "print -5 / 3\n", "print -5 / -3" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n", "-2\n", "-2\n", "1\n" ] } ], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "print 3 // 4\n", "print 3.0 // 4.0\n", "print -3 // 4\n", "print -3 // 4.0 " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0\n", "0.0\n", "-1\n", "-1.0\n" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "print 3 / 4\n", "print 3.0 / 4.0\n", "print -3 / 4\n", "print -3 / 4.0 " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0\n", "0.75\n", "-1\n", "-0.75\n" ] } ], "prompt_number": 48 }, { "cell_type": "code", "collapsed": false, "input": [ "print -7/4 #\ub2e8\ud56d \uc5f0\uc0b0\uc790(-)\uc758 \uc6b0\uc120\uc21c\uc704\uac00 \uc774\ud56d \uc5f0\uc0b0\uc790(/)\uc758 \uc6b0\uc120\uc21c\uc704\ubcf4\ub2e4 \ub192\ub2e4 (-7\uc744 4\ub85c \ub098\ub208\ub2e4).\n", "print -(7/4) #7/4\uc758 \uacb0\uacfc\uc5d0 \ub2e8\ud56d \uc5f0\uc0b0\uc744 \uc218\ud589\ud568" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-2\n", "-1\n" ] } ], "prompt_number": 66 }, { "cell_type": "code", "collapsed": false, "input": [ "4 * -5" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 49, "text": [ "-20" ] } ], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "print 2 + 3 * 4\n", "print (2 + 3) * 4" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "14\n", "20\n" ] } ], "prompt_number": 51 }, { "cell_type": "code", "collapsed": false, "input": [ "print ++3\n", "print --3\n", "print -+3\n", "print +-3" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "3\n", "3\n", "-3\n", "-3\n" ] } ], "prompt_number": 52 }, { "cell_type": "code", "collapsed": false, "input": [ "print 4 / 2 * 2" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "4\n" ] } ], "prompt_number": 53 }, { "cell_type": "code", "collapsed": false, "input": [ "print 2 ** 3 ** 4 # ** \uc5f0\uc0b0\uc790\uc758 \uacb0\ud569\uc21c\uc11c\ub294 \uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd\uc73c\ub85c!\n", "print (2 ** 3) ** 4" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2417851639229258349412352\n", "4096\n" ] } ], "prompt_number": 54 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-2 \uad00\uacc4 \uc5f0\uc0b0\uc790\n", "- \uac1d\uccb4\uac00 \uc9c0\ub2cc \uac12\uc758 \ud06c\uae30(\ub300\uc18c)\ub97c \ube44\uad50\ud568" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print 6 == 9\n", "print 6 != 9\n", "print 1 > 3\n", "print 4 <= 5\n", "\n", "a = 5\n", "b = 10\n", "print a < b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "False\n", "True\n", "False\n", "True\n", "True\n" ] } ], "prompt_number": 57 }, { "cell_type": "code", "collapsed": false, "input": [ "0 < a < b" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 58, "text": [ "True" ] } ], "prompt_number": 58 }, { "cell_type": "code", "collapsed": false, "input": [ "0 < a and a < b" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 59, "text": [ "True" ] } ], "prompt_number": 59 }, { "cell_type": "code", "collapsed": false, "input": [ "print 'abcd' > 'abd' # \ubb38\uc790\uc5f4, \ud29c\ud50c, \ub9ac\uc2a4\ud2b8\uc758 \uad00\uacc4 \uc5f0\uc0b0 \ube44\uad50\ub294 \uc77c\ubc18 \uc0ac\uc804 \uc21c\uc11c. \uc0ac\uc804\uc5d0\uc11c \uc55e\uc5d0 \ub098\uc624\ub294 \uac12\uc774 \uc791\uc740 \uac12\uc73c\ub85c \ud3c9\uac00\ub428\n", "print (1, 2, 4) < (2, 1, 0) \n", "print [1, 3, 2] == [1, 2, 3]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "False\n", "True\n", "False\n" ] } ], "prompt_number": 68 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uc11c\ub85c \ub2e4\ub978 \uc790\ub8cc\ud615\uac04\uc758 \ud06c\uae30 \uad00\uacc4\n", " - \uc22b\uc790 < \uc0ac\uc804 < \ub9ac\uc2a4\ud2b8 < \ubb38\uc790\uc5f4 < \ud29c\ud50c" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print 9999999999999999999999L < 'abc'\n", "print {3:2} < [1,2,3] < (1,2,3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True\n", "True\n" ] } ], "prompt_number": 64 }, { "cell_type": "code", "collapsed": false, "input": [ "L = [1,2,3, 'abc', 'a', 'z', (1,2,3), [1,2,3], {1:2}, ['abc']]\n", "L.sort()\n", "L" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 68, "text": [ "[1, 2, 3, {1: 2}, [1, 2, 3], ['abc'], 'a', 'abc', 'z', (1, 2, 3)]" ] } ], "prompt_number": 68 }, { "cell_type": "code", "collapsed": false, "input": [ "x = [1,2,3]\n", "y = [1,2,3]\n", "z = y\n", "\n", "print x == y\n", "print x == z\n", "print x is y\n", "print x is z\n", "print y is z" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True\n", "True\n", "False\n", "False\n", "True\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "![image](images/objectIdentity.png)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Y[1] = 100\n", "print X\n", "print Y\n", "print Z" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[1, 2, 3]\n", "[1, 100, 3]\n", "[1, 100, 3]\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-3 \ub17c\ub9ac \uc5f0\uc0b0\uc790 (or \ubd80\uc6b8 \uc5f0\uc0b0\uc790)\n", "- \ud53c\uc5f0\uc0b0\uc790\uc758 \uac12\uc73c\ub85c \uc9c4\ub9ac\uac12\uc778 True \ub610\ub294 False\uc744 \ucde8\ud558\uc5ec \ub17c\ub9ac \uc801\uc778 \uacc4\uc0b0\uc744 \uc218\ud589\ud558\ub294 \uc5f0\uc0b0\uc790\n", " - and\n", " - or\n", " - not\n", "- \ub17c\ub9ac \uc5f0\uc0b0\uc790 \uc790\uccb4\uac00 \uac12\uc744 \ubc18\ud658\ud558\uc9c0\ub294 \uc54a\ub294\ub2e4. \n", "- \ub17c\ub9ac \uc5f0\uc0b0\uc744 \ub530\ub77c \ucd5c\uc885\uc801\uc73c\ub85c \ud3c9\uac00(Evaluation)\ub418\uc5b4\uc9c4 \uac12\uc774 \ubc18\ud658\ub41c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = 20\n", "b = 30\n", "\n", "a > 10 and b < 50" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 73, "text": [ "True" ] } ], "prompt_number": 73 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uc9c4\ub9ac\uac12\uc5d0 \ud574\ub2f9\ud558\ub294 True\uc640 False\ub294 \ub2e4\ub978 \uc0ac\uce59\uc5f0\uc0b0\uc790\ub97c \ub9cc\ub098\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ud3c9\uac00\ub428\n", " - True: 1\n", " - False: 0" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print True + 1\n", "print False + 1\n", "print False * 75\n", "print True * 75" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2\n", "1\n", "0\n", "75\n" ] } ], "prompt_number": 77 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- bool() \ub0b4\uc7a5 \ud568\uc218\ub97c \uc774\uc6a9\ud574\uc11c \uc218\uce58 \uac12\uc744 \uc9c4\ub9ac \uac12\uc73c\ub85c \uad50\ud658 \uac00\ub2a5" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print bool(0) # \uc815\uc218 0\uc740 \uac70\uc9d3\n", "print bool(1)\n", "print bool(100)\n", "print bool(-100)\n", "print\n", "print bool(0.0) # \uc2e4\uc218 0.0\uc740 \uac70\uc9d3\n", "print bool(0.1)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "False\n", "True\n", "True\n", "True\n", "\n", "False\n", "True\n" ] } ], "prompt_number": 82 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uac12\uc774 \uc5c6\ub294 \ube48 \uac1d\uccb4\ub098 None \uac1d\uccb4\ub294 False\ub85c \ud3c9\uac00\ub428" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print bool('abc')\n", "print bool('')\n", "print\n", "print bool([]) # \uacf5 \ub9ac\uc2a4\ud2b8\ub294 \uac70\uc9d3\n", "print bool([1,2,3])\n", "print \n", "print bool(()) # \uacf5 \ud29c\ud50c\uc740 \uac70\uc9d3\n", "print bool((1,2,3))\n", "print \n", "print bool({}) # \uacf5 \uc0ac\uc804\uc740 \uac70\uc9d3\n", "print bool({1:2})\n", "print\n", "print bool(None) # None \uac1d\uccb4\ub294 \uac70\uc9d3" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True\n", "False\n", "\n", "False\n", "True\n", "\n", "False\n", "True\n", "\n", "False\n", "True\n", "\n", "False\n" ] } ], "prompt_number": 81 }, { "cell_type": "code", "collapsed": false, "input": [ "print 1 and 1\n", "print 1 and 0\n", "print 0 or 0 \n", "print 1 or 0\n", "print \n", "print [] or 1 # [] \uac70\uc9d3\n", "print [] or () # [], () \uac70\uc9d3\n", "print [] and 1 # [] \uac70\uc9d3\uc774\ubbc0\ub85c 1\uc740 \ucc38\uc870\ud560 \ud544\uc694 \uc5c6\uc74c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n", "0\n", "0\n", "1\n", "\n", "1\n", "()\n", "[]\n" ] } ], "prompt_number": 85 }, { "cell_type": "code", "collapsed": false, "input": [ "print 1 and 2 \n", "print 1 or 2\n", "print \n", "print [[]] or 1 # [[]] \ucc38\uc73c\ub85c \uac04\uc8fc\n", "print [{}] or 1 # [)] \ucc38\uc73c\ub85c \uac04\uc8fc\n", "print '' or 1 # \ube48 \ubb38\uc790\uc5f4('')\uc740 \uac70\uc9d3" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2\n", "1\n", "\n", "[[]]\n", "[{}]\n", "1\n" ] } ], "prompt_number": 86 }, { "cell_type": "code", "collapsed": false, "input": [ "print not(True)\n", "print not(1 and 2)\n", "print not('' or 1)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "False\n", "False\n", "False\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-4 \ube44\ud2b8 \ub2e8\uc704 \uc5f0\uc0b0\uc790" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ube44\ud2b8 \ub2e8\uc704 \uc870\uc791 \uc9c0\uc6d0\n", "- \ube44\ud2b8 \ub2e8\uc704 \uc5f0\uc0b0\uc790\n", " - ~ : \ube44\ud2b8 \ubc18\uc804 (\ubcf4\uc218)\n", " - <<: \uc67c\ucabd\uc73c\ub85c \ube44\ud2b8 \uc774\ub3d9\n", " - >>: \uc624\ub978\ucabd\uc73c\ub85c \ube44\ud2b8 \uc774\ub3d9\n", " - & : \ube44\ud2b8 \ub2e8\uc704 AND\n", " - ^ : \ube44\ud2b8 \ub2e8\uc704 XOR\n", " - | : \ube44\ud2b8 \ub2e8\uc704 OR\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### \ucc38\uace0: \uc74c\uc218\uc758 \ud45c\ud604 (2\uc758 \ubcf4\uc218 \ud45c\ud604\ubc95)\n", "- \uc74c\uc218\ub294 leading one \uc73c\ub85c \uc2dc\uc791\ud568 (\uc591\uc218\ub294 leading zero)\n", "- \ub9cc\uc57d \uc815\uc218\uac00 8\ube44\ud2b8\ub85c \uc774\ub8e8\uc9c4\ub2e4\uba74 \"0000 0000\"\uc5d0\uc11c \"0111 1111\" \uc22b\uc790\ub294 0\uc5d0\uc11c 127\uc744 \ub098\ud0c0\ub0c4\n", "- \ub9cc\uc57d \uc815\uc218\uac00 8\ube44\ud2b8\ub85c \uc774\ub8e8\uc9c4\ub2e4\uba74 \"1000 0000\"\uc5d0\uc11c \"1111 1111\" \uc22b\uc790\ub294 -128\uc5d0\uc11c -1\uc744 \ub098\ud0c0\ub0c4\n", " - ***[\uc57d\uc18d] \uc74c\uc218\uc778 -x\ub294 (x - 1)\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218\ub85c \ud45c\ud604 (2\uc758 \ubcf4\uc218 \ud45c\ud604\ubc95)***\n", " - -x = 1's complement of (x - 1)\n", " - -1 = (1 - 1)\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = 0\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = \"0000 0000\"\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = \"1111 1111\"\n", " - -10 = (10 - 1)\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = 9\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = \"0000 1001\"\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = \"1111 0110\" \n", " - -128 = (128 - 1)\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = 127\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = \"0111 1111\"\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = \"1000 0000\"\n", " - \"1111 1010\" = \"0000 0101\"\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = 5\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = (6 - 1)\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = -6\n", " - \"1111 1110\" = \"0000 0001\"\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = 1\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = (2 - 1)\uc5d0 \ub300\ud55c 1\uc758 \ubcf4\uc218 = -2\n", "- \ucc38\uace0\n", " - http://www.ecogwiki.com/2%EC%9D%98_%EB%B3%B4%EC%88%98%EB%B2%95%EC%9C%BC%EB%A1%9C_%EC%9D%8C%EC%88%98_%ED%91%9C%ED%98%84%ED%95%98%EA%B8%B0\n", " - http://multithread.tistory.com/entry/%EC%A0%95%EC%88%98%EC%9D%98-2%EC%9D%98%EB%B3%B4%EC%88%98-%ED%91%9C%ED%98%84" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print ~5 #\"0000 0101\" -> \"1111 1010\"\n", "print ~-1 #\"1111 1111\" -> \"0000 0000\"\n", "print ~-128 #\"1000 0000\" -> \"0111 1111\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-6\n", "0\n", "127\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "a = 3 # \"0000 0011\"\n", "print a << 2 # \"0000 1100\", \uc624\ub978\ucabd\uc5d0\ub294 0\uc73c\ub85c \ucc44\uc6cc\uc9d0 (a * 2 ** 2 \uc640 \ub3d9\uc77c)\n", "print 1 << 128 # \ub871\ud615\uc73c\ub85c \uc790\ub3d9\ubcc0\ud658 (1 * 2 ** 128 \uacfc \ub3d9\uc77c)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "12\n", "340282366920938463463374607431768211456\n" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "a = 4 # \"0000 0100\"\n", "print a >> 1 # \"0000 0010\", \uc67c\ucabd\uc5d0\ub3c4 0\uc73c\ub85c \ucc44\uc6cc\uc9d0\n", "\n", "a = -4 # \"1111 1100\" \n", "print a >> 1 # \"1111 1110\", \uc74c\uc218\uc758 \uacbd\uc6b0 \uc67c\ucabd\uc5d0\ub294 1\ub85c \ucc44\uc6cc\uc9d0" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2\n", "-2\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "a = 3\n", "print a & 2 #0000 0011 bit_and 0000 0010\n", "print a | 8 #0000 0011 bit_or 0000 1000\n", "print 0x0f ^ 0x06 #0000 1111 exclusive_or 0000 0110" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2\n", "11\n", "9\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-5 \uc5f0\uc0b0\uc790 \uc6b0\uc120 \uc21c\uc704 \ud45c" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uad50\uc7ac 137\ud398\uc774\uc9c0\n", "- \ucc38\uace0: https://wikidocs.net/1165" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 03 \ud30c\uc774\uc36c \uc218\uce58 \uc5f0\uc0b0 \ud568\uc218\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3-1 \ub0b4\uc7a5 \uc218\uce58 \uc5f0\uc0b0 \ud568\uc218" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print abs(-3)\n", "print int(3.141592)\n", "print int(-3.1415)\n", "print long(3)\n", "print float(5)\n", "print complex(3.4, 5)\n", "print complex(6)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "3\n", "3\n", "-3\n", "3\n", "5.0\n", "(3.4+5j)\n", "(6+0j)\n" ] } ], "prompt_number": 105 }, { "cell_type": "code", "collapsed": false, "input": [ "print divmod(5, 2)\n", "print\n", "print pow (2, 3)\n", "print pow(2.3, 3.5)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(2, 1)\n", "\n", "8\n", "18.4521691056\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3-2 math \ubaa8\ub4c8\uc758 \uc218\uce58 \uc5f0\uc0b0 \ud568\uc218" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import math\n", "\n", "print math.pi\n", "print math.e\n", "print math.sin(1.0) # 1.0 \ub77c\ub514\uc548\uc5d0 \ub300\ud55c \uc0ac\uc778 \uac12\n", "print math.sqrt(2) # \uc81c\uacf1\uadfc" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "3.14159265359\n", "2.71828182846\n", "0.841470984808\n", "1.41421356237\n" ] } ], "prompt_number": 109 }, { "cell_type": "code", "collapsed": false, "input": [ "r = 5.0 # \ubc18\uc9c0\ub984\n", "a = math.pi * r * r # \uba74\uc801\n", "\n", "degree = 60.0\n", "rad = math.pi * degree / 180.0 # \uac01\ub3c4\ub97c \ub77c\ub514\uc548\uc73c\ub85c \ubcc0\ud658\n", "print math.sin(rad), math.cos(rad), math.tan(rad) #sin, cos, tan" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0.866025403784 0.5 1.73205080757\n" ] } ], "prompt_number": 111 }, { "cell_type": "code", "collapsed": false, "input": [ "import math\n", "print math.pi\n", "print math.sin(0.1)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "3.14159265359\n", "0.0998334166468\n" ] } ], "prompt_number": 113 } ], "metadata": {} } ] }