实验目标如图所示,程序也很简单
1 2 3 4 5 6 7 8 9 | while 1 : try : AAA = int ( input ( "请输入一个整数:" )) print ( "Good!" ) break except ValueError as reason: print ( "出错了,您出错的原因是:" + str (reason)) print ( "请重新输入:" ) continue |
这里要注意以下几点:
1)try语句和if语句的区别,try语句后接“要发生的事情”,而if语句是“先有语句,然后if/else”。
2)对于python 3.x的同好,while 1和while True的速度是一样的,但是在python 2.x里,while True是相比较要慢一丢丢,因为python 2.x里True不是关键词,是可以赋值的,这样程序每次启动都会先检查True/False是不是一个变量,这样会耽误那么半秒的时间。So,为了多省那么几秒钟,直接就while 1吧。
===================================分割线=========================================
这里有一个重要补充!!
try语句是一个try搭配一个动作,然后except一下,然后try搭配另一个动作,再except一下。如果一个try搭配好几十个动作,但是这好几十个动作里有一个出了错,导致系统卡死,单纯的依靠finally是没法补救的,因为之前的动作都已经打开了。
1 2 3 4 5 6 7 8 | for instance: try : f = open ( "E:/Python/AAA/12345.txt" ) do something except (对应的Error): do something finally : f.close() |
这个程序就是很标准的案例,虽然很常见但是他是错误的。因为一个try里有两个动作:“打开文件”和“do something”,若是do something出了问题,可以f.close()保存,但是若是在"打开文件"出了问题,如何F.close()?因为文件压根就没打开!
所以正确的代码如下:
1 2 3 4 5 6 7 8 9 10 11 | try : f = open ( 'xxx' ) except : print 'fail to open' exit( - 1 ) try : do something except : do something finally : f.close() |