Skip to content

Commit 2f15945

Browse files
committed
2017.1.10 almost finish lesson 6
1 parent ee8f757 commit 2f15945

1 file changed

Lines changed: 135 additions & 23 deletions

File tree

python_basic/python_basic_lesson_06.ipynb

Lines changed: 135 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -820,26 +820,48 @@
820820
]
821821
},
822822
{
823-
"cell_type": "code",
824-
"execution_count": null,
823+
"cell_type": "markdown",
825824
"metadata": {
826825
"collapsed": true
827826
},
828-
"outputs": [],
829827
"source": [
830828
"---\n",
831829
"\n",
832-
"错误处理"
830+
"###错误处理\n",
831+
"\n",
832+
"异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。\n",
833+
"\n"
833834
]
834835
},
835836
{
836837
"cell_type": "code",
837-
"execution_count": null,
838+
"execution_count": 3,
838839
"metadata": {
839-
"collapsed": true
840+
"collapsed": false
840841
},
841-
"outputs": [],
842+
"outputs": [
843+
{
844+
"name": "stdout",
845+
"output_type": "stream",
846+
"text": [
847+
"a:a\n"
848+
]
849+
},
850+
{
851+
"ename": "ValueError",
852+
"evalue": "invalid literal for int() with base 10: 'a'",
853+
"output_type": "error",
854+
"traceback": [
855+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
856+
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
857+
"\u001b[0;32m<ipython-input-3-ec14fac8152b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'a:'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m==\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"you cannot input 0\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m10\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
858+
"\u001b[0;31mValueError\u001b[0m: invalid literal for int() with base 10: 'a'"
859+
]
860+
}
861+
],
842862
"source": [
863+
"# 看似健壮的程序,输入字母会报错\n",
864+
"\n",
843865
"a = int(input('a:'))\n",
844866
"if a ==0:\n",
845867
" print(\"you cannot input 0\")\n",
@@ -850,12 +872,23 @@
850872
},
851873
{
852874
"cell_type": "code",
853-
"execution_count": null,
875+
"execution_count": 5,
854876
"metadata": {
855-
"collapsed": true
877+
"collapsed": false
856878
},
857-
"outputs": [],
879+
"outputs": [
880+
{
881+
"name": "stdout",
882+
"output_type": "stream",
883+
"text": [
884+
"a:0\n",
885+
"except: division by zero\n"
886+
]
887+
}
888+
],
858889
"source": [
890+
"# 防止输入0作为除数\n",
891+
"\n",
859892
"a = int(input('a:'))\n",
860893
"try:\n",
861894
" r = 10 / a\n",
@@ -866,34 +899,53 @@
866899
},
867900
{
868901
"cell_type": "code",
869-
"execution_count": null,
902+
"execution_count": 7,
870903
"metadata": {
871-
"collapsed": true
904+
"collapsed": false
872905
},
873-
"outputs": [],
906+
"outputs": [
907+
{
908+
"name": "stdout",
909+
"output_type": "stream",
910+
"text": [
911+
"a:1\n",
912+
"result: 10.0\n",
913+
"finish...\n"
914+
]
915+
}
916+
],
874917
"source": [
918+
"# try...except...finally\n",
919+
"\n",
875920
"a = int(input('a:'))\n",
876-
"dddd\n",
877921
"\n",
878922
"try:\n",
879923
" r = 10 / a\n",
880924
" print('result:', r)\n",
881925
"except ZeroDivisionError as e:\n",
882926
" print('except:', e)\n",
883927
"finally:\n",
884-
" print('finish...')\n",
885-
" \n",
886-
"fffff"
928+
" print('finish...')"
887929
]
888930
},
889931
{
890932
"cell_type": "code",
891-
"execution_count": null,
933+
"execution_count": 8,
892934
"metadata": {
893-
"collapsed": true
935+
"collapsed": false
894936
},
895-
"outputs": [],
937+
"outputs": [
938+
{
939+
"name": "stdout",
940+
"output_type": "stream",
941+
"text": [
942+
"except name 'c' is not defined\n"
943+
]
944+
}
945+
],
896946
"source": [
947+
"# 防止错误举例\n",
948+
"\n",
897949
"a = 100\n",
898950
"try:\n",
899951
" b = a + c \n",
@@ -904,12 +956,23 @@
904956
},
905957
{
906958
"cell_type": "code",
907-
"execution_count": null,
959+
"execution_count": 9,
908960
"metadata": {
909-
"collapsed": true
961+
"collapsed": false
910962
},
911-
"outputs": [],
963+
"outputs": [
964+
{
965+
"name": "stdout",
966+
"output_type": "stream",
967+
"text": [
968+
"except: name 'c' is not defined\n",
969+
"100\n"
970+
]
971+
}
972+
],
912973
"source": [
974+
"# 防止错误举例,略完善的做法\n",
975+
"\n",
913976
"a = 100\n",
914977
"\n",
915978
"try:\n",
@@ -919,6 +982,55 @@
919982
" b = a + 0\n",
920983
"print(b)"
921984
]
985+
},
986+
{
987+
"cell_type": "code",
988+
"execution_count": 12,
989+
"metadata": {
990+
"collapsed": false
991+
},
992+
"outputs": [
993+
{
994+
"name": "stdout",
995+
"output_type": "stream",
996+
"text": [
997+
"a:a\n",
998+
"except: invalid literal for int() with base 10: 'a'\n",
999+
"result: 10.0\n",
1000+
"finish...\n"
1001+
]
1002+
}
1003+
],
1004+
"source": [
1005+
"# 对 int 进行判断\n",
1006+
"\n",
1007+
"a = input('a:')\n",
1008+
"\n",
1009+
"# 对输入值转换还有更完善的方法\n",
1010+
"try:\n",
1011+
" a = int(a)\n",
1012+
"except ValueError as e:\n",
1013+
" print('except:', e) \n",
1014+
"finally:\n",
1015+
" a = 1\n",
1016+
"\n",
1017+
"try:\n",
1018+
" r = 10 / a\n",
1019+
" print('result:', r)\n",
1020+
"except ZeroDivisionError as e:\n",
1021+
" print('except:', e)\n",
1022+
"finally:\n",
1023+
" print('finish...')"
1024+
]
1025+
},
1026+
{
1027+
"cell_type": "code",
1028+
"execution_count": null,
1029+
"metadata": {
1030+
"collapsed": true
1031+
},
1032+
"outputs": [],
1033+
"source": []
9221034
}
9231035
],
9241036
"metadata": {

0 commit comments

Comments
 (0)