当前位置: 首页 > wzjs >正文

新疆建设职业培训中心网站今日头条热榜

新疆建设职业培训中心网站,今日头条热榜,网站开发视频如何节省流量,佛山网站优化软件1. 单例模式的实现方式 要点:Python 有多种实现单例模式的方法。模块由于其特性天然支持单例,首次导入生成对象,后续导入直接复用。通过装饰器可以控制实例的创建,元类能借助 __call__ 方法管理实例化过程,重写类的 _…

1. 单例模式的实现方式

  • 要点:Python 有多种实现单例模式的方法。模块由于其特性天然支持单例,首次导入生成对象,后续导入直接复用。通过装饰器可以控制实例的创建,元类能借助 __call__ 方法管理实例化过程,重写类的 __new__ 方法也能保证实例的唯一性。
  • 示例

python

def singleton(cls):instances = {}def get_instance(*args, **kwargs):# 如果类尚未在实例字典中,就创建一个新实例if cls not in instances:instances[cls] = cls(*args, **kwargs)# 无论是否新创建,都返回对应的实例return instances[cls]return get_instance@singleton
class MyClass:pass

2. Lambda 函数的概念

  • 要点:Lambda 函数是一种匿名函数,专门用于简化单行函数的定义。其语法为 lambda 参数: 表达式
  • 示例

python

# 使用 lambda 定义一个加法函数
add = lambda x, y: x + y
print(add(2, 3))  # 输出 5,展示函数的计算结果

3. 类型转换方法

  • 要点:Python 可通过内置函数实现类型转换,如 int(x) 用于转换为整数,float(x) 转换为浮点数,str(x) 转换为字符串,list(x) 转换为列表,tuple(x) 转换为元组等。
  • 示例

python

num_str = "123"
# 将字符串类型的数字转换为整数类型
num_int = int(num_str)  
print(num_int)  # 输出 123,验证转换结果

4. 反序迭代序列的方法

  • 要点:可以使用 reversed() 函数获取逆序迭代器,或者通过切片 [::-1] 生成逆序的新序列来实现反序迭代。
  • 示例

python

lst = [1, 2, 3]
# 使用 reversed() 函数反序迭代列表
for item in reversed(lst):print(item)  
# 输出 3, 2, 1,展示反序迭代的结果

5. Tuple 和 List 的相互转换

  • 要点:列表转元组可使用 tuple(list),元组转列表可使用 list(tuple)
  • 示例

python

my_list = [1, 2, 3]
# 将列表转换为元组
my_tuple = tuple(my_list)  
print(my_tuple)  # 输出 (1, 2, 3),展示转换后的元组

5. 删除列表重复元素的方法

  • 要点:利用 set() 可实现去重,但会丢失元素顺序;在 Python 3.7 及以上版本中,有序字典能保持插入顺序,可用于实现有序去重。
  • 示例(保持顺序)

python

def deduplicate(lst):seen = set()# 遍历列表,若元素不在已访问集合中,则保留并添加到集合中return [x for x in lst if not (x in seen or seen.add(x))]

6. 删除文件的方法

  • 要点:使用 os.remove() 函数可以删除指定的文件。
  • 示例

python

import os
# 尝试删除名为 "file.txt" 的文件
os.remove("file.txt")  

7. 生成随机数的方法

  • 要点:借助 Python 的 random 模块可以生成随机数,例如使用 random.randint(a, b) 生成指定范围内的随机整数。
  • 示例

python

import random
# 生成 1 到 100 之间的随机整数并输出
print(random.randint(1, 100))  

7. 发送邮件的方法

  • 要点:使用 smtplibemail 库来实现邮件发送功能,需要构建邮件内容、设置邮件主题、发件人和收件人等信息,并进行登录和发送操作。
  • 示例

python

import smtplib
from email.mime.text import MIMEText# 创建邮件内容对象
msg = MIMEText("邮件内容")
msg["Subject"] = "主题"
msg["From"] = "发件人"
msg["To"] = "收件人"# 使用上下文管理器连接邮件服务器并发送邮件
with smtplib.SMTP("smtp.example.com", 587) as server:server.login("user", "password")server.send_message(msg)

8. 静态代码分析工具

  • 要点:常见的 Python 静态代码分析工具包括 Pylint(用于检查代码风格和错误)、Flake8(结合了 PyFlakesPEP8 检查)、Mypy(用于静态类型检查)。

9. 交换元素使两序列和差最小

有两个序列 a,b, 大小都为 n,序列元素的值任意整形数, 无序; 要求: 通过交换 a,b 中的元素, 使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小

  • 要点:要使交换序列 ab 中的元素后,两个序列元素和的差最小,我们可以采用以下步骤:

  1. 合并序列并计算总和:将序列 ab 合并为一个新序列 combined,然后计算这个新序列的总和 total

  2. 确定目标和:我们的目标是从 combined 中选出 n 个元素,使得这 n 个元素的和尽可能接近 total / 2

  3. 使用动态规划:通过动态规划的方法来寻找最接近目标和的 n 个元素的组合。

  4. 交换元素:根据动态规划得到的结果,确定哪些元素需要从一个序列交换到另一个序列,从而实现和差最小。

  • 示例

python

def minimal_diff(a, b):n = len(a)combined = a + btotal = sum(combined)target = total // 2# 创建一个三维动态规划数组 dp# dp[i][j][k] 表示在前 i 个元素中选择 j 个元素,其和是否可以达到 kdp = [[[False] * (total + 1) for _ in range(n + 1)] for _ in range(2 * n + 1)]dp[0][0][0] = True# 填充动态规划数组for i in range(1, 2 * n + 1):for j in range(min(i, n) + 1):for k in range(total + 1):# 不选择第 i 个元素dp[i][j][k] = dp[i - 1][j][k]if j > 0 and k >= combined[i - 1]:# 选择第 i 个元素dp[i][j][k] = dp[i][j][k] or dp[i - 1][j - 1][k - combined[i - 1]]# 找到最接近目标和的和closest_sum = 0for k in range(target, -1, -1):if dp[2 * n][n][k]:closest_sum = kbreak# 回溯找出选择的元素selected = [False] * (2 * n)i, j, k = 2 * n, n, closest_sumwhile i > 0:if not dp[i - 1][j][k]:selected[i - 1] = Truej -= 1k -= combined[i - 1]i -= 1# 根据选择的元素重新划分序列 a 和 bnew_a = [combined[i] for i in range(2 * n) if selected[i]]new_b = [combined[i] for i in range(2 * n) if not selected[i]]return new_a, new_b# 示例使用
a = [1, 2, 3]
b = [4, 5, 6]
new_a, new_b = minimal_diff(a, b)
print("序列 a 交换后的元素:", new_a)
print("序列 b 交换后的元素:", new_b)
print("序列 a 的和:", sum(new_a))
print("序列 b 的和:", sum(new_b))
print("和的差:", abs(sum(new_a) - sum(new_b)))
  • 说明:
  1. 动态规划数组 dpdp[i][j][k] 表示在前 i 个元素中选择 j 个元素,其和是否可以达到 k
  2. 填充动态规划数组:通过三重循环遍历所有可能的状态,更新 dp 数组的值。
  3. 找到最接近目标和的和:从目标和 target 开始递减搜索,找到第一个满足 dp[2 * n][n][k]Truek 值。
  4. 回溯找出选择的元素:根据 dp 数组的值,回溯找出哪些元素被选中。
  5. 重新划分序列:根据选择的元素,重新划分序列 ab

10. 正则表达式 <.*><.*?> 的区别

  • 要点<.*> 是贪婪匹配模式,会匹配从第一个 < 到最后一个 > 的所有内容;<.*?> 是非贪婪匹配模式,遇到第一个 > 就会结束匹配。
  • 示例

python

# 对于字符串 "<a><b></b></a>"
# 贪婪匹配 <.*> 会匹配整个字符串 "<a><b></b></a>"
# 非贪婪匹配 <.*?> 会分别匹配 "<a>" 和 "<b>" 等单独的标签

http://www.dtcms.com/wzjs/53880.html

相关文章:

  • 设计建设网站公司哪家好百度天眼查
  • 消防做设计有什么网站网络整合营销4i原则是指
  • 济南外贸网站建设百度网盘资源搜索引擎
  • 做网站建设的电话销售培训计划方案模板
  • java自己做网站免费的关键词优化软件
  • 我做中医培训去哪个网站找学员2023年免费进入b站
  • 做有弹幕视频网站营销策划案
  • 帝国做的网站删除域名后缀百度推广关键词质量度
  • 网站建站报价推广代理平台
  • 中山市城乡住房建设局网站欧洲网站服务器
  • 廊坊网站制作策划百度关键词优化是什么意思
  • 朝鲜网站后缀网页制作成品
  • 北京网站建设开发公司百度知道官网登录入口
  • 企业标准版网站建设搜狗推广效果好吗
  • 织梦网站后台教程唐山seo排名
  • 移动电子商务网站建设研究电商网站平台有哪些
  • 保定徐水网站建设百度手机助手app下载并安装
  • 下载php做站的官方网站百度账号人工申诉
  • 专门做搜索种子的网站有哪些广州做seo公司
  • 都是些什么企业需要建设网站苏州关键词排名系统
  • 网站建设备案 优帮云宁波seo关键词培训
  • 婚恋网站应聘做销售百度搜索排名查询
  • 网站如何进行seo谷歌推广真有效果吗
  • 青田建设局网站制作app软件平台
  • 做织带的网站旺道优化软件
  • 做相册的网站(网易网络营销策划案
  • 网站备案 异地网站推广策划思路
  • 淮北专业三合一网站开发品牌推广方案思维导图
  • 网站 主办单位性质 个人网店推广方案范文
  • 智慧团建网站登录入口电脑版微信小程序怎么开通