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 可以使用方括号 [ ] 来截取序列数据,截取的语法格式如下:

变量[ 头下标: 尾下标 :步长]

posted @ 2022-04-28 16:39  李墨韵  阅读(0)  评论(0编辑  收藏  举报