Python采用的是基于值的内存管理方式,如果在同一个程序中或者交互模式下同一个语句中为不同变量赋值相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。另外,Python程序中的变量不存储值,而是存储值的引用,列表、元组、字典、集合等可迭代对象中包含的也是元素的引用。在调用函数时,也是把实参的引用传递给形参。
在Python中/表示普通除法(也叫真除法),其结果是实数,而//表示整除,得到的结果是整数,并且自动向下取整。
常用的有三种方式,分别为
import 模块名 [as 别名]
from 模块名 import 对象名[ as 别名]
from math import *
每个Python脚本在运行时都有一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为'__main__'。使用import语句导入一个Python程序文件时,会执行其中的代码,如果一段代码不想在导入模块时执行,可以在这段代码前面加一个条件判断“if __name__ == '__main__'”。
Python总是会保证列表中的相邻元素的引用之间没有空隙,在增加和删除元素时会自动进行内存空间的收缩和扩张。在列表中间位置插入元素时,该位置后面的所有元素会向后移动,下标会发生改变,并且元素的移动会带来额外的开销;同理,在列表中间位置删除元素时,后面的元素向前移动,下标会发生改变,并且元素的移动会带来额外的开销。
逻辑运算符“or”具有惰性求值特点,只计算必须计算的值。计算使用“or”连接的表达式值时,从左向右依次计算每个子表达式,直到遇到某个子表达式的值等价于True时就停止,后面的所有子表达式都不再计算,并且把最后计算的子表达式的值作为整个表达式的最终值。
假设有表达式“子表达式1 or 子表达式2”,如果子表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不会再计算表达式2的值。
在Python中,以下划线开头的变量名有特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员:
_xxx:这样的对象叫做保护变量,不能用'from module import *'导入,只有类对象和子类对象能访问这些变量;
__xxx__:系统定义的特殊成员名字;
__xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。Python中没有纯粹的C++意义上的私有成员。
(1)文本文件
文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符' '结尾。常规字符串是指记事本或其他文本编辑器能正常显示、编辑并且人类能够直接阅读和理解的字符串,如英文字母、汉字、数字字符串。文本文件可以使用字处理软件如gedit、记事本进行编辑。
(2)二进制文件
二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通字处理软件直接进行编辑,通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。常见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数据库文件、各类office文档等都属于二进制文件。
比较常用的形式有:
1)标准异常处理结构
try:
try块 #被监控的语句,可能会引发异常
except Exception[as reason]:
except块 #处理异常的代码
如果需要捕获所有异常时,可以使用BaseException,代码格式如下:
try:
……
except BaseException as e:
except块 #处理所有错误
上面的结构可以捕获所有异常,尽管这样做很安全,但是一般并不建议这样做。对于异常处理结构,一般的建议是尽量显式捕捉可能会出现的异常并且有针对性地编写代码进行处理,因为在实际应用开发中,很难使用同一段代码去处理所有类型的异常。当然,为了避免遗漏没有得到处理的异常干扰程序的正常执行,在捕捉了所有可能想到的异常之后,您也可以使用异常处理结构的最后一个except来捕捉BaseException。
2)另外一种常用的异常处理结构是try...except...else...语句。
3)在实际开发中,同一段代码可能会抛出多个异常,需要针对不同的异常类型进行相应的处理。为了支持多个异常的捕捉和处理,Python提供了带有多个except的异常处理结构,这类似于多分支选择结构,一旦某个except捕获了异常,则后面剩余的except子句将不会再执行。语法为:
try:
try块 #被监控的语句
except Exception1:
except块1 #处理异常1的语句
except Exception2:
except块2 #处理异常2的语句
4)将要捕获的异常写在一个元组中,可以使用一个except语句捕获多个异常,并且共用同一段异常处理代码,当然,除非确定要捕获的多个异常可以使用同一段代码来处理,并不建议这样做。
5)最后一种常用的异常处理结构是try...except...finally...结构。在该结构中,finally子句中的内存无论是否发生异常都会执行,常用来做一些清理工作以释放try子句中申请的资源。语法如下:
try:
……
finally:
...... #无论如何都会执行的代码
到此这篇python的函数可以没有返回值(python函数没有return,返回什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/pythonbc/61550.html