实验目标如图所示,程序也很简单
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()
|
附件:http://down.51cto.com/data/2367213