蓝桥杯系列6——python技巧

简介: 蓝桥杯系列6——python技巧

参考: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_]”

" \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)]

补充

提高Python技能的实用技巧

Python作为一种流行的编程语言,具有广泛的应用领域,从Web开发到数据科学和机器学习。在本篇博客中,我将分享一些提高Python编程技能的实用技巧,无论你是初学者还是有经验的开发者,这些技巧都能帮助你更高效地使用Python。

1. 列表推导式

列表推导式是一种用于创建列表的简洁方式,它可以用一行代码替代传统的for循环。例如,要创建一个包含1到10的平方的列表,你可以这样做:

squares = [x**2 for x in range(1, 11)]

这比使用for循环来迭代并填充列表更加简洁和可读。

2. 字典推导式

与列表推导式类似,字典推导式用于创建字典。它可以帮助你从其他数据结构中创建字典,例如,将两个列表合并成一个字典:

keys = ['a', 'b', 'c']
values = [1, 2, 3]
my_dict = {key: value for key, value in zip(keys, values)}

3. 解包和交换变量

Python允许你通过解包来一次性赋值多个变量。例如,要交换两个变量的值,你可以使用以下方式:

a, b = b, a

这样,a和b的值会互相交换,而无需使用中间变量。

4. 使用enumerate()函数

enumerate()函数用于同时获取列表或其他可迭代对象的索引和值。这对于需要同时遍历列表和跟踪索引的情况非常有用。例如:

my_list = ['apple', 'banana', 'cherry']
for index, value in enumerate(my_list):
    print(f'Index {index}: {value}')

5. 使用zip()函数

zip()函数用于将多个可迭代对象合并成元组对,这对于同时迭代多个列表或序列非常有用。例如:

names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
for name, score in zip(names, scores):
    print(f'{name}: {score}')

6. 使用collections模块

Python的collections模块提供了许多有用的数据结构,如defaultdict、Counter等,它们可以简化你的编程任务。例如,Counter用于计数列表中元素的出现次数:

from collections import Counter
my_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
count = Counter(my_list)
print(count)

7. 列表切片

列表切片允许你从列表中提取子集。你可以使用切片来访问列表的一部分,如获取前几个元素、反转列表等。

my_list = [1, 2, 3, 4, 5]
subset = my_list[:3]  # 获取前三个元素
reversed_list = my_list[::-1]  # 反转列表

8. 使用with语句管理文件

Python的with语句可用于自动管理文件的打开和关闭,确保在使用文件后它会被正确关闭。例如:

with open('file.txt', 'r') as file:
    data = file.read()
# 文件在with块结束后自动关闭

9. 使用虚拟环境

虚拟环境允许你在项目之间隔离Python包的安装,以防止包冲突。你可以使用virtualenv或Python的内置venv来创建虚拟环境。

# 使用venv创建虚拟环境
python -m venv myenv

10. 注释和文档字符串

编写清晰的注释和文档字符串是良好编程实践的一部分。注释可以帮助其他人理解你的代码,而文档字符串则用于生成文档。

def my_function(x):
    """
    这是一个示例函数的文档字符串。
    Args:
        x (int): 输入参数。
    Returns:
        int: 返回值。
    """
    return x * 2

这些是提高Python技能的一些实用技巧,希望它们能够提高你的编程效率和代码质量。继续探索Python的更多功能和库,以不断提升你的编程技能。

目录
相关文章
|
10月前
|
存储 索引 Python
蓝桥杯系列2——python基本语法
蓝桥杯系列2——python基本语法
85 0
|
4月前
|
索引 Python 容器
【备战蓝桥杯】探索Python内置标准库collections的使用
【备战蓝桥杯】探索Python内置标准库collections的使用
77 1
|
4月前
|
开发者 Python
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
60 1
|
4月前
|
算法 测试技术 编译器
蓝桥杯-02-python组考点与14届真题
蓝桥杯-02-python组考点与14届真题
|
4月前
|
Python
第十三届蓝桥杯B组python(试题A:排列字母)
第十三届蓝桥杯B组python(试题A:排列字母)
50 0
|
4月前
|
人工智能 算法 测试技术
第十四届蓝桥杯第三期模拟赛 【python】(二)
第十四届蓝桥杯第三期模拟赛 【python】(二)
|
4月前
|
测试技术 Python
第十四届蓝桥杯第三期模拟赛 【python】(一)
第十四届蓝桥杯第三期模拟赛 【python】(一)
|
4月前
|
人工智能 算法 测试技术
第十四届蓝桥杯第二期模拟赛 【python】
第十四届蓝桥杯第二期模拟赛 【python】
|
10月前
|
算法 Python
蓝桥杯系列4——python基础练习
蓝桥杯系列4——python基础练习
176 0
|
人工智能 Python
【蓝桥杯国赛真题笔记】Python(2)
【蓝桥杯国赛真题笔记】Python
247 0
【蓝桥杯国赛真题笔记】Python(2)