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

【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 的数据类型&#xff0c;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…...

用栈实现队列(图示超详解哦)

全文目录引言用栈实现队列题目介绍思路简述实现栈的部分队列的部分创建队列判断队列是否为空在队列尾入在队列头出访问队头元素释放队列总结引言 在上一篇文章中&#xff0c;我们了解了用两个队列实现栈。在这篇问章中将继续介绍用两个栈实现队列的OJ练习&#xff1a; 用栈实现…...

Spring - Spring 注解相关面试题总结

文章目录01. Spring 配置方式有几种&#xff1f;02. Spring 如何实现基于xml的配置方式&#xff1f;03. Spring 如何实现基于注解的配置&#xff1f;04. Spring 如何基于注解配置bean的作用范围&#xff1f;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开发中&#xff0c;发送手机验证码时需要考虑以下几个问题&#xff1a; 验证码的有效期&#xff1a;验证码应该有一定的有效期&#xff0c;一般设置为几分钟或者十几分钟。过期的验证码应该被认为是无效的&#xff0c;不能用于验证用户身份。手机号码格式的校验&#xf…...

【JavaScript 逆向】数美滑块逆向分析

声明本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01;案例目标验证码&#xff1a;aHR0cHM6Ly93d3cuaXNodW1laS5jb20vbmV3L3Byb2R1Y3QvdHcvY29kZQ以上均做了脱敏处理&#xff0c;Base64 编码及解码方…...

多任务之线程

文章目录一、多任务是什么&#xff1f;二、多任务-线程四、通过继承Tread类完成创建线程五、资源竞争六、同步与互斥锁七、对峙与避免死锁一、多任务是什么&#xff1f; 多个函数同时执行一件事情就是多任务&#xff0c;没有多任务的时候任务执行都是按照顺序的&#xff0c;而…...

(数字图像处理MATLAB+Python)第二章数字图像处理基础-第二节:色度学基础与颜色模型

文章目录一&#xff1a;颜色匹配二&#xff1a;CIE 1931-RGB系统三&#xff1a;CIE 1931标准色度系统四&#xff1a;CIE 1976Lab均匀颜色空间五&#xff1a;孟塞尔表色系统&#xff08;1&#xff09;孟塞尔明度(Value&#xff0c;记为V)&#xff08;2&#xff09;孟塞尔彩度(Ch…...

【华为OD机试 2023最新 】 网上商城优惠活动(C++)

文章目录 题目描述输入描述输出描述备注用例题目解析C++题目描述 某网上商场举办优惠活动,发布了满减、打折、无门槛3种优惠券,分别为: 每满100元优惠10元,无使用数限制,如100199元可以使用1张减10元,200299可使用2张减20元,以此类推;92折券,1次限使用1张,如100元,…...

记一次CentOS 8 部署packstack部署OpenStack失败案例,请直接看最后

首先你需要一台安装好CentOS8 的虚拟机&#xff0c;相关参数如图。两块网卡&#xff0c;网卡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实现图表自适应屏幕分辨率

一&#xff1a;简介 之前做项目的时候要实现echarts图表随浏览器窗口大小变化而改变&#xff0c;echarts本身提供了一个resize()方法&#xff0c;然后我们需要用一个函数实现浏览器窗口监听&#xff0c;最初我选用的是window.onresize方法&#xff0c;当页面只有一个图表时可以…...

【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一

相关链接 【2023年第十一届泰迪杯数据挖掘挑战赛】B题&#xff1a;产品订单的数据分析与需求预测 建模及python代码详解 问题一 【2023年第十一届泰迪杯数据挖掘挑战赛】B题&#xff1a;产品订单的数据分析与需求预测 建模及python代码详解 问题二 1 题目 一&#xff0e;问题…...

【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式国赛客观题以及详细题解

题1 概念题。 USRAT&#xff1a;异步串口通信&#xff0c;常用于数据传输&#xff1b;SW-DP&#xff1a;SWD 的全称应该是 The Serial Wire Debug Port (SW-DP),也就是串行调试端口&#xff0c;是 >ARM 目前支持的两种调试端口之一&#xff1b;JTAG-DP&#xff1a;另一个调试…...

java中Map遍历的4种方式

目录 1、map.entrySet()方式 2、map.keySet()方式 3、map.values()方式 4、forEach方式 本文以如下map案例&#xff1a; Map<String, String> map new HashMap<>(); map.put("student1", "张三"); map.put("student2", "…...

GCC 编译器的主要组件和编译过程

主要组件&#xff1a; 分析器&#xff1a;分析器将源语言程序代码转换为汇编语言。因为要从一种格式转换为另一种格式&#xff08;C到汇编&#xff09;&#xff0c;所以分析器需要知道目标机器的汇编语言。 汇编器&#xff1a;汇编器将汇编语言代码转换为CPU可以执行字节码。 …...

蓝桥杯冲刺 - week2

文章目录&#x1f4ac;前言&#x1f332;day1最大和 (DP质因数分解)901. 滑雪 - 记忆化搜索&#x1f332;day21227. 分巧克力 - 二分&#x1f332;day31221. 四平方和 - 空间换时间1230. K倍区间&#x1f332;day41076. 迷宫问题 - 路径2017-迷宫-填空&#x1f332;day5848. 有…...

第十四届蓝桥杯三月真题刷题训练——第 20 天

目录 第 1 题&#xff1a;纸张尺寸 问题描述 输入格式 输出格式 样例输入1 样例输出1 样例输入 2 样例输出 2 运行限制 代码&#xff1a; 解析&#xff1a; 第 2 题&#xff1a;最大数字 第 3 题&#xff1a;全排列的价值_递推公式 问题描述 输入格式 输出格式…...

【C++】科普:C++中的浮点数怎么在计算机中表示?

这里我们以8.25这个数为例说明计算机时如何存取float类型的数据的&#xff1a; float a 8.25;引言 1. 所占位数 首先&#xff0c;明确一个概念&#xff0c;float类型的数据在常规计算机中通常占4个字节&#xff0c;也就是32位。其内存分布如图&#xff1a; 位字段说明所占位…...

Linux 多线程:多线程和多进程的对比

目录一、多进程优缺点二、多线程优缺点三、使用多执行流的场景在多任务处理中&#xff0c;我们既可以使用多进程&#xff0c;也可以使用多线程。但多进程和多线程并不是随意选择的&#xff0c;因为它们应对的场景不同&#xff0c;优缺点也不同。 一、多进程优缺点 多进程就是在…...

IO流你了解多少

IO流你了解多少 &#x1f3e0;个人主页&#xff1a;shark-Gao &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是shark-Gao&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f389;目前状况&#xff1a;23届毕业生&#xff0c;目前在某公…...

【C++】C++ 11 新特性之auto关键字

文章目录类型别名的思考auto简介auto关键字的特性类型别名的思考 随着程序越来越复杂&#xff0c;程序中用到的类型也越来越复杂&#xff0c;经常体现在&#xff1a; 类型难于拼写含义不明确导致容易出错 #include <string> #include <map> int main() {std::ma…...

nodejs的后端框架egg,thinkjs,nestjs,nuxtjs,nextjs对比

1. Egg.js&#xff1a;优点&#xff1a;Egg.js是一个基于Koa的Node.js企业级应用开发框架&#xff0c;它提供了完整的开发规范和一套稳定性和安全性较高的架构体系&#xff0c;能够帮助开发者快速构建高可用、高性能的应用程序。同时&#xff0c;Egg.js还提供了很多自定义插件和…...

SpringBoot @SpringBootTest 无法启动服务

这几天在看Hikari、Druid连接池。按照网上代码写Junit测试类。当时代码如下: package com.ceaning.crudp.utils;import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; impo…...

PyTorch深度学习实战 | 神经网络的优化难题

即使我们可以利用反向传播来进行优化&#xff0c;但是训练过程中仍然会出现一系列的问题&#xff0c;比如鞍点、病态条件、梯度消失和梯度爆炸&#xff0c;对此我们首先提出了小批量随机梯度下降&#xff0c;并且基于批量随机梯度下降的不稳定的特点&#xff0c;继续对其做出方…...

如何缩小pdf文件的大小便于上传?在线压缩pdf工具推荐

​平时在工作、学习时我们经常都需要用到pdf文件&#xff0c;那么当遇上需要将pdf压缩大小的时候&#xff0c;该使用哪种pdf压缩&#xff08;https://www.yasuotu.com/pdfyasuo&#xff09;方式呢&#xff1f;今天分享一个在线压缩pdf的方法&#xff0c;需要的小伙伴一起来了解…...

使用C++编写一个AVL的增删改查代码并附上代码解释

//qq460219753提供其他代码帮助 #include <iostream> using namespace std;struct Node {int data;Node *left;Node *right;int height; };// 获取结点高度 int height(Node *node) {if (node nullptr){return 0;}return node->height; }// 获取两个数中较大的一个 i…...

React/ReactNative 状态管理: redux-toolkit 如何使用

有同学反馈开发 ReactNative 应用时状态管理不是很明白&#xff0c;接下来几篇文章我们来对比下 React 及 ReactNative 状态管理常用的几种框架的使用和优缺点。 上一篇文章介绍了 redux 的使用&#xff0c;这篇文章我们来看下 redux 的升级版&#xff1a;redux-toolkit。 下…...

14基于双层优化的电动汽车优化调度研究

说明书 MATLAB代码&#xff1a;基于双层优化的电动汽车优化调度研究 关键词&#xff1a;双层优化 选址定容 输配协同 时空优化 参考文档&#xff1a;《考虑大规模电动汽车接入电网的双层优化调度策略_胡文平》中文版 《A bi-layer optimization based temporal and sp…...

微信平台的微网站怎么做/在线培训平台有哪些

Linux下C语言访问Oracle数据库Demo[日期&#xff1a;2011-01-13] 来源&#xff1a;Linux社区 作者&#xff1a;dadlyduke前提条件1. Linux环境已经存在&#xff0c;安装好了Oracle本demo 运行环境本地环境 RedHat LINUX AS 4 ,ORACLE 10G本地数据库sid orcl,ip:127.0.0.1,用户名…...

房门户网站如何做优化/app如何推广以及推广渠道

springboot mybatis项目&#xff0c;想要打印sql语句&#xff0c;可以直接下载Mybatis Log Plugin插件&#xff0c;下载后重启下idea&#xff0c;然后配置文件中添加logging.level.cndebug配置即可。注意&#xff0c;这里的cn&#xff0c;是个包名&#xff0c;如果你的包名是co…...

青岛地产网站建设/内容营销的4个主要方式

游戏运行库大全 游戏运行环境 所有游戏组件 32位 64位系统常用运行库合集 3DM游戏常用运行库安装包 下载 本安装包集成32位和64位运行库&#xff0c;是目前互联网上最新最全的常用运行库合集&#xff0c;能自动识别系统版本以提供适合您的组件&#xff0c;无人值守自动安装。总…...

专做童车批发的网站/互联网销售怎么做

利用 curl 和 pycurl 需要 curl 和 libcurl 的版本高于 7.18.0&#xff0c;并且事先建立好可的代理&#xff0c;例如用 SSH 建立 SOCKS5 代理&#xff1a; [ nobody www ~] $ sshusername omehost.com -CN-f-D127.0.0.1:1080curl 使用方法 [ nobody www ~] $ curl http:// tw…...

怎么进入公众号后台/百度seo优化分析

静态JS和POSTMAN下可直接使用的SM2签名验签功能。 0. 目录1. 前言2. JS工具脚本3. 测试用例4. Links1. 前言 相较于笔者的大部分博文&#xff0c;本文只是提供一个现成的工具&#xff0c;因此废话少说&#xff0c;直入主体。 2. JS工具脚本 将以下内容拷贝到 POSTMAN的 pre-…...

seo关键词外包公司/新网站排名优化怎么做

CSS 变量 CSS 变量 var() 函数用于插入 CSS 变量的值。 CSS 变量可以访问 DOM&#xff0c;这意味着您可以创建具有局部或全局范围的变量&#xff0c;使用 JavaScript 来修改变量&#xff0c;以及基于媒体查询来修改变量。 使用 CSS 变量的一种好方法涉及设计的颜色。您可以…...