Python3.4学习笔记之类型判断,异常处理,终止程序操作小结

小石头
小石头
发布时间:2026-10-11| 1人浏览过
原创

本文总结了Python3.4中类型判断、异常处理及程序终止操作的常用方法。通过具体代码示例,详细解析了`os._exit()`与`sys.exit()`的区别、`try-except`异常捕获机制,以及利用`traceback`和`sys`模块进行错误追踪的技巧。

Python程序终止方式

在Python中,退出程序主要有两种方式:`os._exit()`和`sys.exit()`。理解它们的区别对于编写健壮的程序至关重要。

os._exit()与sys.exit()的区别

  • os._exit():直接退出Python程序,调用C语言的`_exit()`函数。它不会执行清理操作(如`finally`块),通常用于线程中退出。
  • sys.exit():引发`SystemExit`异常。如果该异常未被捕获,程序将正常退出;如果被捕获,可以执行额外的清理工作。它通常用于主线程中退出。

参数方面,`sys.exit(0)`表示正常退出,而`sys.exit(1-127)`表示不正常退出。非0退出参数可以抛出异常事件供捕获。

import os
os._exit(0)

类型判断

在Python中,可以使用`type()`函数或`isinstance()`函数进行类型判断。`type()`返回对象的类型,而`isinstance()`返回布尔值,表示对象是否属于指定的类型。

import random
import sys
import os
secret = random.randint(1,10)
temp = input("请输入一个数字\n")
#print(type(temp))#<class 'str'> 类型判断
#print(isinstance(temp,int))#False

异常处理

Python使用`try-except-finally`结构进行异常处理,没有`catch`函数。以下介绍几种常见的异常处理方法。

捕获所有异常

使用`except:`可以捕获所有异常。在示例中,如果用户输入的不是数字,程序将打印错误信息并终止。

try:
  guess = int(temp)
except:
  print("输入的不是数字,程序终止了")#注释内容不能在逻辑代码块里独立一行进行
  os._exit(0)#os._exit() 用于在线程中退出,sys.exit()用于在主线程中退出,exit(0)#终止退出程序,会关闭窗口

使用traceback模块查看异常

引入`traceback`模块,可以使用`traceback.print_exc()`打印异常信息。

#引入python中的traceback模块,跟踪错误
import traceback
try:
  a=b
  b=c
except:
  traceback.print_exc()

使用sys模块回溯最后异常

引入`sys`模块,可以使用`sys.exc_info()`获取异常信息。

#引入sys模块
import sys
try:
  a=b
  b=c
except:
  info=sys.exc_info()
  print info[0],":",info[1]

将异常信息保存至文本文件

可以将`traceback.print_exc()`的信息保存至文本文件,方便后续分析。

import traceback
try:
  a=b
  b=c
except:
  f=open("c:log.txt",'a')
  traceback.print_exc(file=f)
  f.flush()
  f.close()

断言assert

断言`assert`关键字用于在程序中植入检查点。如果条件为假,程序将自动崩溃并抛出`AssertionError`异常。

import traceback
#断言assert关键字,程序自动崩溃并抛出AssertionError异常,用在重新中植入检查点
assert 4 > 3 #条件正确自动忽略跳过
print("pass...")
try:
assert 3 > 4
except (AssertionError):
traceback.print_exc()
print("after assert...")

完整示例代码

以下是一个完整的示例代码,展示了类型判断、异常处理及程序终止的综合应用。

#idle中按F5可以运行代码
#引入外部模块 import xxx
#random模块,randint(开始数,结束数) 产生整数随机数
import random
import sys
import os
secret = random.randint(1,10)
temp = input("请输入一个数字\n")
#print(type(temp))#<class 'str'> 类型判断
#print(isinstance(temp,int))#False
#异常处理 try except finally 没有catch函数
try:
  guess = int(temp)
except:
  print("输入的不是数字,程序终止了")#注释内容不能在逻辑代码块里独立一行进行
  os._exit(0)#os._exit() 用于在线程中退出,sys.exit()用于在主线程中退出,exit(0)#终止退出程序,会关闭窗口
count = 0;
while guess != secret: #猜错的时候才进入循环条件
  if count == 0 and guess > secret:
    print("猜大了")
  if count == 0 and guess < secret:
    print("猜小了")
  temp = input("请重新输入数字\n") #需要在判断之前让用户输入,否则猜对了就直接退出了
  try:
    guess = int(temp)
  except (ZeroDivisionError,Exception):
    print("输入的不是数字,请重新输入")
    print(ZeroDivisionError,":",Exception)
  count += 1 #不能使用count++这种方式
  if count > 2:
    print("猜错4次自动退出了")
    break #退出循环
  if guess == secret:
    print("恭喜,你猜对了")
    print("猜对了也就那样")
  else:
    if guess > secret:
      print("猜大了")
    else:
      print("猜小了")
print("游戏结束")

以上就是Python3.4学习笔记之类型判断,异常处理,终止程序操作的详细内容,更多关于Python3.4的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。