【Python】基本语法
数据类型
通过 print(type(x)) 可以输出 x 的数据类型,type() 函数可以获取数据类型
整数
a = 10
print(type(a))
浮点数
a = 0.5
print(type(a))
字符串
a = 'hello'
print(type(a))
获取字符串长度
a = 'hello'
print(len(a))
字符串拼接
a = 'hello'
b = 'world'
print(a + b)
布尔
布尔类型只有两种值 True 真 和 False 假
a = True
print(type(a))
b = False
print(type(b))
注释
单行注释
# 注释
文档注释
'''注释注释
'''"""注释注释
"""
输入输出
输入
input()
使用 input() 函数进行输入操作,当程序运行到 input() 函数时
会将括号内的内容先打印出来,然后等待用户进行输入,当用户敲下回车时,输入结束
输出
print()
使用输入输出
# 定义一个整型变量 num
num = 0# 输入一个整型数据 将其赋值给 num 变量
num = input('请输入一个整数: ')# 输出 num 变量
print(f'你输入的整数是 {num}')
使用 f 作为前缀的字符串,称为 f-string
这种字符串可以在字符串里使用 { } 将变量或表达式内嵌到字符串中
运算符
算术运算符
加法 +
减法 -
乘法 *
除法 /
取模 %
乘方 **
除法取整 //
关系运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
带有这种关系运算符的表达式结果一般为布尔类型 True or False
a = 10
b = 20
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

除了判断数字也可以判断字符串,字符串的大小由 abc~xyz 的字典序决定,越后越大
a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

逻辑运算符
and 并且
or 或者
not 取反
a = 10
b = 20
c = 30
print(a < b and b < c)
print(a < b and b > c)
print(a > b or b > c)
print(a < b or b > c)
print(not a < b)
print(not a > b)

赋值运算符
# 直接赋值
a = 10# 从右往左 链式赋值
a = b = 10# 多元赋值
a, b = 10, 20
a += 1 ( a = a + 1 )
a -= 1 ( a = a - a )
a *= 1 ( a = a * 1 )
a /= 1 ( a = a / 1 )
a %= 1 ( a = a % 1 )
身份运算符
is 是
is not 不是
成员运算符
in 在
not in 不在
位运算符
& 按位与
| 按位或
^ 按位异或
<< 左移
>> 右移
条件语句
if 条件 :操作操作下一条语句
if 条件 :操作操作else:操作操作
if 条件 :操作操作elif 条件 :操作操作elif 条件 :操作操作else:操作操作
空语句
pass
a = int(input("请输入一个整数:"))if a == 1:print("hello")
a = int(input("请输入一个整数:"))if a != 1:passelse:print("hello")
上面两种实现方式是等价的
循环语句
while 条件 :循环内容循环内容# 例子 打印 1 ~ 10
num = 1while num <= 10:print(num)num += 1
for 循环变量 in 可迭代对象:循环内容循环内容# 例子 打印 1 ~ 10
for i in range(1, 11):print(i)
break 跳出循环 结束整个循环
continue 跳过本次循环 进入下次循环
函数
函数定义 函数调用
# 定义函数
def 函数名(参数):函数内容函数内容return 返回值# 调用函数函数名(参数)
# 定义函数
def add(x, y):return x + y# 调用函数
sum(1, 1)
参数默认值
可以给参数设置初始值
def add(x = 1, y = 1):return x + yprint(add())
print(add(5, 5))

关键字传参
def test(x, y):
print(f'x = {x}')
print(f'y = {y}')
test(x=10, y=20)
test(y=100, x=200)
列表
多个元素的一个顺序集合
创建列表
alist = []alist = list()
列表可以存放不同类型的元素
alist = [1, 0.5, "hello", True]
访问元素
通过下标访问符 ’ [ ] ‘ 来获取列表中的元素,列表的下标从 0 开始
下标可以为负数,表示倒数,-1 为 倒数第一
alist = [1, 2, 3, 4, 5]
print(alist[2])
修改元素
alist = [1, 2, 3, 4, 5]
alist[2] = 6
print(alist[2])
切片操作
将列表切出一个子列表,使用 [ : ] 进行切片
alist = [1, 2, 3, 4, 5]
print(alist[1:4])
从列表的 1 下标开始,到 4 下标前停下,即 [1, 4) 前闭后开区间
其他切法
省略前后边界
print(alist[1:]) # 省略后边界, 表示获取到列表末尾
print(alist[:-1]) # 省略前边界, 表示从列表开头获取
print(alist[:]) # 省略两个边界, 表示获取到整个列表
设置步长
alist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(alist[::1])
print(alist[::2])
print(alist[::3])
print(alist[::5])
alist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(alist[::-1])
print(alist[::-2])
print(alist[::-3])
print(alist[::-5])
遍历列表
for elem in alist:
print(elem)
for i in range(0, len(alist)):
print(alist[i])
i = 0
while i < len(alist):
print(alist[i])
i += 1
新增元素
append 方法,向列表的最后添加一个元素
alist.append('hello')
insert 方法,向列表中的指定下标位置插入一个元素,原来的元素向后移
# 在 1 下标处插入 hello
alist.insert(1, 'hello')
查找元素
in 操作符可以判定元素是否在列表中,返回布尔类型
alist = [1, 2, 3, 4]
print(2 in alist)
print(5 in alist)
index 方法,查寻元素在列表中的下标。若不存在,则抛出异常
alist = [1, 2, 3, 4]
print(alist.index(2))
print(alist.index(5))
删除元素
pop 方法可以删除最末尾的元素
alist = [1, 2, 3, 4]
alist.pop()
print(alist)
pop 方法按照下标删除
alist = [1, 2, 3, 4]
alist.pop(2)
print(alist)
remove 方法直接移除对应元素
alist = [1, 2, 3, 4]
alist.remove(2)
print(alist)
列表连接
+ 号连接 会生成一个新的列表,不会影响到旧列表
alist = [1, 2, 3, 4]
blist = [5, 6, 7]
print(alist + blist)
extend 方法连接,把一个列表拼接到另一个列表的后面
alist = [1, 2, 3, 4]
blist = [5, 6, 7]
alist.extend(blist)
print(alist)
print(blist)
元组
列表和元组是十分相似的,只是列表中存放的元素是可以修改的,而元组中存放的元素是在创建时就确定下来的不能修改
元组创建
atuple = ()
atuple = tuple()
元组支持:下标访问、切片操作、遍历、in、index、+ 等
元组不支持:修改元素、新增元素、删除元素、extend 等
字典
字典用于存储键值对,键 key 的类型可以是各种类型
创建字典
a = { }
b = dict()print(type(a))
print(type(b))
设置键值对
键值对之间使用 ' , ' 隔开
键与值之间使用 ' : ' 隔开
student = { 'id': 1, 'name': 'zhangsan' }
print(student)
查找元素
使用 in 判断 key 是否在字典中存在
student = {'id': 1,'name': 'zhangsan',
}print('id' in student)
print('score' in student)
使用 [ ] ,通过 key 获取 value
student = {
'id': 1,
'name': 'zhangsan',
}
print(student['id'])
print(student['name'])
新增/修改元素
使用 [ ] ,通过 key 修改 value,如果 key 不存在则在字典中新增该元素
student = {'id': 1,'name': 'zhangsan',
}student['score'] = 90
print(student)
student = {'id': 1,'name': 'zhangsan','score': 80
}student['score'] = 90
print(student)
删除元素
使用 pop 方法,通过 key 删除对应元素
student = {'id': 1,'name': 'zhangsan','score': 80
}student.pop('score')
print(student)
遍历字典元素
使用 for 循环,获取 key ,通过 key 访问 value
student = {'id': 1,'name': 'zhangsan','score': 80
}for key in student:print(key, student[key])
获取字典中的 key 和 value
使用 keys 方法可以返回一个类似元组的 dict_keys 类型,它会包含字典中的所有 key 值
student = {'id': 1,'name': 'zhangsan','score': 80
}print(student.keys())
使用 values 方法也是返回一个类似元组的 dict_values 特殊类型
student = {'id': 1,'name': 'zhangsan','score': 80
}print(student.values())
使用 items 方法,获取到字典内的所有键值对
student = {'id': 1,'name': 'zhangsan','score': 80
}print(student.items())
文件
打开文件
使用 open 函数打开文件
f = open('d:/test.txt', 'r')
第一个参数为路径
第二个参数为打开方式,' r ' 读、' w ' 写、' a ' 追加
关闭文件
使用 close 方法关闭打开的文件
f.close()
写文件
使用 write 方法将数据写入文件中
f = open('d:/test.txt', 'w')
f.write('hello')
f.close()
' r ' 方式使用 write 方法会报错,抛出异常
' w ' 方式使用 write 会覆盖原有的内容
' a ' 方式使用 write 在原本的内容后面追加内容
f = open('d:/test.txt', 'w')
f.write('hello')
f.close()f = open('d:/test.txt', 'a')
f.write('world')
f.close()
读文件
使用 read 方法从文件中读取数据
f = open('d:/test.txt', 'r')
result = f.read(2)
print(result)
f.close()
参数为读取多少个字符
多行文本可使用 for 循环一行一行读
f = open('d:/test.txt', 'r')
for line in f:
print(f'line = {line}')
f.close()
使用 readlines 将整个文件读取出来,返回一个列表
f = open('d:/test.txt', 'r')
lines = f.readlines()
print(lines)
f.close()
上下文管理器
上下文管理器可以关闭我们忘记关闭的文件
使用 with 语句打开文件,当 with 内的代码执行完毕后,就会自动关闭方法
with open('d:/test.txt', 'r', encoding='utf8') as f:lines = f.readlines()print(lines)相关文章:
【Python】基本语法
数据类型 通过 print(type(x)) 可以输出 x 的数据类型,type() 函数可以获取数据类型 整数 a 10 print(type(a)) 浮点数 a 0.5 print(type(a)) 字符串 a hello print(type(a)) 获取字符串长度 a hello print(len(a))字符串拼接 a hello b world prin…...
用栈实现队列(图示超详解哦)
全文目录引言用栈实现队列题目介绍思路简述实现栈的部分队列的部分创建队列判断队列是否为空在队列尾入在队列头出访问队头元素释放队列总结引言 在上一篇文章中,我们了解了用两个队列实现栈。在这篇问章中将继续介绍用两个栈实现队列的OJ练习: 用栈实现…...
Spring - Spring 注解相关面试题总结
文章目录01. Spring 配置方式有几种?02. Spring 如何实现基于xml的配置方式?03. Spring 如何实现基于注解的配置?04. Spring 如何基于注解配置bean的作用范围?05. Spring Component, Controller, Repository, Service 注解有何区别…...
【数据结构】实现二叉树的基本操作
目录 1. 二叉树的基本操作 2. 具体实现 2.1 创建BinaryTree类以及简单创建一棵树 2.2 前序遍历 2.3 中序遍历 2.4 后序遍历 2.5 层序遍历 2.6 获取树中节点的个数 2.7 获取叶子节点的个数 2.8 获取第K层节点的个数 2.9 获取二叉树的高度 2.10 检测值为val的元素是否…...
代码随想录算法训练营第五十二天| ● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组
300.最长递增子序列 看完题后的思路 dp[i] [0,i]子数组中,以nums[i]结尾的子序列的长度 dp[i]dp[j]1 j从i-1向0遍历,在所有nums[j]<nums[i]中dp[j]最大 初始化 dp[0]1 代码 class Solution {public int lengthOfLIS(int[] nums) {if (nums.length0){return 0;}int[] dpne…...
手机验证发送及其验证(基于springboot+redis)保姆级
在Java开发中,发送手机验证码时需要考虑以下几个问题: 验证码的有效期:验证码应该有一定的有效期,一般设置为几分钟或者十几分钟。过期的验证码应该被认为是无效的,不能用于验证用户身份。手机号码格式的校验…...
【JavaScript 逆向】数美滑块逆向分析
声明本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除!案例目标验证码:aHR0cHM6Ly93d3cuaXNodW1laS5jb20vbmV3L3Byb2R1Y3QvdHcvY29kZQ以上均做了脱敏处理,Base64 编码及解码方…...
多任务之线程
文章目录一、多任务是什么?二、多任务-线程四、通过继承Tread类完成创建线程五、资源竞争六、同步与互斥锁七、对峙与避免死锁一、多任务是什么? 多个函数同时执行一件事情就是多任务,没有多任务的时候任务执行都是按照顺序的,而…...
(数字图像处理MATLAB+Python)第二章数字图像处理基础-第二节:色度学基础与颜色模型
文章目录一:颜色匹配二:CIE 1931-RGB系统三:CIE 1931标准色度系统四:CIE 1976Lab均匀颜色空间五:孟塞尔表色系统(1)孟塞尔明度(Value,记为V)(2)孟塞尔彩度(Ch…...
【华为OD机试 2023最新 】 网上商城优惠活动(C++)
文章目录 题目描述输入描述输出描述备注用例题目解析C++题目描述 某网上商场举办优惠活动,发布了满减、打折、无门槛3种优惠券,分别为: 每满100元优惠10元,无使用数限制,如100199元可以使用1张减10元,200299可使用2张减20元,以此类推;92折券,1次限使用1张,如100元,…...
记一次CentOS 8 部署packstack部署OpenStack失败案例,请直接看最后
首先你需要一台安装好CentOS8 的虚拟机,相关参数如图。两块网卡,网卡1 NAT IP 192.168.100.100 GW192.168.100.2 网卡2 可不做配置。能ping通百度。创建完成虚拟机记得打好快照。 开机编辑基本配置环境变量 [rootlocalhost ~]# nmcli connection show NA…...
【2023春招】美团技术岗笔试10min+AK
随手投递了前端&移动端,笔试2道算法+选择+行测题(为什么笔试会有行测题?) 目录 T1-火车栈结构 题意 输入描述 输出描述 样例 AC_Code T2-春游...
Echarts实现图表自适应屏幕分辨率
一:简介 之前做项目的时候要实现echarts图表随浏览器窗口大小变化而改变,echarts本身提供了一个resize()方法,然后我们需要用一个函数实现浏览器窗口监听,最初我选用的是window.onresize方法,当页面只有一个图表时可以…...
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
相关链接 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二 1 题目 一.问题…...
【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式国赛客观题以及详细题解
题1 概念题。 USRAT:异步串口通信,常用于数据传输;SW-DP:SWD 的全称应该是 The Serial Wire Debug Port (SW-DP),也就是串行调试端口,是 >ARM 目前支持的两种调试端口之一;JTAG-DP:另一个调试…...
java中Map遍历的4种方式
目录 1、map.entrySet()方式 2、map.keySet()方式 3、map.values()方式 4、forEach方式 本文以如下map案例: Map<String, String> map new HashMap<>(); map.put("student1", "张三"); map.put("student2", "…...
GCC 编译器的主要组件和编译过程
主要组件: 分析器:分析器将源语言程序代码转换为汇编语言。因为要从一种格式转换为另一种格式(C到汇编),所以分析器需要知道目标机器的汇编语言。 汇编器:汇编器将汇编语言代码转换为CPU可以执行字节码。 …...
蓝桥杯冲刺 - week2
文章目录💬前言🌲day1最大和 (DP质因数分解)901. 滑雪 - 记忆化搜索🌲day21227. 分巧克力 - 二分🌲day31221. 四平方和 - 空间换时间1230. K倍区间🌲day41076. 迷宫问题 - 路径2017-迷宫-填空🌲day5848. 有…...
第十四届蓝桥杯三月真题刷题训练——第 20 天
目录 第 1 题:纸张尺寸 问题描述 输入格式 输出格式 样例输入1 样例输出1 样例输入 2 样例输出 2 运行限制 代码: 解析: 第 2 题:最大数字 第 3 题:全排列的价值_递推公式 问题描述 输入格式 输出格式…...
【C++】科普:C++中的浮点数怎么在计算机中表示?
这里我们以8.25这个数为例说明计算机时如何存取float类型的数据的: float a 8.25;引言 1. 所占位数 首先,明确一个概念,float类型的数据在常规计算机中通常占4个字节,也就是32位。其内存分布如图: 位字段说明所占位…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
