Python语法(全)

前言:

下面是Python基本的语法,大家耐心观看!


1.基础语法

1.1字面量

字面量:在代码中,被写下来的的固定的值,称之为字面

1.2字符串

字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串

字符串的引号嵌套

单引号定义法,可以内含双引号

双引号定义法,可以内含单引号

可以使用转移字符(\)来将引号解除效用,变成普通字符串

字符串拼接

注意:拼接仅限于拼接字符串

字符串格式化

"%s\%d\%f" % (表达式、表达式、表达式)

字符串格式化(快速)

f”{变量}  {变量}”的方式进行快速格式化

此方法精度和类型自动识别

格式化的精度控制

表达式格式化

字符串大小比较

ASCII码表

字符串是按位比较,也就是一位位进行对比,只要有一位大,那么整体就大

1.3注释

1.4变量

1.5数据类型

type语句

1.6数据类型转换

数据类型转换,将会是我们以后经常使用的功能。

如:

从文件中读取的数字,默认是字符串,我们需要转换成数字类型

后续学习的input()语句,默认结果是字符串,若需要数字也需要转换

将数字转换成字符串用以写出到外部系统 等等

注意:

1. 任何类型,都可以通过str(),转换成字符串

2. 字符串内必须真的是数字,才可以将字符串转换为数字

3.浮点数转整数会丢失小数部分

1.7标识符

标识符:用户编写代码时,对变量、类、方法等编写的名字,叫做标识符

Python中,

标识符命名的规则主要有:

内容限定

大小写敏感

不可使用关键字

不推荐使用中文

不可以数字开头

下面是常用关键字

1.8运算符

算数(数学)运算符

赋值运算符

1.9数据输入(input)

注意:无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型

1.10空格缩进

Python中默认4个空格为一个归属

在嵌套中尤为注意

2.判断语句

2.1布尔类型

2.2比较运算符

2.3 if语句

应用:

2.4 if else语句

应用:

2.5 if elif else语句

应用:

简写:

2.6判断语句的嵌套

应用:

3.循环语句

3.1 while循环的基础语法

应用:

注意:

条件需提供布尔类型结果,True继续,False停止

空格缩进不能忘

请规划好循环终止条件,否则将无限循环

3.2 while循环的嵌套应用

应用:

注意:

同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进,基于空格缩进来决定层次关系

注意条件的设置,避免出现无限循环(除非真的需要无限循环)

3.3 for循环的基础语法

应用:

3.4 for循环的嵌套应用

应用:

3.5 range语句

应用:

3.6变量作用域

3.6 whlie循环和for循环相互嵌套

3.7 continue和break关键字

语句 print("小美,我喜欢你") 不会执行

遇到break 循环直接结束  则不会运行语句  j += 1

4.函数

4.1函数的定义

函数:是组织好的,可重复使用的,用来实现特定功能的代码段

4.2函数的参数

注意:

传入参数的数量是不受限制的

可以不使用参数 也可以仅使用任意N个参数

4.3函数的返回值

返回值的定义

应用:

None类型

None可以主动使用return返回,效果等同于不写return语句

应用:

4.4函数的声明文档

在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档

4.5函数的嵌套调用

执行结果:

4.6变量的作用域

局部变量

全局变量

global关键字

作用:在函数等内部修改全局变量

使用前:

使用后:

4.7函数多返回值

当函数进行到第一个return 时,函数会直接结束并返回第一个return,不会返回第二个return

如果想要返回多个值,只需要按照返回值的顺序,写对应顺序的多个变量接收即可

注意:支持不同类型的数据return

4.8函数多种传参方式

位置参数

作用:调用函数时根据函数定义的参数位置来传递参数

注意:传递的参数和定义的参数的顺序及个数必须一致

关键字参数

作用:函数调用时通过“键=值”形式传递参数

注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

缺省参数(默认函数)

作用:缺省参数用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用

当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值

注意: 函数调用时,如果向缺省参数传值则修改默认参数值, 否则使用这个默认值

位置传递

传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型

关键字传递

参数是“键=值”形式的形式的情况下, 所有的“键=值”都会被kwargs接受, 同时会根据“键=值”组成字典

4.9匿名函数

函数作为参数传递

在test_func函数内部,传入compute函数,完成了对数字的计算操作

注意:计算逻辑的传递,而非数据的传递(先进行test_func再进行compute)

lambda匿名函数

函数的定义中

def 关键字,可以定义带有名称的函数

lambda 关键字,可以定义匿名函数(无名称)

有名称的函数,可以基于名称重复使用

无名称的匿名函数,只可临时使用一次

应用:

注意:只能写一行,无法写多行代码,且是临时的只能使用一次

5.数据容器

数据容器:一种可以存储多个元素的Python数据类型

Python中数据容器有:list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)

5.1 list列表

列表的定义

列表内的每一个数据,称之为元素

以 [ ]  作为标识

列表内每一个元素之间用, 逗号隔开

应用:

列表支持嵌套:

列表的下标索引

列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增

应用:

列表的反向下标索引

应用:

嵌套列表的下标索引

应用:

列表的常用操作

列表提供了一系列功能: 插入元素 删除元素 清空列表 修改元素 统计元素个数

列表的特点

5.2 tuple元组

元组的定义

元组最大特点:元组一旦定义完成,就不可修改

元组支持嵌套

注意:

元组只有一个数据,这个数据后面要添加逗号

元组的常用操作

应用:

注意:如果强行修改元组内容,会报错

元组的特点:

可以容纳多个数据

可以容纳不同类型的数据(混装)

数据是有序存储的(下标索引)

允许重复数据存在 不可以修改(增加或删除元素等)

支持for循环

5.3 str字符串

字符串的定义

字符串可以完成一些与列表、元组相同的操作

字符串的常用操作

字符串的特点

只可以存储字符串

长度任意(取决于内存大小)

支持下标索引

允许重复字符串存在

不可以修改(增加或删除元素等)

支持for循环

5.4序列

序列的定义

序列是指:内容连续、有序,可使用下标索引的一类数据容器 列表、元组、字符串,均可以可以视为序列

语法:

序列的常用操作:切片

切片:从一个序列中,取出一个子序列

操作:

注意:

此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)

应用:

5.6 set集合

集合的定义

语法:

集合的常用操作

集合的特点

可以容纳多个数据

可以容纳不同类型的数据(混装)

数据是无序存储的(不支持下标索引)

不允许重复数据存在

可以修改(增加或删除元素等)

支持for循环

5.7 dict(字典、映射)

字典的定义

语法:

使用{}存储原始,每一个元素是一个键值对

每一个键值对包含Key和Value(用冒号分隔)

键值对之间使用逗号分隔

Key和Value可以是任意类型的数据(key不可为字典)

Key不可重复,重复会对原有数据覆盖

应用:

字典的嵌套

字典内容的获取

字典的常用操作

字典的特点

可以容纳多个数据

可以容纳不同类型的数据

每一份数据是KeyValue键值对

可以通过Key获取到Value,Key不可重复(重复会覆盖)

不支持下标索引

可以修改(增加或删除更新元素等)

支持for循环,不支持while循环

5.8 数据容器的对比

基于各类数据容器的特点,它们的应用场景如下:

列表:一批数据,可修改、可重复的存储场景

元组:一批数据,不可修改、可重复的存储场景

字符串:一串字符串的存储场景

集合:一批数据,去重存储场景

字典:一批数据,可用Key检索Value的存储场景

5.9容器通用功能

6.文件操作

6.1文件的编码

编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容

计算机中有许多可用编码:

UTF-8

GBK

Big5 等

不同的编码,将内容翻译成二进制也是不同的

UTF-8是目前全球通用的编码格式 除非有特殊需求,

否则,一律以UTF-8格式进行文件编码即可

6.2文件的读取

open()打开函数

使用open函数,可以打开一个已经存在的文件,或者创建一个新文件

语法:

mode常用的三种基础访问模式

文件的常用操作

6.3文件的写入

操作案例

注意:

1.直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区

2.当调用flush的时候,内容会真正写入文件 这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)

3.文件如果不存在,使用”w”模式,会创建新文件

4.文件如果存在,使用”w”模式,会将原有内容清空

6.4文件的追加

操作案例

注意:

a模式,文件不存在会创建文件

a模式,文件存在会在最后,追加写入文件

7.总结

以上就是 Python基础语法的全部内容,Pyhton作为一个脚本语言,有着很大很多很方便的功能,希望大家认真学习!

作者留言:一部分内容资源为网络资源,如有侵权,及时沟通

创作时间:2024.5.25

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

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

相关文章

nss做题

[NCTF 2018]签到题 1.f12在index.php中找到flag [NSSCTF 2022 Spring Recruit]ezgame 1.在js源码中就有flag [UUCTF 2022 新生赛]websign 1.打开环境后发现ctrlu和右键,f12都被禁用了。两种方法,第一种:禁用js;第二中提前打开…

vue 表单些某项 v-if 控制后,想在显示时添加验证

效果: 可以为<el-form-item>添加 key 然后prop正常写就行 (key需要唯一值) <el-form-item label"设置" v-if"advanced_setting" key"threshold" prop"threshold"><el-inputv-model"form_Warning.threshold"p…

关于burp的intruder返回包空白问题

记录一下被自己蠢笑的问题 burp返回包为空怎么办&#xff0c;在查询无果后经过多次试验&#xff0c;确实没有效果 看那三个点还以为加载呢&#xff0c;攻击完了怎么一个显示没有 于是…… 鼠标到三个点&#xff0c;往下一拉 哈哈哈哈哈哈哈&#xff0c;真是被自己给蠢到了

[5] CUDA线程调用与存储器架构

CUDA线程调用与存储器架构 前几节简单讲了如何编写CUDA程序&#xff0c;利用GPU的处理能力并行执行多个线程和块。之前所有程序里的线程是相互独立的&#xff0c;没有多个线程之间的通信多是实际应用程序需要中间线程之间的通信&#xff0c;本文将仔细讲解线程调用以及CUDA的分…

@JsonFormat注解出现日期序列化以及反序列化问题(日期比实际日期少一天)

文章目录 前言一、场景如下所示二、问题分析三、JsonFormat注解是什么以下是 JsonFormat 注解的一些常用属性&#xff1a; 四、解决问题解决方式&#xff1a;只需要指定对应的时区就好效果如下&#xff1a; 五、JsonFormat 注解时出现日期问题总结 前言 在一次的偶然机会下发现…

Python基于PyQt6制作GUI界面——按钮

示例对应的制作的 ui文件 界面如下所示。 <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Form</class><widget class"QWidget" name"Form"><property name"geom…

ColossalAI Open-Sora 1.1 项目技术报告 (视频生成)

项目信息 项目地址&#xff1a;https://github.com/hpcaitech/Open-Sora技术报告&#xff1a; Open-Sora 1&#xff1a;https://github.com/hpcaitech/Open-Sora/blob/main/docs/report_01.mdOpen-Sora 1.1&#xff1a;https://github.com/hpcaitech/Open-Sora/blob/main/docs…

swift中json和字典Dict或者数组相互转换,JSONSerialization的强大使用

在Swift中&#xff0c;你可以使用JSONSerialization类将JSON字符串转换为字典。要将 Swift 字典转换为 JSON 字符串&#xff0c;我们可以使用JSONSerialization类的data(withJSONObject:options:)方法。这个方法将字典转换为二进制数据&#xff0c;然后我们可以使用String(data…

Day23:Leetcode:530.二叉搜索树的最小绝对差 + 501.二叉搜索树中的众数 + 236. 二叉树的最近公共祖先

LeetCode&#xff1a;530.二叉搜索树的最小绝对差 问题描述 解决方案&#xff1a; 1.思路 中序遍历 2.代码实现 class Solution {int pre;int ans;public int getMinimumDifference(TreeNode root) {ans Integer.MAX_VALUE;pre -1;dfs(root);return ans;}public void d…

Unity射击游戏开发教程:(26)创建绕圈跑的效果

unity游戏 在本文中,我将介绍如何为敌人创建圆周运动。gif 中显示的确切行为是敌人沿着屏幕向下移动,直到到达某个点,一旦到达该点,它就会绕圈移动。

从浮点数定义到FP8: AI模型中不同的数据类型

背景&#xff1a;AI模型中不同的数据类型对硬件算力和内存的需求是不同的&#xff0c;为了提高模型在硬件平台的吞吐量&#xff0c;减少数据通信带宽需求&#xff0c;往往倾向于将高位宽数据运算转向较低位宽的数据运算。本文通过重新回顾计算机中整数和浮点数的定义&#xff0…

HCIP-Datacom-ARST自选题库__ISIS简答【3道题】

1.IS-1S是链路状态路由协议&#xff0c;便用SPF算法进行路由计算。某园区同时部署了IPv4和IPV6井运行IS-IS实现网络的互联互通&#xff0c;如图所示&#xff0c;该网络IPv4和IPV6开销相同&#xff0c;R1和R4只支持IPV4。缺省情况下&#xff0c;计算形成的IPv6最短路径树中&…

python数据分析——字符串和文本数据2

参考资料&#xff1a;活用pandas库 1、字符串格式化 &#xff08;1&#xff09;格式化字符串 要格式化字符串&#xff0c;需要编写一个带有特殊占位符的字符串&#xff0c;并在字符串上调用format方法向占位符插入值。 # 案例1 varflesh wound s"Its just a {}" p…

solidworks画螺母学习笔记

螺母 单位mm 六边形 直径16mm&#xff0c;水平约束&#xff0c;内圆直径10mm 拉伸 选择两侧对称&#xff0c;厚度7mm 拉伸切除 画相切圆 切除深度7mm&#xff0c;反向切除 拔模角度45 镜像切除 倒角 直径1mm 异形孔向导 螺纹线 偏移打勾&#xff0c;距离为2mm…

java:static关键字用法

在静态方法中不能访问类的非静态成员变量和非静态方法&#xff0c; 因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。 从上面代码里看出&#xff1a; 1.静态方法不能调用非静态成员变量。静态方法test2()中调用非静态成员变量address&#xff0c;编译失败…

从容应对亿级QPS访问,Redis还缺少什么?no.29

众所周知&#xff0c;Redis 在线上实际运行时&#xff0c;面对海量数据、高并发访问&#xff0c;会遇到不少问题&#xff0c;需要进行针对性扩展及优化。本课时&#xff0c;我会结合微博在使用 Redis 中遇到的问题&#xff0c;来分析如何在生产环境下对 Redis 进行扩展改造&…

算法金 | Dask,一个超强的 python 库

本文来源公众号“算法金”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;Dask&#xff0c;一个超强的 python 库 1 Dask 概览 在数据科学和大数据处理的领域&#xff0c;高效处理海量数据一直是一项挑战。 为了应对这一挑战&am…

滑动菜单栏

效果如下&#xff1a; NavigationView 新建menu布局,表示菜单栏的选项 <menu xmlns:android"http://schemas.android.com/apk/res/android"> <group android:checkableBehavior"single"> <item android:id"id/navCall" android…

海外CDN加速方式

随着全球化经济的进一步推进和互联网时代的到来&#xff0c;给对外贸易行业带来了巨大的商机&#xff0c;众多传统的贸易公司都纷纷建立起自已的外贸网站或服务站点等各种信息化平台&#xff0c; 相当多的贸易公司也从他们所构建的平台中得到了很高的利益&#xff0c;然而由于当…

医疗科技:UWB模块为智能医疗设备带来的变革

随着医疗科技的不断发展和人们健康意识的提高&#xff0c;智能医疗设备的应用越来越广泛。超宽带&#xff08;UWB&#xff09;技术作为一种新兴的定位技术&#xff0c;正在引领着智能医疗设备的变革。UWB模块作为UWB技术的核心组成部分&#xff0c;在智能医疗设备中发挥着越来越…