【Python】基础语法介绍

news2024/9/21 14:35:58

目录

一、标识符和关键字

二、注释

三、缩进

四、输入和输出

五、字符串操作

六、基本数据类型

七、复合数据类型

7.1 列表

7.2 元组

7.3 字典

7.4 集合

八、数据类型转换

九、运算符

8.1 算术运算符

8.2 比较运算符

8.3 赋值运算符

8.4 位运算符

8.5 逻辑运算符

8.6 成员运算符

8.7 身份运算符

十、分支和循环

10.1 if语句

10.2 for循环

10.3 while循环

十一、函数

十二、文件操作


提示:本文适合已经有编程基础的读者阅读,仅罗列Python中的语法,不对基础概念作讲解

一、标识符和关键字

标识符,即变量、方法、对象等的名字,由用户自己定义

  • Python中标识符不能以数字开头,由大小写字母、数字、下划线组成
  • 标识符对大小写敏感,A和a是两个不同的变量名
  • 在Python 3中,可以用中文作为变量名,同时允许非ASCII的标识符
  • 标识符不能和关键字相同

关键字,又称为保留字,是一个计算机语言中的预定义保留标识符

Python中一共有35个关键字,它们分别是:

Falseclassfromor
Nonecontinueglobalpass
Truedefifraise
anddelimportreturn
aselifintry
assertelseiswhile
asyncexceptlambdawith
awaitfinallynonlocalyield
breakfornot


二、注释

单行注释:以#开头,例如

# 这是单行注释

多行注释:以上下分别三个单引号或双引号包裹,例如

'''
这是多行注释
'''
"""
这也是多行注释
"""


三、缩进

Python不同于C++等语言,不需要用大括号括起来表示一个代码块

只要一段连续多行的代码有着相同的缩进空格数即为一个代码块,例如

如果在C++中的话,这三个print隶属于if语句下需要执行的代码,所以要用大括号括起来

但Python只需要保证这三条语句的缩进空格是一样的即可


四、输入和输出

Python中的 print 函数用于输出我们指定的内容

与C语言的 printf 和C++的 cin 不同,Python的 print 默认在内容的最后会自带换行,例如:

如果想要取消默认换行,则需要在最后加上 end="" ,例如

Python中的 input 函数用于读取我们键盘输入的内容,其用法如下:

在 input 中可以输入我们预先想要打印出来的内容,当然也可以什么都不输入

然后会读取我们键盘输入的内容给等号左侧的变量

需要注意,input接受输入的时候得到的结果实际上是字符串


五、字符串操作

前面提到,字符串是由字符组成的序列,用单引号或双引号括起来都行

一个字符串中的每个字符都有一个索引(下标),第一个字符对应的索引为0,往后逐渐递增

我们可以通过方括号+索引的形式来单独取出字符串中的单词,例如:

还有一种操作叫切片,即通过指定一个起始索引和一个结束索引来提取指定区间的子字符串,例如

可以看到,索引从1到2的子字符串就被“切”出来了。同时可以观察到,子字符串中不包含我们指定的结束索引,所以子字符串的区间范围是左闭右开

关于字符串的拼接操作也很简单,使用加号就可以将两个字符串拼成一个字符串,例如:

除了两个字符串相加,还可以通过将一个字符串乘以一个正数的方式重复某个字符串,例如:


六、基本数据类型

Python中一共有这些数据类型: 

a = 1  # 整型变量
b = 1.1  # 浮点型变量
c = True  # bool型变量
d = "hello"  # 字符串
e = [1, 2, 3]  # 列表
f = (1, 2, 3)  # 元组
g = {1, 2, 3}  # 集合
h = {1: 1, 2: 2, 3: 3}  # 字典

Python中不论是单个字符还是一串字符,其类型都是字符串

 

其中下面的复合数据类型列表、元组、集合和字典在后面会细讲,这里先见个面

Python中的变量不需要声明类型,这也是和C++等语言不同之处

相对的,每个变量在声明的同时必须赋值。在Python中,变量就是变量,没有类型,只是它内部存储的对象有类型

当然,还有一些不太常见的类型,例如复数:


七、复合数据类型

7.1 列表

Python中的列表类似于C/C++中的数组,最大的区别在于其内部可以混杂不同类型的元素,例如:

可以看到,列表中混杂了整型、浮点型、bool型、字符串和列表,不仅如此,还可以加入元组等

列表的特征是方括号,其内部每个元素都有一个索引,第一个元素的索引为0,往后递增

我们也可以通过方括号和索引来修改其内部元素,例如:

列表也支持切片操作,例如:

列表也支持拼接操作,例如:

列表也支持乘以一个数,这里不演示了 

7.2 元组

元组与列表类似,区别在于元组内部的元素不可被修改,例如:

但是元组内部的列表可以被修改,像这样:

元组的特征是小括号

元组也支持切片操作,例如:

元组也支持拼接操作,例如:

 

元组也支持乘以一个数,这里不演示了  

7.3 字典

字典是一个key/value模型的容器,其内部也一样可以存储不同类型的键值对,例如:

字典没有下标,不过我们可以通过key来访问或修改其对应的value值,像这样:

字典中不能出现两个相同的key,但是可以出现相同的value

字典不支持切片、拼接和乘法 

7.4 集合

把字典去掉value值就变为了集合

集合的特点是去重,即其内部不会有两个相同的元素,例如我们打印上面的这个集合

可以看到True不见了,这是因为True等价于1,那么1就出现了两次,所以会去掉一个

集合不支持切片、拼接和乘法


八、数据类型转换

在C++中,如果我们要显式的将一个类型转换为另一个类型,可以像这样:

float a = 1.1;
int b = (int)a;

在变量的前面加上类型即可

Python中的类型转换也是这样,不过括号括住的不是类型而是变量,例如:

a = 1.1
b = int(a)

前面提到,input接受输入的时候得到的结果实际上是字符串,所以如果我们想实现读入两个数字并相加,则需要配合类型转换来实现,例如:

另外,在C++中字符也是整型家族的一员,其值为这个字符的ASCII码

但是Python中,如果我们把一个整型和一个字符相加则会导致错误,因为Python中只有字符串没有字符类型

但是我们可以通过显式的类型转换把数字串转化为整型,例如:


九、运算符

Python中的运算符大部分和C/C++差不多,不过有一部分还是有区别的

8.1 算术运算符

运算符描述
+加 - 两个对象相加
-减 - 得到负数或是一个数减去另一个数
*乘 - 两个数相乘或是返回一个被重复若干次的字符串
/除 - x除以y(非整除)
%取模 - 返回除法的余数
**幂 - 返回x的y次幂
//取整除 - 返回商的整数部分(向下取整

8.2 比较运算符

运算符描述
==等于 - 比较对象是否相等
!=不等于 - 比较两个对象是否不相等
<>不等于 - 比较两个对象是否不相等(python3 已废弃)
>大于 - 返回x是否大于y
<小于 - 返回x是否小于y
>=大于等于 - 返回x是否大于等于y
<=小于等于 - 返回x是否小于等于y

8.3 赋值运算符

运算符描述
=简单的赋值运算符
+=加法赋值运算符
-=减法赋值运算符
*=乘法赋值运算符
/=除法赋值运算符
%=取模赋值运算符
**=幂赋值运算符
//=取整除赋值运算符

8.4 位运算符

运算符描述
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
^按位异或运算符:当两对应的二进位相异时,结果为1
~按位取反运算符:将二进制表示中的每一位取反,0变为1,1变为0
<<左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

8.5 逻辑运算符

运算符逻辑表达式描述
andx and yx和y都为真,整个表达式结果才为真,否则为假
orx or yx和y都为假,整个表达式结果才为假,否则为真
notnot xx为真,整个表达式结果为假;x为假,整个表达式结果为真

例如:

8.6 成员运算符

运算符描述
in如果在指定的序列中找到值返回 True,否则返回 False
not in

如果在指定的序列中没有找到值返回 True,否则返回 False

例如:

8.7 身份运算符

运算符描述
is判断两个变量引用对象是否为同一个(同一块内存空间)
is not判断两个变量引用对象是否为不同一个(同一块内存空间)


十、分支和循环

10.1 if语句

Python中的if语句和C/C++不同之处在于,if后的表达式不需要用括号括住,表达式后面需要带冒号

例如:

另外,C/C++中的else if在Python中也变为了elif,例如:

10.2 for循环

相比C/C++中的for循环,Python中的for循环只需要声明变量和循环的范围即可,例如:

range起到的作用就是创建一个序列,区间依旧是左闭右开

如果range省略第一个数则默认区间从0开始

我们也可以将range换为列表等

 

 for循环的语法为:

for <var> in <sequence>:

        <statements> 

也就是说,只要<var>在<sqeuence>中,就执行下列<statements>中的语句 

10.3 while循环

Python中的while循环和C/C++中的也类似,同样还是去掉括号并加上冒号


十一、函数

def 函数名(参数):

        函数体

        return ...

要定义一个函数,首先得以def关键字为开头,后接函数名和圆括号,括号内为需要的参数

例如写一个判断奇数的函数:


十二、文件操作

在Python中要想对一个文件进行操作,首先得打开这个文件

open函数用于打开一个文件,并返回一个file对象,其常用形式是接收两个参数:文件路径和模式

文件路径即我们需要打开的文件路径,模式则有很多个:

模式描述
r以只读方式打开文件。这是默认模式
r+打开一个文件用于读写
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写

打开文件成功后会返回一个file对象,我们可以对这个file对象做一系列的操作,例如:

  • file.readline():读取一整行
  • file.readlines([size]) :返回包含size行的列表, size未指定则返回全部行
  • file.read([size]):从文件读取指定的字节数
  • file.write(str):将字符串写入文件(需要对应打开模式)
  • f.close():关闭文件,一个文件被打开后最终也要被关闭

例如我们有一个在同目录下名为text.txt的文件,里面写了一句hello。我们以只读方式打开它

还有一种打开文件的方法可以省略手动关闭文件的操作,像这样:

如果文件有多行,我们可以用readlines返回一个包含了多行字符串的列表,然后用for循环遍历列表即可一次读取多行文件内容

关于Python的语法介绍就写到这,基本已经包含了大部分的基础语法内容了

如有错误欢迎在评论区指出

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

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

相关文章

网络编程day1

一、思维导图 网络基础

wordpress全局自适应网址导航整站打包源码,含主题和数据库

wordpress全局自适应网址导航整站打包源码&#xff0c;含主题和数据库。直接恢复就可以使用了。 这个是自适应的布局设计&#xff0c;体验还不错。用网址导航是可以的。 代码免费下载&#xff1a;百度网盘

golang for range time.Ticker 和 time.Timer时间通道使用示例 - 每隔指定时间执行一次,执行指定时长后退出执行

golang中的 ticker和timer时间通道除了可以使用for select case语句来执行外&#xff0c; 还可以使用 for range语句来执行ticker或者timer时间通道。 for range time.Ticker 和 time.Timer时间通道使用示例 下面的示例演示了time.Ticker 和 time.Timer的区别和使用演示。 Ti…

《向量数据库指南》——向量数据库技术积累与商业机会

一豪:Charles提到了一个关键点,就是RAG技术结合模型对非结构化数据的理解和搜索能力,甚至可以很好地架接在传统结构化数据的解决方案中。作为向量数据库的核心技术点,对数据本身特别是非结构化数据的向量化、精炼和压缩,我相信Zilliz等公司有很多独门技巧和技术积累。随着…

UE基础 —— 编辑器界面

菜单栏 UE中每个编辑器都有一个菜单栏&#xff0c;部分菜单会出现在所有编辑器窗口中&#xff0c;如File、Window、Help&#xff0c;其他则是其编辑器特有的&#xff1b; 主工具栏 UE中部分最常用的工具和命令的快捷方式&#xff1b; 1&#xff0c;保存按钮&#xff08;ctrls&a…

NIO线程模型

NIO线程模型主要涉及以下几个方面&#xff1a; 一、基本概念 NIO&#xff08;New Input/Output&#xff09;是Java的一种新的输入输出模型&#xff0c;也被称为非阻塞IO。其核心特点是数据读写操作均是非阻塞的&#xff0c;即在进行读写操作时&#xff0c;若数据未准备好&…

Python第三方库——mrjob的介绍

一、简介 mrjob 是一个强大的 Python 库&#xff0c;它允许开发者以 Pythonic 的方式编写 MapReduce 作业&#xff0c;并在多种环境下运行这些作业&#xff0c;包括本地机器、Hadoop 集群、Amazon Elastic MapReduce (EMR) 和 Google Cloud Dataproc。通过使用 mrjob&#xff…

ARTS Week 37

Algorithm 本周的算法题为 1232. 缀点成线 给定一个数组 coordinates &#xff0c;其中 coordinates[i] [x, y] &#xff0c; [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断&#xff0c;这些点是否在该坐标系中属于同一条直线上。 示例 1:输入&#xff1a;coordinates …

8月9日笔记

8月9日笔记 什么是代理? “代理”通常指的是“网络代理”&#xff0c;它是一种特殊的网络服务&#xff0c;允许一个网络终端&#xff08;一般为客户端&#xff09;通过这个服务与另一个网络终端&#xff08;一般为服务器&#xff09;进行非直接的连接。代理服务器作为中间人…

【中项】系统集成项目管理工程师-第11章 项目范围管理-11.3定义范围

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

PHP利用PCRE回溯次数

目录 原理 例子 来一道题&#xff08;2018i春秋圣诞欢乐赛官方WriteUp&#xff09; 利用php弱语言特性解题 利用回溯 原理 对于一串正则表达式来说它匹配了一系列的字符串后自身的正则还没有用完&#xff0c;这个时候就会触发回溯机制&#xff0c;超过回溯次数正则匹配就失…

【代码故事】VSCode知名主题material-theme仓库代码清空

大家好&#xff0c;我是前端之虎陈随易。 这是我的个人网站 https://chensuiyi.me。 出大事了 看到了一篇前端社区开源扛把子 Anthony Fu 的帖子。 经过一番了解&#xff0c;出大事了&#xff01; 知名 VSCode 主题 material-theme 仓库清空了&#xff01; 连带着所有提交…

【MySQL】1.MySQL基本操作

目录 一、MySQL数据库登陆 1、设置环境变量 2、cmd命令登陆数据库 二、基本操作语法 1、显示数据库——SHOW 2、使用/选择数据库——USE 3、删除——DROP 4、创建——CREATE 5、查看表结构——DESC 6、数据操作——增删改查 &#xff08;1&#xff09;增/插入&#…

SpringCloud-gateway编码实现路由策略的自动刷新,动态路由

文章目录 一、概述1、背景2、实现思路 二、编码实现1、nacos配置刷新公共类2、自定义RouteDefinition3、route缓存类4、动态更新路由网关service5、动态路由加载类 三、测试 一、概述 1、背景 gateway可以配置路由断言过滤器&#xff0c;但是通常一个微服务体系下&#xff0c…

KCTF 闯关游戏:1 ~ 7 关

前言 看雪CTF平台是一个专注于网络安全技术竞赛的在线平台&#xff0c;它提供了一个供网络安全爱好者和技术专家进行技术交流、学习和竞技的环境。CTF&#xff08;Capture The Flag&#xff0c;夺旗赛&#xff09;是网络安全领域内的一种流行竞赛形式&#xff0c;起源于1996年…

虚拟机Linux系统字体太小怎么办?

每次用虚拟机的Linux系统时&#xff0c;都觉得字体小得伤眼睛&#xff0c;所以就尝试找了下&#xff0c;没想到可以直接用大号字体&#xff0c;这感觉好多啦~ 这里针对centOS的图形界面&#xff0c;非常简单&#xff0c;见下面的图&#xff1a; 应用程序 --> 系统工具 --&…

ELK三个开源软件的工作原理

一、Elasticsearch Elasticsearch的工作原理主要涉及其数据处理、索引机制、查询过程以及集群管理等方面。一下是对Elasticsearch工作原理的详细解析&#xff1a; 1. 数据处理 1.1 数据导入 Elasticsearch支持多种数据源&#xff0c;包括直接输入、通过Logstash和Beats等工具…

js日期处理库--dayjs

js中处理日期是一件比较麻烦的事情&#xff0c;这里推荐使用day.js库来处理&#xff0c;文档:Day.js中文网 引入库 如果没有引入过dayjs,需要先执行npm install,然后import就能使用了 npm install dayjs import dayjs from dayjsconsole.log(dayjs().format()) 如果使用的…

leetcode日记(67)单词搜索

太坑了&#xff01;老是时间超限&#xff0c;不是时间超限就是内存超限&#xff01; 思路很简单&#xff0c;就是先遍历整个网格寻找开头&#xff0c;然后上下左右搜寻找下一个字母&#xff0c;引用递归。 最终看边答案边写出来的&#xff1a; class Solution { public:bool …

36-《茅膏菜》:自然奇境中的捕虫艺术家

茅膏菜 腺毛闪烁诱昆虫&#xff0c;粘液缠绕捕食成。 绿叶如网藏陷阱&#xff0c;茅膏菜展捕虫情。 中文名&#xff1a;茅膏菜 拉丁名&#xff1a;Drosera peltata Thunb. 别名&#xff1a;捕虫草、落地珍珠、一粒金丹、苍蝇草、珍珠草 科属&#xff1a;茅膏菜科茅膏菜属 生…