【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位。其内存分布如图: 位字段说明所占位…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
