【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位。其内存分布如图: 位字段说明所占位…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

【Vue】scoped+组件通信+props校验
【scoped作用及原理】 【作用】 默认写在组件中style的样式会全局生效, 因此很容易造成多个组件之间的样式冲突问题 故而可以给组件加上scoped 属性, 令样式只作用于当前组件的标签 作用:防止不同vue组件样式污染 【原理】 给组件加上scoped 属性后…...
记一次spark在docker本地启动报错
1,背景 在docker中部署spark服务和调用spark服务的微服务,微服务之间通过fegin调用 2,问题,docker容器中服务器来后,注册中心都有,调用服务也正常,但是调用spark启动任务后报错,报错…...
【Java基础】向上转型(Upcasting)和向下转型(Downcasting)
在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系 和 多态。 向上转型(Upcasting) ⬆️ 定义 将 子类对象 赋值给 父类引用(自动完成,无需强制转换&…...

claude3.7高阶玩法,生成系统架构图,国内直接使用
文章目录 零、前言一、操作指南操作指导 二、提示词模板三、实战图书管理系统通过4o模型生成系统描述通过claude3.7生成系统架构图svg代码转换成图片 在线考试系统通过4o模型生成系统描述通过claude3.7生成系统架构图svg代码转换成图片 四、感受 零、前言 现在很多AI大模型可以…...
qt 双缓冲案例对比
双缓冲 1.双缓冲原理 单缓冲:在paintEvent中直接绘制到屏幕,绘制过程被用户看到 双缓冲:先在redrawBuffer绘制到缓冲区,然后一次性显示完整结果 代码结构 单缓冲:所有绘制逻辑在paintEvent中 双缓冲:绘制…...