软考中级-软件设计师 Python篇

文章目录

  • Python 基础语法
  • Python 数据结构
  • 函数与模块
  • 面向对象编程
  • 常用算法实现
  • 文件操作
  • 异常处理
  • 常用库

Python 基础语法

  • 变量与数据类型:Python支持多种数据类型,包括整数 (int)、浮点数 (float)、字符串 (str)、布尔值 (bool) 和复数 (complex)。
x = 10       # 整数
y = 3.14     # 浮点数
z = "Hello"  # 字符串
a = True     # 布尔值
  • 运算符:Python支持算术运算符 (+, -, *, / 等)、比较运算符 (==, !=, >, < 等) 和逻辑运算符 (and, or, not)。
  • 条件语句:用 if-elif-else 实现逻辑分支。
age = 18
if age >= 18:print("成人")
else:print("未成年")
  • 循环:使用 for 循环遍历序列,使用 while 循环处理条件判断。
for i in range(5):print(i)  # 输出 0 1 2 3 4count = 0
while count < 5:print(count)count += 1

Python 数据结构

  • 列表 (List):列表是动态数组,支持索引访问,具有添加、删除和查找等常见操作。
# 初始化列表
fruits = ["apple", "banana", "cherry"]# 添加元素
fruits.append("orange")           # 添加到末尾
fruits.insert(1, "mango")         # 插入到指定位置# 删除元素
fruits.remove("banana")           # 按值删除
del fruits[2]                     # 按索引删除
popped_item = fruits.pop()        # 删除最后一个元素并返回# 查找元素
index = fruits.index("apple")     # 查找元素的索引
is_present = "cherry" in fruits   # 检查是否存在# 输出列表
print(fruits)      # 示例输出: ['apple', 'mango', 'orange']
  • 元组 (Tuple):元组与列表相似,但不可修改。它们通常用于存储不需要更改的数据或作为函数的多返回值。元组的常用操作包括创建、访问元素、连接、切片等。
# 创建元组
person = ("Alice", 25, "Engineer")# 访问元素
name = person[0]       # 读取第一个元素
age = person[1]        # 读取第二个元素# 元组不可变,因此不能直接修改,但可以重新赋值
# person[1] = 26       # 错误:元组元素不可修改# 可以通过拼接创建新的元组
updated_person = person[:1] + (26,) + person[2:]  # 更新年龄
print(updated_person)   # 输出: ('Alice', 26, 'Engineer')# 元组解包
name, age, profession = person# 查找元素
index = person.index("Engineer")  # 查找元素索引
count = person.count(25)          # 统计某元素出现次数# 嵌套元组
nested_tuple = ((1, 2), (3, 4), (5, 6))
first_pair = nested_tuple[0]      # 输出: (1, 2)
  • 集合 (Set):集合是无序、无重复的元素集合,适合快速查找、添加和删除。
# 初始化集合
numbers = {1, 2, 3}# 添加元素
numbers.add(4)# 删除元素
numbers.remove(2)            # 移除指定元素
numbers.discard(5)           # 移除指定元素(若不存在不报错)# 集合运算
odds = {1, 3, 5, 7}
evens = {2, 4, 6, 8}
union_set = odds | evens     # 并集
intersection_set = odds & numbers  # 交集# 判断是否包含元素
is_present = 3 in numbers# 输出集合
print(numbers)        # 示例输出: {1, 3, 4}
  • 字典 (Dictionary):字典是键值对的集合,键具有唯一性,可以用于存储映射关系。
# 初始化字典
student = {"name": "Alice", "age": 20}# 添加或更新键值对
student["grade"] = "A"             # 添加新键值对
student["age"] = 21                # 更新已有键值对# 删除键值对
del student["grade"]# 查找值
age = student.get("age", "Not found")# 遍历字典
for key, value in student.items():print(f"{key}: {value}")# 输出字典
print(student)      # 示例输出: {'name': 'Alice', 'age': 21}

函数与模块

  • 定义函数:使用 def 关键字定义函数。
def greet(name):return f"Hello, {name}!"print(greet("Alice"))
  • 导入模块:Python标准库包含丰富的模块,也可以自定义模块。
import math
print(math.sqrt(16))  # 输出: 4.0
  • 函数参数:Python支持默认参数、可变参数和关键字参数。
def add(a, b=5):return a + bprint(add(3))  # 使用默认值 b=5, 输出 8

面向对象编程

  • 类和对象:Python是一门面向对象语言,使用 class 定义类。
class Car:def __init__(self, brand, model):self.brand = brandself.model = modeldef display_info(self):print(f"Car: {self.brand} {self.model}")car1 = Car("Toyota", "Corolla")
car1.display_info()  # 输出: Car: Toyota Corolla
  • 继承与多态:Python支持继承和多态,使得子类可以复用父类的方法。
class Car:def __init__(self, brand, model):self.brand = brandself.model = modeldef display_info(self):print(f"Car: {self.brand} {self.model}")car1 = Car("Toyota", "Corolla")
car1.display_info()  # 输出: Car: Toyota Corolla

常用算法实现

  • 排序算法:Python内置了 sorted 函数,还可以实现常见的排序算法如冒泡排序和快速排序。
# 冒泡排序
def bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] > arr[j+1]:arr[j], arr[j+1] = arr[j+1], arr[j]return arrarr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))
  • 搜索算法:实现线性查找和二分查找。
# 二分查找
def binary_search(arr, target):left, right = 0, len(arr) - 1while left <= right:mid = (left + right) // 2if arr[mid] == target:return midelif arr[mid] < target:left = mid + 1else:right = mid - 1return -1sorted_arr = [1, 2, 3, 4, 5]
print(binary_search(sorted_arr, 3))  # 输出: 2

文件操作

  • 读写文件:Python支持对文件进行读写操作。
# 写入文件
with open("example.txt", "w") as file:file.write("Hello, world!")# 读取文件
with open("example.txt", "r") as file:content = file.read()print(content)

异常处理

  • 异常处理:使用 try-except 捕获异常,确保程序不会因错误中断。
try:result = 10 / 0
except ZeroDivisionError:print("除数不能为零")
finally:print("程序执行结束")

常用库

  • Numpy:用于数值计算和矩阵操作。
  • Pandas:用于数据分析和数据处理。
  • Matplotlib:用于数据可视化,绘制图表。
  • Requests:用于发送 HTTP 请求,处理网络数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打造自己的RAG解析大模型:(可商用)智能文档服务上线部署

通用版面分析介绍 版面解析是一种将文档图像转化为机器可读数据格式的技术&#xff0c;广泛应用于文档管理和信息提取等领域。通过结合OCR、图像处理和机器学习&#xff0c;版面解析能够识别文档中的文本块、图片、表格等版面元素&#xff0c;最终生成结构化数据&#xff0c;大…

【MySQL】MySQL基础知识复习(下)

前言 上一篇博客介绍了MySQL的库操作&#xff0c;表操作以及CRUD。 【MySQL】MySQL基础知识复习&#xff08;上&#xff09;-CSDN博客 本篇将进一步介绍CRUD操作&#xff0c;尤其是查找操作 目录 一.数据库约束 1.约束类型 1.1NULL约束 1.2UNIQUE&#xff1a;唯一约束 …

新的服务器Centos7.6 安卓基础的环境配置(新服务器可直接粘贴使用配置)

常见的基础服务器配置之Centos命令 正常来说都是安装一个docker基本上很多问题都可以解决了&#xff0c;我基本上都是通过docker去管理一些容器如&#xff1a;mysql、redis、mongoDB等之类的镜像&#xff0c;还有一些中间件如kafka。下面就安装一个 docker 和 nginx 的相关配置…

第12课 二维数组(1)

string类型不知道各位童鞋们都掌握了没&#xff0c;没掌握的话&#xff0c;嘿嘿嘿&#xff08;抱拳&#xff09;我稍微练过一点散打哦。 好了&#xff0c;开玩笑的&#xff0c;今天的课程难度较高&#xff0c;所以我决定分三课讲&#xff0c;就是想让大家把二维数组彻底吃透&a…

什么是C/C++,有什么特点

C/C 简介 C 和 C 是两种广泛使用的编程语言&#xff0c;它们在计算机科学和软件开发中具有重要的地位。C 语言由 Dennis Ritchie 于 1972 年在贝尔实验室开发&#xff0c;主要用于编写操作系统&#xff08;如 Unix&#xff09;。C 语言由 Bjarne Stroustrup 于 1979 年在贝尔实…

性能测试|JMeter接口与性能测试项目

前言 在软件开发和运维过程中&#xff0c;接口性能测试是一项至关重要的工作。JMeter作为一款开源的Java应用&#xff0c;被广泛用于进行各种性能测试&#xff0c;包括接口性能测试。本文将详细介绍如何使用JMeter进行接口性能测试的过程和步骤。 JMeter是Apache组织开发的基…

linux物理内存管理:node,zone,page

一、总览 对于物理内存内存&#xff0c;linux对内存的组织逻辑从上到下依次是&#xff1a;node&#xff0c;zone&#xff0c;page&#xff0c;这些page是根据buddy分配算法组织的&#xff0c;看下面两张图&#xff1a; 上面的概念做下简单的介绍&#xff1a; Node&#xff1a…

npm i忽略依赖冲突

在使用npm安装依赖时&#xff0c;如果遇到依赖冲突&#xff0c;通常npm会提示错误并阻止安装。但是&#xff0c;如果你想要忽略这些依赖冲突&#xff0c;可以使用以下几种方法&#xff1a; 1.使用--force或-f参数&#xff1a;这个参数会强制npm忽略某些错误&#xff0c;包括依…

Pr:视频过渡快速参考(合集 · 2025版)

Adobe Premiere Pro 自带七组约四十多个视频过渡 Video Transitions效果&#xff0c;包含不同风格和用途&#xff0c;可在两个剪辑之间创造平滑、自然的转场&#xff0c;用来丰富时间、地点或情绪的变化。恰当地应用过渡可让观众更好地理解故事或人物。 提示&#xff1a; 点击下…

使用vscode 连接linux进行开发

1. 在Vscode中安装扩展功能remote ssh 2. 打开命令窗口 3. 在弹出的命令窗口输入ssh&#xff0c;并从弹出的提示中选择 Add New SSH Host 4. 在弹出的输入窗口中输入类似下面形式的 连接地址&#xff1a; 5. 输入回车后出现下面的对话框&#xff0c;这个对话框是说你要用哪个…

面试击穿mysql

Mysql三大范式: 第一范式&#xff08;1NF&#xff09;&#xff1a; 不符合第一范式的典型情况是在一个字段中存放多种不同类型的详细信息。例如&#xff0c;在商品表中&#xff0c;若将商品名称、价格和类型都存储在同一个字段中&#xff0c;会带来诸多弊端。首先&#xff0c;在…

WRF-LES与PALM模型:风能资源评估、风力发电、大涡模拟、大尺度湍流涡旋、大雾预报、局地环流模拟、城市热岛效应、流场模拟

专题一、背景 1、流体力学简介 2、计算流体力学简介 3、应用场景举例 专题二、计算机基础与编程入门 1、计算机基础与编程入门 2、计算机基本概念和操作系统讲解 3、Linux基础命令与操作 专题三、科学计算与数据处理基础 1、NumPy基础&#xff1a;数组操作与科学计算 …

excel功能

统计excel中每个名字出现的次数 在Excel中统计每个名字出现的次数&#xff0c;您可以使用COUNTIF函数或数据透视表。以下是两种方法的详细步骤&#xff1a; 方法一&#xff1a;使用COUNTIF函数 准备数据&#xff1a;确保您的姓名列表位于一个连续的单元格区域&#xff0c;例如…

单体架构 IM 系统之长轮询方案设计

在上一篇技术短文&#xff08;单体架构 IM 系统之核心业务功能实现&#xff09;中&#xff0c;我们讨论了 “信箱模型” 在单体架构 IM 系统中的应用&#xff0c;“信箱模型” 见下图。 客户端 A 将 “信件” 投入到客户端 B 的 “信箱” 中&#xff0c;然后客户端 B 去自己的 …

量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来聊聊基于Okex交易所API获取行情数…

【网络安全 | 漏洞挖掘】我如何通过路径遍历实现账户接管

未经许可,不得转载。 文章目录 不久前,我发现了一个我在高中时非常常用的知名应用程序,它在Intigriti上是一个私有程序,本文称之为REDACTED。 我开始参与REDACTED的漏洞赏金计划,这个应用程序在我开始进行黑客攻击之前我已经非常熟悉了。最初我并没有抱太高的期望。 我首…

webpack loader全解析,从入门到精通(10)

webpack 的核心功能是分析出各种模块的依赖关系&#xff0c;然后形成资源列表&#xff0c;最终打包生成到指定的文件中。更多复杂的功能需要借助 webpack loaders 和 plugins 来完成。 1. 什么是 Loader Loader 本质上是一个函数&#xff0c;它的作用是将某个源码字符串转换成…

数据库基础(12) . 自定义函数

在 MySQL 中&#xff0c;你可以创建自定义函数来扩展其内置功能。自定义函数可以通过编写存储过程或函数来实现。这里我们将重点介绍如何创建自定义函数&#xff0c;并给出一些示例。 创建自定义函数的基本语法 创建自定义函数的基本语法如下&#xff1a; CREATE FUNCTION f…

web——sqliabs靶场——第一关

今天开始搞这个靶场&#xff0c;从小白开始一点点学习,加油&#xff01;&#xff01;&#xff01;&#xff01; 1.搭建靶场 注意点&#xff1a;1.php的版本问题&#xff0c;要用老版本 2.小p要先改数据库的密码&#xff0c;否则一直显示链接不上数据库 2.第一道题&#xff0…

Linux基础—网络设置

linux系统的网络设置 1、网络的基本设置 2、dhcp和ftp 3、nfs共享文件共享系统和ssh远程连接 4、dns解析 5、pxe自动装机&#xff08;centos&#xff09; 网络的基本设置 查看网络接口信息: ipaddr/ip a 简略的查看网络接口信息 ifconfig 表示只显示当前活跃的设备 ifc…