|
6 | 6 | "source": [ |
7 | 7 | "# Lesson 2\n", |
8 | 8 | "\n", |
9 | | - "Python Basic, Lesson 2, v1.0.0, 2016.12 by David.Yi\n", |
| 9 | + "Python Basic, Lesson 2, v1.0.0, 2016.12 by David.Yi \n", |
| 10 | + "Python Basic, Lesson 2, v1.0.1, 2017.02 modified by Yimeng.Zhang \n", |
10 | 11 | "\n", |
11 | 12 | "\n", |
12 | 13 | "### 上次内容要点\n", |
|
30 | 31 | "* 随机数介绍\n", |
31 | 32 | "* 举例\n", |
32 | 33 | " * 中文分词介绍\n", |
33 | | - " * 小程序联系" |
| 34 | + " * 小程序练习(猜拳游戏)" |
34 | 35 | ] |
35 | 36 | }, |
36 | 37 | { |
|
241 | 242 | "\n", |
242 | 243 | "#### 列表\n", |
243 | 244 | "\n", |
244 | | - "列表 list 是 python 内置的一种数据类型。list是一种有序的集合,可以随时添加和删除其中的元素。\n", |
| 245 | + "列表 list 是 python 内置的一种数据类型。list是一种可变、有序的集合,可以随时添加和删除其中的元素。\n", |
245 | 246 | "列表在一般的 python 程序中是最常用的数据类型。\n", |
246 | 247 | "\n", |
247 | 248 | "列表的基本概念:\n", |
|
287 | 288 | }, |
288 | 289 | { |
289 | 290 | "cell_type": "code", |
290 | | - "execution_count": 17, |
| 291 | + "execution_count": 18, |
291 | 292 | "metadata": { |
292 | 293 | "collapsed": false |
293 | 294 | }, |
|
296 | 297 | "name": "stdout", |
297 | 298 | "output_type": "stream", |
298 | 299 | "text": [ |
299 | | - "['bird']\n" |
| 300 | + "['bird']\n", |
| 301 | + "['bird', 'snake']\n", |
| 302 | + "['sheep', 'bird', 'snake']\n" |
300 | 303 | ] |
301 | 304 | } |
302 | 305 | ], |
303 | 306 | "source": [ |
304 | 307 | "# 列表初始化\n", |
305 | 308 | "a = []\n", |
306 | 309 | "\n", |
307 | | - "# 列表追加元素\n", |
| 310 | + "# 列表末尾追加元素\n", |
308 | 311 | "a.append('bird')\n", |
| 312 | + "print(a)\n", |
309 | 313 | "a.append('snake')\n", |
| 314 | + "print(a)\n", |
| 315 | + "\n", |
| 316 | + "# 列表指定位置插入元素\n", |
| 317 | + "a.insert(0,'sheep')\n", |
310 | 318 | "print(a)" |
311 | 319 | ] |
312 | 320 | }, |
|
321 | 329 | "name": "stdout", |
322 | 330 | "output_type": "stream", |
323 | 331 | "text": [ |
324 | | - "['bird']\n" |
| 332 | + "['sheep', 'snake']\n" |
325 | 333 | ] |
326 | 334 | } |
327 | 335 | ], |
328 | 336 | "source": [ |
329 | 337 | "# 列表删除指定序号的元素\n", |
330 | | - "\n", |
331 | 338 | "a.pop(1)\n", |
332 | 339 | "print(a)" |
333 | 340 | ] |
|
426 | 433 | "print(a)" |
427 | 434 | ] |
428 | 435 | }, |
| 436 | + { |
| 437 | + "cell_type": "code", |
| 438 | + "execution_count": 24, |
| 439 | + "metadata": { |
| 440 | + "collapsed": false |
| 441 | + }, |
| 442 | + "outputs": [ |
| 443 | + { |
| 444 | + "name": "stdout", |
| 445 | + "output_type": "stream", |
| 446 | + "text": [ |
| 447 | + "2\n" |
| 448 | + ] |
| 449 | + } |
| 450 | + ], |
| 451 | + "source": [ |
| 452 | + "# 统计某个元素在列表中出现次数\n", |
| 453 | + "\n", |
| 454 | + "a = ['a','b','b','c']\n", |
| 455 | + "print(a.count('b'))" |
| 456 | + ] |
| 457 | + }, |
429 | 458 | { |
430 | 459 | "cell_type": "code", |
431 | 460 | "execution_count": 24, |
|
559 | 588 | "\n", |
560 | 589 | "字典中的 key 值不可以重复(定义后也没有办法重复)\n", |
561 | 590 | "\n", |
| 591 | + "字典的几个特点:\n", |
| 592 | + "1. 查找和插入的速度极快,不会随着key的增加而变慢; \n", |
| 593 | + "2. 需要占用大量的内存,内存浪费多。 \n", |
| 594 | + "而list相反:\n", |
| 595 | + "1. 查找和插入的时间随着元素的增加而增加; \n", |
| 596 | + "2. 占用空间小,浪费内存很少。 \n", |
| 597 | + "\n", |
562 | 598 | "* 创建字典\n", |
563 | 599 | "* 访问字典中的 key-value\n", |
564 | 600 | "* 修改字典中的 key-value\n", |
|
717 | 753 | }, |
718 | 754 | { |
719 | 755 | "cell_type": "code", |
720 | | - "execution_count": 5, |
| 756 | + "execution_count": 3, |
721 | 757 | "metadata": { |
722 | 758 | "collapsed": false |
723 | 759 | }, |
|
739 | 775 | }, |
740 | 776 | { |
741 | 777 | "cell_type": "code", |
742 | | - "execution_count": 11, |
| 778 | + "execution_count": 4, |
743 | 779 | "metadata": { |
744 | 780 | "collapsed": false |
745 | 781 | }, |
|
760 | 796 | }, |
761 | 797 | { |
762 | 798 | "cell_type": "code", |
763 | | - "execution_count": 7, |
| 799 | + "execution_count": 8, |
764 | 800 | "metadata": { |
765 | 801 | "collapsed": false |
766 | 802 | }, |
|
770 | 806 | "evalue": "'tuple' object has no attribute 'append'", |
771 | 807 | "output_type": "error", |
772 | 808 | "traceback": [ |
773 | | - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
774 | | - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", |
775 | | - "\u001b[0;32m<ipython-input-7-98c1182e5bbc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Someone'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", |
776 | | - "\u001b[0;31mAttributeError\u001b[0m: 'tuple' object has no attribute 'append'" |
| 809 | + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", |
| 810 | + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", |
| 811 | + "\u001b[1;32m<ipython-input-8-e2bbceae4065>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# 元组创建后是不能修改的\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Someone'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", |
| 812 | + "\u001b[1;31mAttributeError\u001b[0m: 'tuple' object has no attribute 'append'" |
777 | 813 | ] |
778 | 814 | } |
779 | 815 | ], |
|
785 | 821 | }, |
786 | 822 | { |
787 | 823 | "cell_type": "code", |
788 | | - "execution_count": 8, |
| 824 | + "execution_count": 9, |
| 825 | + "metadata": { |
| 826 | + "collapsed": false |
| 827 | + }, |
| 828 | + "outputs": [ |
| 829 | + { |
| 830 | + "ename": "TypeError", |
| 831 | + "evalue": "'tuple' object does not support item assignment", |
| 832 | + "output_type": "error", |
| 833 | + "traceback": [ |
| 834 | + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", |
| 835 | + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", |
| 836 | + "\u001b[1;32m<ipython-input-9-a9cd518cf863>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mt\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'aaa'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", |
| 837 | + "\u001b[1;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" |
| 838 | + ] |
| 839 | + } |
| 840 | + ], |
| 841 | + "source": [ |
| 842 | + "t[1] = 'aaa'" |
| 843 | + ] |
| 844 | + }, |
| 845 | + { |
| 846 | + "cell_type": "code", |
| 847 | + "execution_count": 22, |
789 | 848 | "metadata": { |
790 | 849 | "collapsed": false |
791 | 850 | }, |
|
808 | 867 | }, |
809 | 868 | { |
810 | 869 | "cell_type": "code", |
811 | | - "execution_count": 9, |
| 870 | + "execution_count": 23, |
812 | 871 | "metadata": { |
813 | 872 | "collapsed": false |
814 | 873 | }, |
|
817 | 876 | "name": "stdout", |
818 | 877 | "output_type": "stream", |
819 | 878 | "text": [ |
| 879 | + "(['A', 'B', 'C'], 100, 200)\n", |
820 | 880 | "['A', 'B', 'C', 'D']\n", |
821 | 881 | "(['A', 'B', 'C', 'D'], 100, 200)\n" |
822 | 882 | ] |
823 | 883 | } |
824 | 884 | ], |
825 | 885 | "source": [ |
826 | | - "# 变通的实现可变元组内容\n", |
827 | | - "\n", |
| 886 | + "# 变通的实现\"可变\"元组内容\n", |
| 887 | + "print(t)\n", |
828 | 888 | "l.append('D')\n", |
829 | 889 | "print(l)\n", |
830 | | - "print(t)" |
| 890 | + "print(t) # tuple的每个元素,指向永远不变,但指向的元素本身是可变的" |
| 891 | + ] |
| 892 | + }, |
| 893 | + { |
| 894 | + "cell_type": "code", |
| 895 | + "execution_count": 20, |
| 896 | + "metadata": { |
| 897 | + "collapsed": false |
| 898 | + }, |
| 899 | + "outputs": [ |
| 900 | + { |
| 901 | + "name": "stdout", |
| 902 | + "output_type": "stream", |
| 903 | + "text": [ |
| 904 | + "<class 'int'>\n", |
| 905 | + "<class 'tuple'>\n" |
| 906 | + ] |
| 907 | + } |
| 908 | + ], |
| 909 | + "source": [ |
| 910 | + "# 创建只有1个元素的元组\n", |
| 911 | + "\n", |
| 912 | + "l = (1)\n", |
| 913 | + "print(type(l)) # l成了一个整数,因为这里的括号有歧义,被认作数学计算里的小括号\n", |
| 914 | + "\n", |
| 915 | + "# 1个元素的元组必须加逗号来消除歧义\n", |
| 916 | + "l = (1,)\n", |
| 917 | + "print(type(l))" |
831 | 918 | ] |
832 | 919 | }, |
833 | 920 | { |
|
1185 | 1272 | }, |
1186 | 1273 | { |
1187 | 1274 | "cell_type": "code", |
1188 | | - "execution_count": null, |
| 1275 | + "execution_count": 14, |
1189 | 1276 | "metadata": { |
1190 | | - "collapsed": true |
| 1277 | + "collapsed": false |
1191 | 1278 | }, |
1192 | | - "outputs": [], |
| 1279 | + "outputs": [ |
| 1280 | + { |
| 1281 | + "name": "stdout", |
| 1282 | + "output_type": "stream", |
| 1283 | + "text": [ |
| 1284 | + "0:剪刀 1:石头 2:布\n", |
| 1285 | + "你出了:2\n", |
| 1286 | + "电脑出了 剪刀\n", |
| 1287 | + "computer win\n" |
| 1288 | + ] |
| 1289 | + } |
| 1290 | + ], |
1193 | 1291 | "source": [ |
1194 | 1292 | "# 简单的剪刀石头布\n", |
1195 | 1293 | "\n", |
|
1199 | 1297 | "SECOND = 1 \n", |
1200 | 1298 | "BOTH = 2 \n", |
1201 | 1299 | "\n", |
1202 | | - "t1 = ('scissors', 'stone', 'cloth')\n", |
| 1300 | + "t1 = ('剪刀', '石头', '布')\n", |
1203 | 1301 | "t2 = ('human win', 'computer win', 'draw')\n", |
1204 | 1302 | "\n", |
1205 | 1303 | "def which_win(i1, i2):\n", |
|
1218 | 1316 | " if i1 == i2:\n", |
1219 | 1317 | " return BOTH\n", |
1220 | 1318 | "\n", |
1221 | | - "print('0:scissors 1:stone 2:cloth')\n", |
1222 | | - "human = int(input('please input:'))\n", |
| 1319 | + "print('0:剪刀 1:石头 2:布')\n", |
| 1320 | + "human = int(input('你出了:'))\n", |
1223 | 1321 | "\n", |
1224 | 1322 | "c_index = random.randint(0,2)\n", |
1225 | 1323 | "computer = t1[c_index]\n", |
1226 | 1324 | "\n", |
1227 | | - "print(c_index, computer)\n", |
| 1325 | + "print(\"电脑出了\",computer)\n", |
1228 | 1326 | "\n", |
1229 | 1327 | "print(t2[which_win(human, c_index)])\n", |
1230 | 1328 | "\n", |
1231 | | - "# 如何优化改进?" |
| 1329 | + "# 如何优化改进?\n", |
| 1330 | + "# 如何设计记录5局3胜的功能?" |
1232 | 1331 | ] |
1233 | 1332 | } |
1234 | 1333 | ], |
|
1249 | 1348 | "name": "python", |
1250 | 1349 | "nbconvert_exporter": "python", |
1251 | 1350 | "pygments_lexer": "ipython3", |
1252 | | - "version": "3.5.2" |
| 1351 | + "version": "3.5.1" |
1253 | 1352 | } |
1254 | 1353 | }, |
1255 | 1354 | "nbformat": 4, |
|
0 commit comments