Python基础语法1:注释与输入输出、变量与简单数据类型、运算符与表达式、条件判断与循环
Python是一个大家都很熟悉的语言,由于Python语法简单、免费开源、各种三方库,很多专业都有学习应用,GIS专业也是,不论是ArcGIS还是QGIS等,都对Python有广泛的支持,所以我们学习Python其实主要是软件应用层面的应用编程。最近闲下来没事,打算略微系统的学习一下Python基础,我的学习笔记是参考《尚硅谷Python视频教程,0基础入门学习python,轻松掌握python》:https://www.atguigu.com/video/296/,由于我并不是0基础,所以笔记中并不是记录了尚硅谷课程所有的内容。
第一部分介绍基础入门内容,分支、循环、数据类型、函数、文件操作等。
1、注释与输入输出
(1)注释
块注释:以#开始,建议后面加一个空格;
行内注释:也是以#开始,建议后面加上两个个空格;
多行注释:用 一对连续的三个引号(单引号和双引号均可),或在编译器中选中多行代码,使用Ctrl+/ 注释 。
(2)print()函数
print()函数的具体参数定义为:print(*objects , sep=' ' , end='\n' , file=None , flush=False )
,其中objects是具体的对象,sep定义了分割符号,end定义结尾,默认是使用\n
换行;file定义了输出保存的文件,如果要把输出保存到某一个文件,经常会与open
、close
等函数一起使用,以写入模式(w
)打开文件,打印后再关闭文件;flush设置了是否刷新,默认不刷新,将内容先缓存到内存中,如果同时设置了写入某文件并刷新,则会立刻把内容刷新存储到该文件中,并不会先缓存到内存中。
(3)格式化输出
如果希望输出文字信息的同时,一起输出数据,就需要使用到 格式化操作符;使用的%被称为格式化操作符,包含 %
的字符串,被称为 格式化字符串;print("格式化字符串" % (变量1, 变量2...))
。
格式化字符 | 含义 |
---|---|
%s | 字符串 |
%d | 有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全 |
%f | 浮点数,%.2f 表示小数点后只显示两位 |
%% | 输出 % |
(4)变量输入
变量输入主要是使用input
函数获取键盘上的输入,输入的内容会被定义为字符串,字符串变量 = input("提示信息:")
,
(5)IPO模型
IPO 模型是一种常用的程序设计方法,其名称代表了 Input-Process-Output(输入-处理-输出)三个
步骤。它强调了程序的流程和数据流动,可以帮助程序员更清晰地思考问题和编写代码。IPO 模型包
括以下几个步骤:
• 输入(Input):确定程序需要的输入数据,并且定义输入数据的格式、范围和验证方式。
• 处理(Process):确定要进行的计算或功能操作,编写相应的算法和程序代码,并且测试确保其
正确性。
• 输出(Output):指定程序的输出结果和格式,并且确保输出符合要求和预期
2、变量与简单数据类型
(1)变量与常量
变量用来存储数据,需要在定义后使用;常量是程序运行过程中,值不改变的量,一般是使用大写表示常量。
变量的命名往往使用与内容相关的名称,例如name或者year来命名 姓名和年份变量;变量名、函数名被称为标识符。标识符可以由 字母、下划线 和 数字 组成,不能以数字开头,不能与关键字重名。
关键字 就是在 Python 内部已经使用的标识符,具有特殊的功能或者含义。常用的关键字如下:
变量命名规则仅仅是一种惯例,目的是为了 增加代码的识别和可读性。在 Python 中,如果 变量名 需要由 二个 或 多个单词 组成时,可以按照以下方式命名:每个单词都使用小写字母,单词与单词之间使用 _下划线 连接。
此外,可以使用驼峰命名法。小驼峰式命名法:第一个单词以小写字母开始,后续单词的首字母大写;大驼峰式命名法:每一个单词的首字母都采用大写字母。
Python中变量不需要指定数据类型,除了使用type函数外,还可以使用isinstance
函数来测试和判断数据类型。isinstance()
函数是 Python 中的一个内置函数,基本用法为:isinstance(object, classinfo)
,其中object 是要检查的对象,classinfo 是要检查的类或类型,可以是类对象、类型对象或者由它们组成的元组。
(2)简单数据类型
Python中的简单数据类型主要是整型、浮点型、布尔型、字符串。
整型即整数,浮点型即小数,布尔型包括True和False两种,在python中能够解释为假的值有:None、0、0.0、False、所有的空容器(空列表、空元组、空字典、空集合、空字符串)。
字符串即一串字符,用一对引号括起来表示,常用的字符串运算包括:字符串加法和字符串乘法,字符串加法即字符串的拼接,字符串乘法即字符串的重复。
Python中字符串索引从0开始计数,使用字符串索引可以截取字符串。
字符串类型可以进行转换,常用的包括:
函数名 | 函数值 |
---|---|
int(x, [基数] ) | 将数字或字符串转换为整数,如果x为浮点数,则自动截断小数部分 ;这里的基数是表示进制,默认10进制。 |
float(x) | 将整型等转换成浮点型 |
bool(x) | 转换成bool类型 的True或 False |
str(x) | 将x转换成字符串 |
(3)小整数的地址问题
Python中的小整数,通常指的是-5至256之间的整数。
当你在Python中创建一个整数对象时,Python会根据该整数的值动态地为其分配内存空间。对于小整数,Python会使用一种称为“小整数缓存”的机制来优化内存使用,这个缓存池中的整数对象会被重复利用,而不是为每个新创建的小整数分配新的内存空间。这样可以减少内存分配和释放的开销,提高程序的性能。
如果你需要跟踪Python对象的内存地址,可以使用Python提供的内置函数id()
来获取对象的唯一标识符,这个标识符通常可以用来近似地表示对象的内存地址。但是请注意,这个标识符并不是真正的内存地址,而是由Python解释器生成的一个唯一标识符,用于区分不同的对象实例。
3、运算符与表达式
算术运算符即常用的数学公式中使用的运算符号,除了加减乘除外,还有整除//
,取余数%
,几次幂**
;
赋值运算符是用来赋值,除了常用的等于、加等、减等,还有乘等于,除等于,整除等于,取余数等于;
位运算符是把数字转为二进制后,进行相关的操作,包括了按位与运算符&
(参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0),或运算符|
,异或运算符^
(当两对应的二进位相异时,结果为1),取反~
,左移<<
与右移运算符>>
;
关系运算符用于比较大小、是否相等等;逻辑运算符是:和、或、非;成员运算符包括in
与not in
表示是否在指定的序列范围内;身份运算符is
与is not
表示是否是一个对象。
运算符具有一定的优先级:
4、条件判断
条件判断常用的即if语句,还包括if-else结构、if-elif-else结构,以及嵌套循环等。Python 3.10及以后版本中引入了新特性:match
,用于模式匹配,允许你根据对象的模式来检查对象,并执行相应的代码块。
match语句中的每个代码块由一个或多个case子句组成,每个case子句后面跟着一个模式和一个代码块。当模式匹配成功时,会执行相应的代码块;如果没有任何模式匹配成功,则可以选择使用一个默认的代码块,使用下划线_来表示。
match与if的对比:
if语句是最基本的条件控制结构,用于基于条件测试执行不同的代码块;if语句在处理简单条件和分支时非常有用;可以使用elif(else if)来添加额外的条件分支。if语句不支持模式匹配,只能基于布尔表达式进行条件判断。
match语句是Python 3.10及以后版本引入的新特性,主要用于模式匹配。match语句允许根据对象的模式结构来检查对象,并根据匹配的模式执行相应的代码块;特别适用于处理复杂的数据结构,如元组、列表、字典等,以及自定义类的实例,它通过模式匹配提供了更简洁、更直观的方式来处理复杂的条件逻辑。
5、循环
在循环中,还可以使用pass
语句表示一个空操作,在执行时没有任何的响应,pass的位置最终应该有代码来执行,只不过暂时写不出来。但是只能跳过距离最近的for或者while循环,不是结束循环或者跳出多层循环。