蓝桥杯|蓝桥杯系列6——python技巧


蓝桥杯系列6——python技巧

    • 一、内置函数
      • 1.数学函数
      • 2.数据转换函数
      • 3.对象创建函数
      • 4.迭代器操作函数
      • 5.基本常用函数
    • 二、字符串操作
    • 三、math的使用
      • 1.向上取整
      • 2.向下取整
      • 3.乘方 开方
    • 四、正则表达式
    • 五、文件操作

零 参考:https://blog.csdn.net/m0_48936146/article/details/124039887
为了减少时间复杂度,同时减少写代码的难度 ,在考前两天时整理了这份技巧。感觉在蓝桥杯Python组,这些技巧还是很好用滴。
一、内置函数 1.数学函数
# 绝对值 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

2.数据转换函数
# 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]

3.对象创建函数
# 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}

4.迭代器操作函数
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]

5.基本常用函数
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

三、math的使用
import math

1.向上取整
print(math.ceil(3.1))

4

2.向下取整
print(math.floor(3.1))

3

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_]”
【蓝桥杯|蓝桥杯系列6——python技巧】" \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)]

    推荐阅读