当前位置: 首页 > 后端技术 > Python

【Python入门指南】第3期.Python语言要素

时间:2023-03-26 17:44:16 Python

1.前言在上一篇文章中,我们已经了解了Python,也了解了Pycharm的安装和使用。现在是时候正式进入正题了,接下来就是学习Python的相关语法以及如何使用它们进行编程了。今天的主要内容是介绍Python中的以下知识点:变量数据类型运算符2.变量2.1什么是变量所谓变量一开始其实起源于数学。在计算机语言中,变量是指可以存储计算结果或表示值的抽象概念。我们可以通过变量名访问变量。在Python中,变量通常是可变的。它们不仅可以表示数字,还可以表示任何数据类型。2.2变量命名规则在Python中,变量是通过标识符来命名的,标识符是程序中用来命名变量、类和方法的符号。简单来说,标识符就是一个合法的名称。什么是合法名称?那么我们来看看Python中标识符的命名规则。在Python中,标识符必须以字母、下划线开头,后面可以跟任意数量的字母、数字和下划线,并且区分大小写。总结起来有以下几点:变量名只能包含字母、数字和下划线,并且只能以字母或下划线开头,不能以数字开头。例如,我们可以将一个变量命名为cunyu_1943,_cunyu1943,但不能命名为1943_cunyu;variable名称不能包含空格,但可以用下划线分隔。例如,可以命名为student_name,但不能命名为studentname;变量名应尽可能简短并具有描述性。比如我们的变量名是name,别人一看就知道这是表示名称,但是如果我们将它命名为n,可能要花更多的时间才能弄清楚它是什么意思;不要使用Python中的关键字和内置函数名作为变量名,Python中常见的关键字和内置函数如下;关键字描述和逻辑运算符as创建别名assert用于调试break跳出循环class定义类continue继续循环的下一次迭代def定义函数del删除对象elif用于条件语句,其中相当于inelseifelse用在条件语句除了处理异常,异常发生时如何执行False布尔值,比较运算的结果最终处理异常,不管是否有异常,a将执行一段代码for从导入模块的特定部分创建一个for循环global语句globalvariableif写入条件语句import导入一个模块in检查一个值是否存在于集合中,例如列表,元组等。is测试两个变量是否相等lambda创建一个匿名函数None表示空值nonlocal声明一个非局部变量非逻辑运算符ororlogicaloperatorpassnull语句,什么都不做的语句引发异常return退出函数并返回True布尔值,比较操作的结果try写一个try...except语句while创建一个while循环withisused简化异常处理yield结束函数,返回生成器内置函数abs()delattr()hash()memoryview()set()all()dict()help()min()setattr()any()dir()hex()next()slice()ascii()divmod()id()object()sorted()bin()enumerate()input()oct()staticmethod()bool()eval()int()打开()str()breakpoint()exec()isinstance()ord()sum()bytearray()filter()issubclass()pow()super()bytes()float()iter()print()tuple()callable()format()len()property()type()chr()frozenset()list()range()vars()classmethod()getattr()locals()repr()zip()compile()globals()map()reversed()__import__()complex()hasattr()max()round()3.数据类型要处理各种文本、图形、音频、视频等数据,仅仅使用数值类型是不够的,我们需要更多的数据类型用于定义不同的数据。在Python中,主要有以下几种数据类型:3.1Numbernumber数据类型用于存储值,是不可改变的数据类型。也就是说,每次更改数字数据类型时,都会分配一个新对象。当我们给变量赋值时,会创建number对象,如果要删除这些对象的引用,可以使用del语句;#createobjectnumber=1#deletethereferencedelnumberPython支持以下不同的数字类型;int:整数(??Python2.x有int和long,Python3.x只有int),可以处理任意大小的整数,支持常见的二进制、八进制、十进制和十六进制;float:浮点型,即数学中的小数。浮点数的小数点位置是可变的。不仅可以用数学计数法(456.78)表示,还支持科学计数法(4.5678e2);complex:复数类型,由实部和虚部组成,形式为a+bj的形式,与数学中的复数表示相同,只是将i改为j;3.2字符串是用单引号或双引号括起来的任何文本,如“cunyu1943”和'cunyu1943',也可以写成多行的形式(以三个单引号或三个双引号开头,以三个结尾单引号或三个双引号)'''公众号:HarukaMurasameblog:cunyu1943.site'''"""公众号:CunyuHarukablog:cunyu1943.site"""Python中的字符串有两个值顺序:索引从左到右,索引值从0开始,最大索引值为字符串长度减1;索引从右到左,索引值从-1开始,最大索引值是字符串的开头;如果我们想从字符串摘要中获取一个小的子串,可以使用[headsubscript:tailsubscript]来截取。注意左闭右开原则,即[headsubscript:tailsubscript]得到的子串包含head下标的字符,但不包含tail下标的字符;添加我们的strings='abcdef',那么不同方式索引的结果如下图所示:3.3listlist是一个有序的集合,可以随时增删元素,用[]标记,内部元素是以逗号分隔,元素可以是字符、数字、字符串等数据类型,是Python中最常用的复合数据类型。类似于字符串,也可以使用[headsubscript:tailsubscript]的方法截取对应的子列表。索引方法与字符串相同。示例如下:list中常用方法如下:方法说明len(list)listelementsnumberlist(seq)将元组转换为列表list.pop()删除list末尾的元素.pop(index)删除列表中索引位置为index的元素.insert(index,obj)将对象插入列表中的指定位置list.remove(obj)删除列表列表中第一次出现的值。reverse()反转列表中的元素list.index(obj)从列表中找到第一个匹配值的索引位置list.sort(cmp=None,key=None,reverse=False)执行原始列表排序,reverse=True降序,reverse=False升序(默认)如果我们要连接不同的列表,怎么办,这时候可以用+来连接不同的数组;>>>list1=[1,2,3]>>>list2=[4,5,6]>>>print(list2+list2)[1,2,3,4,5,6]如果我们想要某个列表要重复,我们可以使用*;>>>list1=[1,3,4]>>>print(list1*2)[1,3,4,1,3,4]3.4元组也是一个类似于list的有序列表,使用()标记,内部元素用逗号分隔。两者最大的区别之一是元组一旦初始化就不能再修改,相当于一个只读列表,所以元组没有append()、insert()等方法。喜欢列表;常用方法如下:方法说明len(tuple)统计元组元素个数tuple(seq)将列表转换为元组max(tuple)返回元组中元素的最大值min(tuple)返回最小值元组中元素的值如果我们要定义一个空元组,可以这样使用:tuple=()而如果元组中只有一个元素,为了避免歧义,通常需要定义为如下形式:t=(1,)3.5字典列表是对象的有序集合,而字典是对象的无序集合。字典用{}标记,元素用逗号分隔。每个元素由键:值组成。两者的区别在于字典中的元素是通过键值对访问的,而不是通过偏移量访问的。虽然字典的值可以是无限的,但是键是有限的。有两个要点要记住:同一个键不允许出现两次;键必须是不可变的,因此它可以是数字、字符串或元组,但不能使用列表;字典也有很多方法供我们使用,主要方法总结如下:方法说明len(dict)计算字典元素个数,即键的总数dictionarytype(variable)返回输入的变量类型,如果变量是字典,则返回字典类型dict.clear()删除字典中的所有元素dict.copy()返回字典的浅拷贝dict.haskey(key)如果键在字典dict中则返回True,否则返回Falsedict.get(key)返回指定键的值dict.keys()返回包含列表中所有键的字典dict.values()返回所有值在列表中的字典中dict.items()返回一个可遍历的(key,value)元组数组pop(key)删除字典中给定键key对应的值,返回值为删除的值popitem()返回并删除最后一对键和值e字典中的3.6BooleanBoolean只有True、False两个值,要么True,要么False。在Python中,布尔值可以直接用True和False表示,也可以通过布尔运算计算。>>>假假>>>3>2真4。运算符Python支持多种运算符,但运算符也有优先级。下表按优先级从高到低的顺序粗略列出了所有运算符。下面介绍运营商的类别;运算符说明**指数(最高优先级)~+-按位翻转,一元加减(最后两种方法命名为+@和-@)*/%//乘法、除法、取模和舍入+-加减法>><<右移、左移运算符&位'AND'`^`位运算符<=<>>=比较运算符<>==!=等于运算符=%=/=//=-=+=*=**=赋值运算符isisnotidentityoperatorinnotinmembershipoperatornotandorlogicaloperator4.1算术运算符假设变量a=10,b=20:运算符描述instance+plus-两个对象相加a+b输出结果30-minus-得到一个负数或一个数减去另一个数a-b输出结果-10*multiply-两个数相乘或返回一个重复几次的字符串a*b输出结果200/division-x除以yb/a输出结果2%modulo-返回除b的余数%a输出结果0**power-返回x的y次方,a**b为10到20次方,输出结果为100000000000000000000//四舍五入-返回商的整数部分(向下四舍五入)>>>9//24>>>-9//2-54.2比较运算符假设变量a=10、b=20:运算符说明Instance==Equals-比较对象是否相等(a==b)返回False!=NotEqual-比较两个对象是否不相等(a!=b)返回True<>notequal-比较两个对象是否不相等。python3已弃用。(a<>b)返回真。此运算符类似于!=>greaterthan-返回x是否大于y(a>b)返回False=greaterthanorequalto-returnswhetherxisgreaterthanorequaltoy(a>=b)returnsFalse<=lessthanorequalto-返回x是否小于或等于y(a<=b)返回True4.3赋值运算符假设变量a=10,b=20:运算符描述示例=简单赋值运算符c=a+b赋值的结果a+b运算对c+=加赋值运算符c+=a等价于c=c+a-=减法赋值运算符c-=a等价于c=c-a*=乘赋值运算符c*=a等价于c=c*a/=除法赋值运算符c/=a等价于c=c/a%=模赋值运算符c%=a等价于c=c%a**=求幂赋值运算符c\**=a等。对c=c**a//=整数除法赋值运算符c//=a等价于c=c//a4.4逻辑运算符假设变量a=10,b=20:operatorlogicexpressionDescriptioninstanceandxandyboolean"and"-如果x为False,则xandy返回False,否则返回y(aandb)的计算值返回20orxoryboolean"or"-如果x为非-0,返回x值,否则返回y的计算值(a或b)返回10notnotx布尔“非”-如果x为真,则返回假。如果x为False,则返回Truenot(aandb)returnsFalse4.5位运算符假设变量a=60,b=13:按位运算符将数转换为二进制进行计算,则a=00111100,b=00001101运算符描述实例&按位与运算:两个值参与运算,如果对应的两个位都为1,则该位的结果为1,否则为0(a&b)输出结果12,二进制解释:00001100``按位或运算符:只要对应的两个二进制位之一为1,则结果位为1`(ab)`输出结果61,二进制解释:00111101^按位异或或运算符:当对应的两个二进制位不同时,结果为1(a^b)输出结果为49,二进制解释:00110001~按位取反运算符:将数据的每个二进制位取反,即Turn1into0and0into1。~xlike-x-1(~a)输出-61,用二进制解释:11000011,有符号二进制数的二进制补码形式。<<左移运算符:将操作数的所有二进制位左移一定位数,移动的位数由<<右边的数字指定,高位舍弃,并且低位补0a<<2输出结果240,二进制解释:11110000>>右移运算符:将“>>”左边的操作数的二进制位全部右移一定数位数,>>右边的数字指定移动a的位数>>2输出结果15,二进制解释:000011114.6成员运算符运算符描述实例in如果在指定序列中找到值则返回True,否则返回False。x在y序列中,如果x在y序列中则返回True如果在指定序列中未找到值则返回True,否则返回False。x不在y的序列中,如果x不在y的序列中返回True4.7identityoperatoridentityoperator用于比较两个对象的存储单元:operatordescriptioninstanceisis是判断两个标识符是否引用一个objectxisy,类似于id(x)==id(y),如果指代同一个对象则返回True,否则返回Falseisnotnotis判断两个标识符是否指代不同的对象xisnoty,类似于id(a)!=id(b)。如果引用的不是同一个对象,则返回结果为True,否则返回为False。如果觉得我的文章对你有帮助,那就赶快关注我吧。另外,为了方便大家交流,我还创建了一个微信交流群。如果你也有兴趣加入,关注我的公众号(存玉瑶)回复群,我会手动拉你入群。