字符串操作
反转字符串
直接使用切片反转
1 2 3 4 5 6 7
| letters = "ABCDEFG"
letters = letters[::-1]
print(letters) >>>GFEDCBA
|
错误处理
try 语句
1 2 3 4 5 6 7 8 9 10
| try: except <错误1>: except <错误2> as <错误参数>: else: finally:
|
raise
除了错误处理, 我们还可以手动抛出错误
1 2 3 4 5 6 7 8 9
| import httpx
async def get_test(): try: with AsyncClient() as client: client.get("http://www.baidu.com") except httpx.TimeoutException as e: print("请求超时") raise e
|
除此之外, 还可以自定义异常
1 2 3 4 5 6 7
| class MyException(Exception): def __init__(self, error_info): self.error_info = error_info
def __str__(self): return self.error_info
|
1 2 3 4 5
| try: raise CustomException("自定义异常名称") except CustomException as e: print(e)
|
with 语句
with
语句是 try...
错误处理语句的封装
try
语句写法:
1 2 3 4 5
| file = open('./temp_text.txt', 'w') try: file.write('写进一些字符...') finally: file.close()
|
with
语句写法:
with
语句会通过上下文管理器自动调用相关方法
在文件操作中, with
会自动调用 file.close()
方法
1 2 3 4 5
| with open('./test_runoob.txt', 'w') as file: file.write('hello world !')
print(file.closed)
|
内置函数
enumerate()
将一个可遍历的数据对象组合为一个索引序列, 同时列出数据和数据下标
1 2
| enumerate(可迭代对象, start=0)
|
例:
1 2 3 4
| li = ["one", "two", "three"]
for i, element in li: print(i, element)
|
bin()
bin(整型)
返回二进制表示的字符串
1 2 3 4 5
| num = bin(10)
print(num)
>>>0b1010
|
map()
map(函数名, 可迭代对象)
指定处理函数, 用于处理可迭代对象内的每个元素
函数返回一个 map 对象
例:
将列表内的每个元素向下取整
1 2 3 4
| li = [1.2, 5.6, 3.3, 9.7, 8.8]
li = list(map(int, li))
|
列表操作
index()
python 特殊变量, 方法
__方法名__
, __变量名__
是 python 的特殊方法或特殊变量
特殊变量
__file__
__file__
储存的是当前 python 脚本的运行路径
需要注意的是:
如果执行文件是使用的相对命令, 那么 __file__
储存的就是相对路径
反之, 储存的则是绝对路径
特殊方法
__str__()
__str__()
方法用于类
- 当不定义
__str__
方法时
python 输出对象时即 print(对象)
时, 默认输出其实例内存地址
- 当定义
__str__
方法时, 自动调用该方法
注意: __str__()
方法的返回值必须为字符串
例:
1 2 3 4 5 6 7 8 9 10 11
| class Test: def __init__(self): self.name = "测试对象"
def __str__(self): return self.name
test = Test()
print(test) >>>"测试对象"
|
__import__()
用于动态导入模块
如果一个包经常变化就可以使用 __import__()
动态载入模块
但是, 这个方法是给 python 解析器内部使用的
官方不建议使用该特殊方法
官方建议使用 importlib
动态导入模块
__import__(模块)
相当于 import 模块
1 2 3 4 5
| sys = __import__('sys')
example = __import__('.example')
|
另一个例子:
1 2 3
|
example = __import__('os', fromlist=["path", "platform"])
|