参考:https://blog.csdn.net/m0_48936146/article/details/124039887
为了减少时间复杂度,同时减少写代码的难度 ,在考前两天时整理了这份技巧。感觉在蓝桥杯Python组,这些技巧还是很好用滴。
# 绝对值
print(abs(-10))
10
# divmod() 函数 :同时取商和余数
print(divmod(7,2))
(3, 1)
print(sum([1,2,3]))
6
# 四舍五入
print(round(5.1))
print(round(5.5))
5
6
print(pow(2,3))
#也可以使用**
print(2**3)
8
8
print(min(9,5,2,7))
2
print(max(9,5,2,7))
9
# hex() 函数: 十进制转换成十六进制
print(hex(100))
0x64
# oct() 函数: 十进制转换成八进制
print(oct(100))
0o144
# bin() 函数 :十进制转换成二进制
print(bin(100))
0b1100100
# bool() 函数 :将指定的参数转换成布尔类型
print(bool(1))
print(bool(0))
True
False
# ord() 函数 :获取单个字符的ASCII数值
print(ord('A'))
65
# float() 函数 :转换成浮点数
print(float(10))
10.0
# chr() 函数: 转换一个整数并返回所对应的字符
print(chr(65))
A
# list() 函数: 将可迭代对象转换为列表
print(list(range(1,10)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
# open()函数:打开文件并返回文件对象
f1 = open('Hello.txt','r')
print(f1.readline())
Hello Python
# set()函数:创建一个无序不重复元素集合
set([1,2,1,1,3,4,4,6,5])
{1, 2, 3, 4, 5, 6}
a = [1,2,0]
all(a)
False
any(a)
True
# sorted() 函数: 对可迭代对象进行排序
a = [3,1,4,2]
sorted(a)
[1, 2, 3, 4]
# map()函数: 通过自定义函数实现对序列的元素映射操作并返回操作后的结果
list(map(int,['1','2','3']))
[1, 2, 3]
print("{} {}".format("hello", "world"))
print("{:.2f}".format(3.1415926));
hello world
3.14
string = "123455"
str0 = "1"
# 返回 str 在 string 里面出现的次数
# 如果 beg 或者 end 指定,则返回指定范围内 str 出现的次数
# string.count(str0, beg=0, end=len(string))
string.count(str0, 0, len(string))
1
# string.endswith(obj, beg=0, end=len(string))
print(string.endswith(str0, 0, len(string)))
print(string.endswith("5", 0, len(string)))
False
True
# 检测 str 是否包含在 string 中,如果是返回开始的索引值,否则返回-1
# string.find(str, beg=0, end=len(string))
string.find(str0, 0, len(string))
0
# 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
# seq.join(string)
seq = " "
print(seq.join(string))
1 2 3 4 5 5
# 截掉字符串左边的空格或指定字符
print(string.lstrip("13"))
# 删除 string 字符串末尾的指定字符
print(string.rstrip("554"))
# 匹配时不是按照整个字符串匹配的,而是一个个匹配的
23455
123
string1 = "aAaa"
print(string1.upper())
print(string1.lower())
print(string1.swapcase()) # 大小写翻转
AAAA
aaaa
AaAA
# 列表转化为整数
a=[1, 3, 5]
b=['4', '5', '6']
r1 = int("".join(map(str, a)))
r2 = int("".join(map(str, b)))
print(r1,r2)
135 456
import math
print(math.ceil(3.1))
4
print(math.floor(3.1))
3
print(math.pow(10,3))
print(math.pow(27,1/3))
1000.0
3.0
import re
s = 'Regular 123 Expression 456'
re.findall(r'\d+',s)
['123', '456']
在目标字符串target 中查找符合规则rule 的字符串,后面还可以跟一个规则选项flag用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。返回结果结果是一个列表,中间存放的是符合规则的字符串。如果没有符合规则的字符串被找到,就返回一个空列表。
^:匹配字符串开头
" * " 匹配前面的子表达式零次或多次
" + " 匹配前面的子表达式一次或多次
" ? " 匹配前面的子表达式零次或一次
" [abc]" :方括号表示字符集合,例子表示一个字符串有一个 “a” 或 “b” 或 “c” 等价于 [z|b|c]
" [a-z]": 表示一个字符串中存在一个 a 和 z 之间的所有字母
" [^a-z]" :表示一个字符串中不应该出现 a 到 z 之间的任意一个字母
" [0-9]": 表示一个字符串中存在一个 0 和 9 之间的所有数字
" \d " 匹配一个数字字符,等价[0-9]
" \D " 匹配一个非数字字符,等价[^0-9]
" \w" 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”
" \W" 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”
fp = open('hello.txt','r')
res = []
s = fp.readlines()
for i in s:
res.append(i.strip('\n')) #使用strip()去掉换行符,如果不去的话会把‘\n’也读进来
fp.close() #记得要关闭连接,养成良好习惯
print(res[:])
['Hello Python']
import itertools
s=[1,2,3]#序列
#l为排列组合的长度:从序列里面取几个出来
l=2
x=itertools.permutations(s,l)
y=itertools.combinations(s,l)
#如果要查看x,y的内容,转化为列表
print(list(x),list(y))
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)] [(1, 2), (1, 3), (2, 3)]