{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "åè¨ï¼åºæ¬ä¸éæ¯codeacademyçå¸ç¿çè¨ï¼\n", "https://www.codecademy.com/\n", "\n", "åå§çæ¬æ¯2.7çï¼ç¾æ¹çº3.x çï¼ä¸»è¦å·®ç°è«åèï¼\n", "https://docs.python.org/3/whatsnew/3.0.html\n", "\n", "[Python/ç¬¬ä¸æ¬¡ç¨å°±ä¸æ](http://wiki.python.org.tw/Python/%E7%AC%AC%E4%B8%80%E6%AC%A1%E7%94%A8%E5%B0%B1%E4%B8%8A%E6%89%8B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Python Syntax" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "print æä»¤ï¼print å串; print è®æ¸; print å串, è®æ¸, etc\n", "注解ï¼python 3.5çæ¹çºå½æ¸ print()" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Welcome to Python!\n" ] } ], "source": [ "print(\"Welcome to Python!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "è®æ¸è³¦å¼ï¼è®æ¸ = å¼\n", "\n", "è®æ¸åæ ï¼æ´æ¸ï¼Integer), æµ®é»æ¸(float), boolean(True/False)\n", "\n", "ç¨å¼ä¸è®æ¸å¯ä»¥é¨ææ´æ¹å ¶å¼, å¨Pythonä¸, çè³å¯ä»¥æ´æ¹è®æ¸åæ " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "my_int = 10 my_float = 0.123 my_bool = True\n", "my_var = 10\n", "my_var = False\n" ] } ], "source": [ "my_int = 10\n", "my_float = 0.123\n", "my_bool = True\n", "print(\"my_int =\", my_int, \"my_float = \",my_float, \"my_bool =\",my_bool)\n", "my_var = 10\n", "print(\"my_var = \", my_var)\n", "my_var = False\n", "print(\"my_var = \", my_var)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "縮æï¼Python䏿¯ä»¥ç¸®æä¾åå層ç´, ä¾å¦å½æ¸å®ç¾©, è¿´åçç\n", "\n", "åºä¸æ¯ä¸å縮æçä¾å, def æ¯å¨å®ç¾©ä¸å彿¸" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "12\n" ] } ], "source": [ "def spam():\n", " eggs = 12\n", " return eggs\n", " \n", "print(spam())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "註解ï¼ä¸è¬å®è¡è¨»è§£ææ¯å¨è¡å°¾è¨»è§£å¯ä»¥ä½¿ç¨#, è¥è¦å¤è¡è¨»è§£å以\"\"\"éé ,\"\"\"çµå°¾" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "æ¸å¸ï¼å æ¸ä¹é¤ååéç®ç¬¦èæ¯ä¸è¬å¸¸ç¨ç¬¦è, 次æ¹åæ¹çº\\** è䏿¯^, åé¤åæ¯ %" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1+2+3+4*5 = 26\n", "2^3 = 8\n", "3 %2 = 1\n" ] } ], "source": [ "print(\"1+2+3+4*5 = \", 1+2+3+4*5 )\n", "print(\"2^3 = \", 2**3)\n", "print(\"3 %2 =\", 3%2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# STRINGS AND CONSOLE OUTPUT" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "å串çå®ç¾©æ¹å¼æ¯ä»¥éå¼èææ¯å®å¼è夾起ä¾" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Graham\n", "John\n" ] } ], "source": [ "caesar = \"Graham\"\n", "praline = 'John'\n", "print(caesar)\n", "print(praline)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Escaping charactersï¼æäºåå æç¹æ®ç¨é, æä»¥åºç¾å¨åä¸²ä¸æå¿ é å å ¥åæç·\\" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This isn't flying, this is falling with style!\n", "\" is another special character.\n" ] } ], "source": [ "print('This isn\\'t flying, this is falling with style!')\n", "print(\"\\\" is another special character.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "å串å¯ä»¥è¦çºä¸åarray, æä»¥å¯ä»¥ä½¿ç¨indexæåºå串ä¸ç¹å®å¹¾ååå . 注æindexç±0éå§" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The whole string is STRINGS and the first character is S . The last characters are NGS\n" ] } ], "source": [ "my_str = \"STRINGS\"\n", "print(\"The whole string is \",my_str,\" and the first character is \", my_str[0], \". The last characters are \",my_str[-3:])" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "èå串ç¸éçå¹¾å彿¸ï¼\n", "\n", "len(mystr)ï¼å³åå串mystrçé·åº¦\n", "\n", "mystr.lower()ï¼å°å串mystr齿¹çºå°å¯«\n", "\n", "mystr.upper()ï¼å°å串mystr齿¹çºå¤§å¯«\n", "\n", "str(mynum)ï¼å°mynumï¼æ¸å¼ææ¯æ¸å¼è®æ¸ï¼è½çºå串" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The length of my_str is 11\n", "The effect of upper on my_str is MATHEMATICS\n", "The effect of lower on my_str is mathematics\n", "The third character of the 12345 is 3\n" ] } ], "source": [ "my_str = \"Mathematics\"\n", "print(\"The length of my_str is\", len(my_str))\n", "print(\"The effect of upper on my_str is\", my_str.upper())\n", "print(\"The effect of lower on my_str is\", my_str.lower())\n", "print(\"The third character of the 12345 is\", str(12345)[2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "å串å¯ä»¥ç¨+éåéç®é£æ¥èµ·ä¾, 注æé£èµ·ä¾å¾çå串å¨åå çå䏲鿲æç©ºç½" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Spam and eggs\n", "Spamand eggs\n" ] } ], "source": [ "print( \"Spam \"+\"and \"+\"eggs\")\n", "str1 = \"Spam\"\n", "str2 = \"and\"\n", "str3 = \" eggs\"\n", "print(str1+str2+str3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### æ ¼å¼åå串/輸åº" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "æåç¶å¸¸æç¢°å°åé¡åçå¥åï¼æ´æé¨ä»½åè©ï¼ä¸ååºç¾çæ å½¢, å¯ä»¥å¨å串ä¸ä»¥%s 表示ä¹å¾è¦å代çä½ç½®, å串å¾%å¾çå §å®¹è¡¨ç¤ºè¦å代%sçå §å®¹" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Let's not go to Camelot. 'Tis a silly place.\n", "Let's not go to Camelot. 'Tis a silly place.\n" ] } ], "source": [ "string_1 = \"Camelot\"\n", "string_2 = \"place\"\n", "my_str = \"Let's not go to %s. 'Tis a silly %s.\"\n", "print(\"Let's not go to %s. 'Tis a silly %s.\" % (string_1, string_2))\n", "print(my_str % (string_1, string_2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### è¼¸å ¥input" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "my_str=input(\"Display Message\") 顯示\"Display Message\"å¾, è¦æ±è¼¸å ¥è³è¨, å°çµæè³¦äºmy_str. 注æä¸æè¼¸å ¥é¨ä»½æé»è¤é, çå°æåæé»åºç¤å¾åé²è¡, (å·²æ¹çº 3.xçæ¬ï¼2.7ççºraw_input) \n", "\n", "å¦å¤è«æ³¨æåºä¸çä¾å, ç±æ¼å¤ªé·æä»¥ä½¿ç¨\\æ·è¡" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "What is your name?mhchen\n", "What is your quest?holy shit\n", "What is your favorite color?blue\n", "Ah, so your name is mhchen, your quest is holy shit, and your favorite color is blue.\n" ] } ], "source": [ "name = input(\"What is your name?\")\n", "quest = input(\"What is your quest?\")\n", "color = input(\"What is your favorite color?\")\n", "\n", "print(\"Ah, so your name is %s, your quest is %s, \" \\\n", "\"and your favorite color is %s.\" %(name, quest, color))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Date and Time" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "妿éè¦ä½¿ç¨datetimeåè½æ, éå¼å ¥datetime模çµï¼from datetime import datetime\n", "\n", "datetime.now()ï¼å³åçæ¯ç¾å¨çæéæ¥æ, 妿éè¦å ¶ä¸çå¹´ææ¥æåçè³è¨å¯ä»¥ä½¿ç¨ .year, .month, .day, .hour, .minute, .second" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2016-12-08 01:52:34.702193\n", "2016\n", "12\n", "8\n", "12/8/2016 1:52:34\n" ] } ], "source": [ "from datetime import datetime\n", "now = datetime.now()\n", "print(now)\n", "print( now.year)\n", "print( now.month)\n", "print( datetime.now().day)\n", "print( '%s/%s/%s %s:%s:%s' % (now.month, now.day, now.year,now.hour, now.minute, now.second))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Conditionals & Control Flow" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "åºä¸çä¾åä¸å®ä¸äºä¸å彿¸clinic, 注æå½æ¸çµæçä½ç½®, åæå¨ä¸»ç¨å¼ä¸å¦ä½å¼å«clinic, éæéè¿´å¼å«å½æ¸çé¨ä»½.\n", "å¨éåå°ç¯ä¸ï¼é黿¯å¨control flow, ä¹å°±æ¯if-elif-elseçé¨ä»½, 注æç¸®æä»¥ååèçä½ç½®" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "You've just entered the clinic!\n", "Do you take the door on the left or the right?\n", "Type left or right and hit 'Enter'.R\n", "Of course this is the Argument Room, I've told you that already!\n" ] } ], "source": [ "def clinic():\n", " print( \"You've just entered the clinic!\")\n", " print( \"Do you take the door on the left or the right?\")\n", " answer = input(\"Type left or right and hit 'Enter'.\").lower()\n", " if answer == \"left\" or answer == \"l\":\n", " print (\"This is the Verbal Abuse Room, you heap of parrot droppings!\")\n", " elif answer == \"right\" or answer == \"r\":\n", " print (\"Of course this is the Argument Room, I've told you that already!\")\n", " else:\n", " print (\"You didn't pick left or right! Try again.\")\n", " clinic()\n", "\n", "clinic()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "åºä¸æ¯å 忝è¼çéç®\n", "\n", "1.Equal to (==)\n", "\n", "2.Not equal to (!=)\n", "\n", "3.Less than (<)\n", " \n", "4.Less than or equal to (<=)\n", "\n", "5.Greater than (>)\n", "\n", "6.Greater than or equal to (>=)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "éç®åå å¾é åºè«åèï¼\n", "http://www.swaroopch.com/notes/python/#op_exp ,\n", "使¯å»ºè°é©ç¶ä½¿ç¨æ¬èè®ç¨å¼æ¹ä¾¿é±è®åæé¿å é¯èª¤" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Control Flow" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "if-(elif)-elseçæ¶æ§å¯ä»¥åèåºä¸éåä¾å" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-1\n", "0\n", "1\n" ] } ], "source": [ "def greater_less_equal_5(answer):\n", " if answer>5:\n", " return 1\n", " elif answer<5: \n", " return -1\n", " else:\n", " return 0\n", " \n", "print (greater_less_equal_5(4))\n", "print(greater_less_equal_5(5))\n", "print(greater_less_equal_5(6))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### PygLatin" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "Pig Latinæ¯åç°¡å®çæåéæ²æåéæ², åºæ¬ä¸æ¯å°ä¸ååçåé¦ç§»å°åå°¾å¾åå ä¸\"ay\". ç¨å¼éè¦èæ ®è¼¸å ¥çåæ¯å¦æè¼¸å ¥ï¼æª¢æ¥å串é·åº¦lenï¼æ¯å¦æ¯è±æ(isalpha). å¨å°èªé¦ç§»å°åå°¾åæå ä¸\"ay\"çéç¨ä¸, æ¯ç°¡å®å串æä½, éæ³¨æçæ¯å串第ä¸ååå çç·¨èæ¯0, åæè¥å¸æè¡¨ç¤ºå¾ç¬¬äºååå å°åå°¾çæå®æ¹å¼é¤äº[1:len(new_word)]å¤, ä¹å¯ä»¥ç¨[1:]. åºä¸æ¯ä¸åæé»è®åçä¾å, å°åä¸²è¼¸å ¥åæä½éç¨å®ç¾©çºä¸å½æ¸pyglatin, åæä½¿ç¨éè¿´å¼å«çæå·§åæä½¿ç¨éè¿´å¼å«çæå·§, 卿²æè¼¸å ¥æ£ç¢ºæåæè¦æ±éæ°è¼¸å ¥" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Enter a word:abcd\n", "abcd\n", "bcdaay\n" ] } ], "source": [ "pyg = 'ay'\n", "def pyglatin():\n", " original = input('Enter a word:') \n", " if len(original) > 0 and original.isalpha():\n", " print (original)\n", " word = original.lower()\n", " first = word[0]\n", " new_word = word+first+pyg\n", " new_word = new_word[1:]\n", " print (new_word)\n", " else:\n", " print ('empty')\n", " pyglatin()\n", "pyglatin()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# FUNCTIONS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "åºä¸ä¾åæ¯å®ç¾©ä¸åè¨ç®å¹³æ¹ç彿¸square, å®ç¾©çæ¹å¼æ¯ä½¿ç¨def éé , è¥æè¼¸å ¥åæ¸, å卿¬å¼§ä¸æ¾å ¥åæ¸, è¥æ²æè¼¸å ¥åæ¸åæ¬å¼§å §æ¯ç©ºç. 以縮æåå¥å½æ¸å主ç¨å¼, 彿¸è¥æåå³å¼æ å°åå³å¼å¯«å¨returnå¾." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10 squared is 100.\n" ] }, { "data": { "text/plain": [ "100" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def square(n):\n", " \"\"\"Returns the square of a number.\"\"\"\n", " squared = n**2\n", " print (\"%d squared is %d.\" % (n, squared))\n", " return squared\n", " \n", "# Call the square function on line 9! Make sure to\n", "# include the number 10 between the parentheses.\n", "square(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Importing a module" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "å¨python䏿¬²ä½¿ç¨ç¹æ®å½å¼åº«æéimportç¹å®æ¨¡çµ, 以math moduleä¾èªª, 欲使ç¨å ¶ä¸çsqrt彿¸æ, æå¹¾ç¨®æ¹æ³\n", "1. import math \n", "2. from math import sqrt\n", "3. from math import *\n", "\n", "åºä¸æ¯ç¬¬ä¸ç¨®æ¹æ³, ä½¿ç¨æé以math.sqrt()å¼å«. å¦å¤éç¨®æ¹æ³æå°math模çµå §å ¶ä»ç©ä»¶ä¹ä¸èµ·å¼å ¥, éå¯ä»¥ç¨dir()彿¸çå°math裡ç彿¸ " ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5.0\n", "['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']\n" ] } ], "source": [ "import math\n", "print (math.sqrt(25))\n", "print (dir(math))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "第äºç¨®æ¹æ³å¯ä»¥ç´æ¥ä»¥sqrt()å¼å«" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5.0\n" ] } ], "source": [ "from math import sqrt\n", "print (sqrt(25))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "第ä¸ç¨®æ¹å¼å樣ä¹å¯ä»¥ç´æ¥ä»¥sqrt()å¼å«, 使¯å第äºç¨®ä¸ä¸æ¨£çå°æ¹å¨æ¼åä¸ç¨®åªæå¼å ¥sqrt, 使¯éä¸ç¨®æ¹æ³å°math模çµå ¨é¨å¼å ¥å ¨é¨å¼å ¥, ç¨å¼æ°å¯«éç¨ä¸å¾å®¹ææ··æ·." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5.0\n" ] } ], "source": [ "from math import *\n", "print (sqrt(25))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LISTS & DICTIONARIES" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "pythonä¸çdictionaryä¸åéå¸¸çæ¶æ§ï¼å¯ä»¥è®ä½ æ¹ä¾¿çæ¥è©¢è³æï¼åºä¸æ¯ä¸åç°¡å®çdictionary" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n" ] } ], "source": [ "d = {'key1' : 1, 'key2' : 2, 'key3' : 3}\n", "print (d['key2'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "æ¯æ¹èªªï¼å¦ææ³è¦ç¥éd裡é¢çkey3å°æçå¼çºä½ï¼å¯ä»¥ä½¿ç¨d['key3']æ¥è©¢" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x = 5 , square_list = [25]\n", "x = 3 , square_list = [25, 9]\n", "x = 1 , square_list = [25, 9, 1]\n", "x = 2 , square_list = [25, 9, 1, 4]\n", "x = 4 , square_list = [25, 9, 1, 4, 16]\n", "[25, 9, 1, 4, 16]\n", "[1, 4, 9, 16, 25]\n" ] } ], "source": [ "start_list = [5, 3, 1, 2, 4]\n", "square_list = []\n", "\n", "# Your code here!\n", "\n", "for x in start_list:\n", " square_list.append(x**2)\n", " print (\"x = \",x,\", square_list = \",square_list)\n", "print (square_list)\n", "square_list.sort()\n", "print (square_list)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "number = 1 ; 2*number = 2\n", "number = 9 ; 2*number = 18\n", "number = 3 ; 2*number = 6\n", "number = 8 ; 2*number = 16\n", "number = 5 ; 2*number = 10\n", "number = 7 ; 2*number = 14\n" ] } ], "source": [ "my_list = [1,9,3,8,5,7]\n", "\n", "for number in my_list:\n", " # Your code here\n", " print (\"number =\",number,\"; 2*number =\",2*number)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "åºä¸æ¯ä¸åç°¡å®çè¿´åï¼item æä¾åºç±inä¹å¾çliståå¼ï¼åæå·è¡è¿´åå §é¨çç¨å¼ï¼å¨éåä¾å䏿¯éä¸ååºitem" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "3\n", "21\n" ] } ], "source": [ "for item in [1, 3, 21]: \n", " print (item)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pear\n", "price: 3\n", "stock: 15\n", "orange\n", "price: 1.5\n", "stock: 32\n", "apple\n", "price: 2\n", "stock: 0\n", "banana\n", "price: 4\n", "stock: 6\n" ] } ], "source": [ "prices = {\"banana\": 4,\"apple\": 2,\"orange\": 1.5,\"pear\": 3}\n", "\n", "stock = {\"banana\": 6,\"apple\": 0,\"orange\":32,\"pear\": 15}\n", "\n", "for item in prices:\n", " print (item)\n", " print (\"price: %s\" % prices[item])\n", " print (\"stock: %s\" % stock[item])" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n" ] } ], "source": [ "def fizz_count(x):\n", " count = 0\n", " for item in x:\n", " if item == \"fizz\":\n", " count = count +1\n", " return count\n", " \n", "\n", "print (fizz_count([\"fizz\",\"cat\",\"fizz\"]))" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "banana\n", "price: 4\n", "stock: 6\n", "orange\n", "price: 1.5\n", "stock: 32\n", "apple\n", "price: 2\n", "stock: 0\n", "7.5\n" ] } ], "source": [ "shopping_list = [\"banana\", \"orange\", \"apple\"]\n", "\n", "stock = {\n", " \"banana\": 6,\n", " \"apple\": 0,\n", " \"orange\": 32,\n", " \"pear\": 15\n", "}\n", " \n", "prices = {\n", " \"banana\": 4,\n", " \"apple\": 2,\n", " \"orange\": 1.5,\n", " \"pear\": 3\n", "}\n", "\n", "# Write your code below!\n", "def compute_bill(food):\n", " total = 0\n", " for item in food:\n", " print (item)\n", " print (\"price: %s\" % prices[item])\n", " print (\"stock: %s\" % stock[item])\n", " total = total + prices[item]\n", " return total\n", "print (compute_bill(shopping_list))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Student Becomes the Teacher" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "åºä¸æ¯è¨ç®å¸çæç¸¾çä¸åç¨å¼ï¼é¦å æ¯å¸ççç´éãæ¯åå¸ççæç¸¾ç´éæ¯ä»¥dictionaryå²åï¼å ¶ä¸å å«äº\"name\"ï¼\"homework\"ï¼\"quizzes\"ï¼\"tests\"ãæ³¨ædictionaryä¸çå¼å¯ä»¥æ¯listã" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [], "source": [ "lloyd = {\n", " \"name\": \"Lloyd\",\n", " \"homework\": [90.0, 97.0, 75.0, 92.0],\n", " \"quizzes\": [88.0, 40.0, 94.0],\n", " \"tests\": [75.0, 90.0]\n", "}\n", "alice = {\n", " \"name\": \"Alice\",\n", " \"homework\": [100.0, 92.0, 98.0, 100.0],\n", " \"quizzes\": [82.0, 83.0, 91.0],\n", " \"tests\": [89.0, 97.0]\n", "}\n", "tyler = {\n", " \"name\": \"Tyler\",\n", " \"homework\": [0.0, 87.0, 75.0, 22.0],\n", " \"quizzes\": [0.0, 75.0, 78.0],\n", " \"tests\": [100.0, 100.0]\n", "}" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "æ¥èæåå®ç¾©äºå¹¾å彿¸ï¼é¦å æ¯è¨ç®å¹³å忏ç彿¸averageï¼ä»ææå³é²ä¾çä¸çµ(list)æ¸å(numbers)å 總(使ç¨å §å»ºçsum彿¸)ï¼åå°totalé¤ä»¥è³æåæ¸(len)è¨ç®å¹³åãæ³¨æçºäºé¿å è³æåæ åºåé¡ï¼æå使ç¨float彿¸å°totalè½çºæµ®é»æ¸" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Add your function below!\n", "def average(numbers):\n", " total = sum(numbers)\n", " #print total\n", " #print type(total)\n", " total = float(total)\n", " return total/len(numbers)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "第äºå彿¸æ¯å°å³é²ä¾çå¸çç´é(dictionary)ï¼åå¥è¨ç®homeworkã quizzesã testsçå¹³åï¼åè¨ç®å æ¬åä½çºå¸ççå¹³å忏" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_average(student):\n", " homework = average(student[\"homework\"])\n", " quizzes = average(student[\"quizzes\"])\n", " tests = average(student[\"tests\"])\n", "\n", " return homework*0.1+quizzes*0.3+tests*0.6\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "第ä¸å彿¸æ¯å¤æ·æç¸¾(score)æå°æçç第(letter grade)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_letter_grade(score):\n", " if score >= 90: \n", " return \"A\"\n", " elif score >= 80:\n", " return \"B\"\n", " elif score >= 70:\n", " return \"C\"\n", " elif score >= 60:\n", " return \"D\"\n", " else: \n", " return \"F\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "æå¾ä¸å彿¸æ¯è¨ç®æ´ç(students-list)çå¹³ååæ¸ï¼æåå 建ç«ä¸å空çresults listï¼ä»¥æ¹å¼ï¼ä¾åºè¨ç®æ¯åå¸ççå¹³å忏ï¼åå å ¥resultsä¸ï¼æå¾åè¨ç®å¹³åã" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_class_average(students):\n", " results = []\n", " for student in students:\n", " results.append(get_average(student))\n", " return average(results)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "æåºä¸çé¨ä»½åæ¯å 建ç«ä¸åçç´çlistï¼ä½¿ç¨åé¢å®ç¾©ç彿¸è¨ç®å¹³åæç¸¾" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "83.86666666666666\n", "B\n" ] } ], "source": [ " \n", "students = [lloyd, alice, tyler]\n", "class_avg = get_class_average(students)\n", "print (class_avg)\n", "print (get_letter_grade(class_avg))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }