py的一些知识点
python知识点
常用函数(魔术方法)
eval() 函数
用来执行一个字符串表达式,并返回表达式的值。
eval函数就是实现list、dict、tuple与str之间的转化,同样str函数把list,dict,tuple转为为字符串
#输入1,2,3,4,5
n=eval(input())#n为元组
n=list(n)#转化为列表
print(n) # 打印 [1,2,3,4,5]
#参数会作为一个 Python 表达式(从技术上说是一个条件列表)被解析并求值
x = 1
print(eval('x+1')) #打印2
print(eval('pow(2,2)')) #打印4 2的2次方
#去除字符串两边的引号
a='"srting"'
print(a) #打印"srting"
b=eval(a)
print(b) #打印srting
print(a.strip('"')) #打印'srting' #strip函数,去掉首尾
#字符串转字典
a= "{'name':'linux','age':18}"
print(type(a)) #打印<type 'str'>
b=eval(a)
print(b) #打印{'age': 18, 'name': 'linux'}
print(type(b)) #打印<type 'dict'>
#传递全局变量
a= "{'name':'linux','age':age}"
b=eval(a,{"age":1822})
print(b) #打印{'age': 1822, 'name': 'linux'}
print(type(b)) #打印<type 'dict'>
#传递本地变量
a= "{'name':'linux','age':age}"
age=18
>>> b=eval(a,{"age":1822},locals())
>>>print(b) #打印{'age': 18, 'name': 'linux'}
divmod()函数
divmod() 函数把除数和余数运算结果结合起来,
返回一个包含商和余数的元组(a // b, a % b)。
round()函数
round() 方法返回浮点数x的四舍五入值。
max(seq)函数
返回序列seq 中最大的元素。
min(seq)函数
返回序列seq 中最小的元素。
sum(list)函数
返回列表中所有元素的和
pow(a,b)函数
pow() 方法返回 xy(x 的 y 次方) 的值。
chr()函数
chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
>>>chr(0x30)
'0'
>>> chr(97)
'a'
>>> chr(8364)
'€'
str.format()函数
格式化字符串
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
str.join()函数
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为>一个新的字符串
str.join(sequence)
str.strip([obj])函数
在 string 上去掉首尾字符串[obj]
str.strip([chars])
str.upper()函数
转换 string 中的小写字母为大写
str.upper()
str.lower()函数
转换 string 中的大写字母为小写
str.lower()
str.isnumeric()函数
如果 string 中只包含数字字符,则返回 True,否则返回 False
str.isnumeric()
str.isalpha()函数
如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
str.isalpha()
str.replace()函数
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
str.replace(old, new[, max])
str.split(s)函数
以 s为分隔符切片 string,如果 num 有指定值,则仅分隔 num+1 个子字符串
str.split(str="", num=string.count(str)).
seq.index()函数
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
str.index(str, beg=0, end=len(string))
seq.reverse()函数
reverse() 函数用于反向列表中元素。
list.reverse()
seq.count()函数
count() 方法用于统计字符串里某个字符或子字符串出现的次数。可选参数为在字符串搜索的开始与结束位置。
str.count(sub, start= 0,end=len(string))
list.sort()函数
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
list.sort( key=None, reverse=False)
random.uniform()函数
uniform() 方法将随机生成下一个实数,它在 [x,y] 范围内。
import random
random.uniform(x, y)
思维与递归思维
递归(recurse)在计算机领域被广泛应用,它不仅是一种计算方法,更是一种思维方式。
科技作家吴军博士认为:递归思维是人与计算机思维最大的差别之一。
递归是指函数(或方法)直接或间接调用自身的一种操作,递归调用的好处在于,它能够大大减少代码量,将原本复杂的问题简化成一个简单的基础操作来完成
什么是异常?
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
异常处理
捕捉异常可以使用try/except语句。
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它。
try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,
这样当异常出现时就可以回到这里,try子句先执行,
接下来会发生什么依赖于执行时是否出现异常。
进制知识
1、python中各个进制的符号
b:二进制;o:八进制;d:十进制;x:十六进制
在python中,可使用bin(),oct(),hex()返回对应进制的数(相当于十进制转其他进制,分别为二进制、八进制、十六进制),均为字符串而且会带有0b,0o,0x前缀 ,如下:
print(bin(128))#打印0b10000000
pirnt(oct(128))#打印0o200
print(hex(128))#打印0x80
2、进制转换
2.1其他进制转十进制
2.1.1使用函数int()函数
注意输入的是对应的字符串,加不加'0b'没有影响
print(int('10000000',2))#打印128
print(int('200',8))#打印128
print(int('80',16))#打印128
2.1.2使用format字符串匹配进行转换
注意输入的是对应的数字,必须加加'0b'等
print('{:d}'.format(0b10000000))#128
print('{:d}'.format(0o200))#128
print('{:d}'.format(0x80))#128
2.1.3使用eval()函数
注意输入的是对应的字符串,必须加加'0b'等.
print(eval('0b10000000'))#128
print(eval('0o200'))#128
print(eval('0x80'))#128
2.2 十进制转其他进制
2.2.1使用bin(),oct(),hex()方法
print(bin(128))#0b10000000
print(oct(128))#0o200
print(hex(128))#ox80
2.2.2使用format字符串匹配进行转换
print('{:b}'.format(128))#10000000
print('{:o}'.format(128))#200
print('{:x}'.format(128))#80
2.3进制转换——短除法
短除法:
十进制整数19 转化为二进制
19/2=9……1
9/2=4……1
4/2=2……0
2/2=1……0
所以最后计算的结果就是 0b10011
十进制整数19 转八进制
19/8=2......3
2/8=0......2
所以最后计算的结果就是 0o23
十进制整数19 转十六进制
19/16=1.....3
1/16=0......1
所以最后计算的结果就是0x13
unicode 万国码
统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
格式化输出
^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
此外我们可以使用大括号 { } 来转义大括号
1、基本用法
(1)不带编号,即“{}”
(2)带数字编号,可调换顺序,即“{1}”、“{2}”
(3)带关键字,即“{a}”、“{tom}”
1 >>> print('{} {}'.format('hello','world')) # 不带字段
2 hello world
3 >>> print('{0} {1}'.format('hello','world')) # 带数字编号
4 hello world
5 >>> print('{0} {1} {0}'.format('hello','world')) # 打乱顺序
6 hello world hello
7 >>> print('{1} {1} {0}'.format('hello','world'))
8 world world hello
9 >>> print('{a} {tom} {a}'.format(tom='hello',a='world')) # 带关键字
10 world hello world
2、进阶用法
(1)< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐
(2)取位数“{:4s}”、"{:.2f}"等
1 >>> print('{} and {}'.format('hello','world')) # 默认左对齐
2 hello and world
3 >>> print('{:10s} and {:>10s}'.format('hello','world')) # 取10位左对齐,取10位右对齐
4 hello and world
5 >>> print('{:^10s} and {:^10s}'.format('hello','world')) # 取10位中间对齐
6 hello and world
7 >>> print('{} is {:.2f}'.format(1.123,1.123)) # 取2位小数
8 1.123 is 1.12
9 >>> print('{0} is {0:>10.2f}'.format(1.123)) # 取2位小数,右对齐,取10位
10 1.123 is 1.12
Python 操作序列类型数据
Python 可以使用方括号 [ ] 来截取序列数据,截取的语法格式如下:
变量[ 头下标: 尾下标 :步长]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?