找回密码
 会员注册
查看: 29|回复: 0

Python语法及入门(超全超详细)专为Python零基础一篇博客让你完全掌握Python语法

[复制链接]

8

主题

0

回帖

25

积分

新手上路

积分
25
发表于 2024-9-9 21:00:16 | 显示全部楼层 |阅读模式
前言:本篇博客超级详细,请尽量使用电脑端结合目录阅读阅读时请打开右侧“只看目录” 方便阅读一、什么是Python1.1Python的诞生1989年,为了打发圣诞节假期,GudiovanRossum吉多·范罗苏姆(龟叔)决心开发一个新的解释程序(Python雏形)1991年,第一个Python解释器诞生Python这个名字,来自龟叔所挚爱的电视剧MontyPython'sFlyingCircus 1.2为什么学习Python 简单易学、全球第一、优雅、应用场景丰富(就业方向多) 1.3Python的应用场景 1.4Python环境及软件的安装 请移步其他博客,此篇博客主要讲述Python语法 软件的安装会在后一段时间再发表新博客二、Python的基础语法2.1字面量2.1.1什么是字面量在代码中,被写下来的固定的值(数据),叫做字面量"abcd"13.6'运行运行2.1.2字面量类型同时也是值(数据)类型2.1.3什么是字符串注:先简单提出概念,方便写简易的代码,后续字符串有详解字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串如:"abcde""世界真美好""123456大揭秘"都是字符串Python中,字符串需要用双引号("字符串内容")包围起来被引号包围起来的,都是字符串注:实际使用字符串时,无论是单引号,双引号,还是三引号都可以即:字符串有三种不同的定义方式 三引号定义法,表示在一堆三个双引号的范围内,均是字符串(可以换行),如下:2.2基础Python语句体验Python特点2.2.1printprint相当于C语言中的printf,用法些许类似如:print("abc")print(123)print("9277万物可爱")'运行运行 运行结果:abc1239277万物可爱 需要注意的是,单独输出常数和变量时,不需要使用引号2.2.2Python语句格式与C的区别首先,python语句不需要以分号结尾,而是以每一行作为区分,有点像每一行末尾处都加了分号(当然,实际不是,也不相同)代码缩进:在C中,代码的缩进只影响代码的可读性和美观,不影响实际使用而在python中,代码缩进控制着不同函数相互间的嵌套和归属Python通过缩进判断代码块的归属关系。大括号格式:Kernighan和Ritchie格式(Kb&R格式) 当大括号内需要有多行语句,左侧的大括号与语句同行,不再另一分行stu_score_dict={#回车符对字典间的元素无影响"王力鸿":{"语文":77,"数学":66,"英语":33},"周杰轮":{"语文":88,"数学":86,"英语":55},"林俊节":{"语文":99,"数学":96,"英语":66}}print(f"学生的考试信息是:{stu_score_dict}")'运行运行由上图可以看出左侧大括号并未独自占一行注:Python语句和C语句之间还有很多区别,后续会逐步发掘2.3注释注释:在程序代码中对程序代码进行解释说明的文字。作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。 2.3.1单行注释单行注释:通过#号定义,在#号右侧的所有内容均作为注释以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用 注:#号和注释内容一般建议以一个空格隔开单行注释一般用于对一行或一小部分代码进行解释2.3.2多行注释以一对三个双引号引起来 """注释内容"""  来解释说明一段代码的作用使用方法 注:多行注释可以换行 多行注释一般对:Python文件、类或方法进行解释2.3.3关于注释的面试题1.单行注释中能否使用多行注释?可以,但实际使用时敲下回车键会跳转下一行并自动蹦出#  实际没有三引号的太多关系2.多行注释中能否使用单行注释?可以,但无论使用还是不使用,结果都完全一致3.多行注释中能否使用多行注释?不可以,三引号之间会就近匹配2.4变量  2.4.1什么是变量变量:在程序运行时,能储存计算结果或能表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的2.4.2变量的定义格式 如:a=10'运行运行待处理位置print语句如何输出多份内容?print(内容1,内容2,......,内容N)和那个加号的区别2.5数据类型(初识)2.5.1入门款三种输入类型目前在入门阶段,我们主要接触如下三类数据类型: string、int、float这三个英文单词,就是类型的标准名称。2.5.2type()语句当某个数据编写的令人迷惑时,问题来了,如何验证数据的类型呢?我们可以通过type()语句来得到数据的类型:语法:type(被查看类型的数据) 使用方式:1.在print语句中,直接输出类型信息:print(type("云边有个小卖部"))print(type(123))print(type(11.345))'运行运行 运行结果:  2.用变量存储type()的结果(返回值):type_1=type("云边有个小卖部")type_2=type(123)type_3=type(11.345)print(type_1)print(type_2)print(type_3)'运行运行运行结果: 2.5.3变量有类型么答:变量无类型我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?查看的是:变量存储的数据的类型。因为,变量无类型,但是它存储的数据有。2.6类型转换数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等2.6.1常见的转换语句同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值)我们可以用print直接输出或用变量存储结果值 2.6.2类型转换注意事项类型转换不是万能的,毕竟强扭的瓜不甜,我们需要注意:1.任何类型,都可以通过str(),转换成字符串2.字符串内必须真的是数字,才可以将字符串转换为数字 浮点数转整数会丢失精度,也就是小数部分 2.7标识符是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。 2.7.1标识符命名规则Python中,标识符命名的规则主要有3类:•内容限定•大小写敏感•不可使用关键字标识符命名规则1—— 内容限定标识符命名中,只允许出现:•英文•中文•数字•下划线(_)这四类元素。其余任何内容都不被允许。注意:1.不推荐使用中文      2.数字不可以开头标识符命名规则2——大小写敏感以定义变量为例:Andy=“安迪1”andy=“安迪2”字母a的大写和小写,是完全能够区分的。标识符命名规则3 ——不可使用关键字Python中有一系列单词,称之为关键字关键字在Python中都有特定用途我们不可以使用它们作为标识符常见的关键字有: 2.7.2变量的命名规范变量命名规范 —— 见名知意变量的命名要做到:•明了:尽量做到,看到名字,就知道是什么意思a="张三"                              name=''张三''b=11                                 age=11•简洁:尽量在确保“明了”的前提下,减少名字的长度 a_person_name="张三"                     name="张三" 很明显,大多数情况下,都是右侧的命名规范更合适一些变量命名规范 ——下划线命名法多个单词组合变量名,要使用下划线做分隔。firstnumber=1studentnickname="小明" first_number=1student_nickname="小明" 很明显,下面的两个变量命名更合适一些2.8运算符 2.8.1算术运算符 算术运算符的演示: 2.8.2赋值运算符 2.8.3复合赋值运算符 2.9字符串拓展引号的嵌套:•可以使用转移字符(\)来将引号解除效用,变成普通字符串•单引号内可以写双引号或双引号内可以写单引号 2.9.1字符串拼接使用“+”号连接字符串变量或字符串字面量即可name="阿蛮"print("这位青年的名字叫做"+name+",他今年18岁了")'运行运行字符串无法和非字符串变量进行拼接    因为类型不一致,无法接上name="阿蛮"age=18print("这位青年的名字叫做"+name+"年龄周岁是"+age) 2.9.2字符串格式化当变量过多时,我们会发现上述的字符串拼接并不好用,由此引出字符串格式化这个方法。name="CSDN"message="学IT就来%s"%nameprint(message)'运行运行其中的,%s•% 表示:我要占位•s  表示:将变量变成字符串放入占位的地方所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置多个变量占位,变量要用括号括起来,并按照占位的顺序填入:数字也能用%s占位吗?可以的哦,这里是将数字转换成了字符串哦也就是数字57,变成了字符串"57"被放入占位的地方Python中,其实支持非常多的数据类型占位,最常用的是如下三类:如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位(演示): 2.9.3格式化的精度控制我们可以使用辅助符号"m.n"来控制数据的宽度和精度•m,控制宽度,要求是数字(很少使用),若设置的宽度小于数字自身,不生效•.n,控制小数点精度,要求是数字,会进行小数的四舍五入示例:•%5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。•%5.2f:表示将宽度控制为5,将小数点精度设置为2     小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为.35       (此处需要注意的是小数点本身也是占一个宽度的,然后有些朋友可能下去也试了print("%4.2f"%11.345)这段代码,发现输出是11.35,带上小数点是有5个宽度的,这是怎么回事呢?简单解释就是编译器在格式化时,如果格式化代码出现问题,会根据语义进行了代码优化,不然你试试下面这个代码print("%1.2f"%11.345),会发现输出依然是11.35,足以证实)        %.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35 体验代码: 2.9.4字符串格式化方法二 通过语法:f"内容{变量}"的格式来快速格式化演示代码: 这种写法不做精度控制,也不理会类型,适用于快速格式化字符串2.9.5表达式的格式化什么是表达式?表达式:一条具有明确执行结果的代码语句如:1+1、5*2,就是表达式,因为有具体的结果,结果是一个数字又或者,常见的变量定义:name=“张三”    age=11+11等号右侧的都是表达式呢,因为它们有具体的结果,结果赋值给了等号左侧的变量。 演示代码: 在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码哦 2.10数据输入input()函数•使用input()语句可以从键盘获取输入•使用一个变量接收(存储)input语句获取的键盘输入数据即可•要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型print("请问你是谁")name=input()print(f"Get!!!你是{name}")'运行运行绿色字体内容是需要我们主动从键盘输入的数据,input接收的便是我们输入的内容 input()语句其实是可以在要求使用者输入内容前,输出提示内容的哦,方式如下:name=input("请问你是谁")print(f"Get!!!你是{name}")'运行运行 三、Python判断语句3.1布尔类型bool布尔(bool)表达现实生活中的逻辑,即真和假•True表示真•False表示假。True本质上是一个数字记作1,False记作0 布尔类型也是字面量,也可以用变量存储3.2比较运算符布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。比较运算的表达式返回值是布尔类型result=10>5print(f"10>5的结果是{result},类型是{type(result)}")'运行运行  3.3if语句3.3.1if语句的基础语法格式归属于if判断的代码语句块,需在前方填充4个空格缩进Python通过缩进判断代码块的归属关系。 演示代码:age=int(input())#将字符串转换为整型print(f"我今年已经{age}岁了")ifage>=18:print("我已经成年了")print("即将步入大学生活")print("时间过得真快")'运行运行如果age=18 如果age=10  3.3.2if语句的注意事项•判断条件的结果一定要是布尔类型•不要忘记判断条件后的:引号•归属于if语句的代码块,需在前方填充4个空格缩进 3.4ifelse语句if条件:  满足条件的执行语句1  满足条件的执行语句2  ...省略...else:  不满足条件的执行语句1  不满足条件的执行语句2  ...省略... 代码演示:•if和其代码块,条件满足时执行•else搭配if的判断条件,当不满足的时候执行 ifelse语句的注意事项:•else不需要判断条件,当if的条件不满足时,else执行•else的代码块,同样要4个空格作为缩进 3.5 ifelifelse语句使用场景:某些场景下,判断条件不止一个,可能有多个。elif类似于C中的elseifif条件一:  满足条件一的执行语句1  满足条件一的执行语句2  ...省略...elif条件二:  满足条件二的执行语句1  满足条件二的执行语句2  ...省略...elif条件三:  满足条件三的执行语句1  满足条件三的执行语句2  ...省略...else:  不满足条件的执行语句1  不满足条件的执行语句2  ...省略...演示代码:  用input语句精简代码: 注意事项•elif可以写多个•判断是互斥且有序的,上一个满足后面的就不会判断了•可以在条件判断中,直接写input语句,节省代码量3.6判断语句的嵌套3.6.1语法格式if 条件一:  条件一满足时的执行语句1  条件一满足时的执行语句2  if条件二:    条件二满足时的执行语句1    条件二满足时的执行语句2第二个if,属于第一个if内,只有第一个if满足条件,才会执行第二个if3.6.2嵌套的关键点嵌套的关键点,在于:空格缩进通过空格缩进,来决定语句之间的:层次关系3.6.3演示代码四、Python的循环语句4.1while循环4.1.1while循环的基础语法while条件:  执行语句1  执行语句2  ...省略... 每次进入循环后,将执行语句全部执行完毕后再次来到判断,如果条件依然成立,则继续进入循环,以此类推,直到条件不成立,跳出循环注意事项:•条件需提供布尔类型结果,True继续,False停止•空格缩进不能忘•请规划好循环终止条件,否则将无限循环4.1.2演示代码i=0whilei无返回值的函数,实际上就是返回了:None这个字面量None表示:空的、无实际意义的意思函数返回的None,就表示,这个函数没有返回什么有意义的内容。也就是返回了空的意思。None可以主动使用return返回,效果等同于不写return语句: returnNoneNone的应用场景: None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。•用在函数无返回值上•用在if判断上•在if判断中,None等同于False•一般用于在函数中主动返回None,配合if判断做相关处理•用于声明无内容的变量上•定义变量,但暂时不需要变量有具体值,可以用None来代替例如:name=None 5.4函数的说明文档函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。我们可以给函数添加说明文档,辅助理解函数的作用。语法如下:•:param用于解释参数•:return用于解释返回值    通过多行注释的形式,对函数进行说明解释    •内容应写在函数体之前在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档 5.5函数的嵌套调用所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数 执行过程: 如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次函数A执行的位置注:其实函数调用非常简单,和正常使用函数无太大区别,多写几段代码就明白了5.6变量的作用域变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)主要分为两类:局部变量和全局变量 5.6.1局部变量所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量 演示代码:  变量a是定义在`testA`函数内部的变量,在函数外部访问则立即报错.5.6.2全局变量 所谓全局变量,指的是在函数体内、外都能生效的变量思考:如果有一个数据,在函数A和函数B中都要使用,该怎么办?答:将这个数据存储在一个全局变量里面 当全局变量和局部变量发生冲突时,优先使用局部变量 5.6.3global关键字☆使用global关键字可以在函数内部声明变量为全局变量,如下所示 若不声明,则num=100因为: 当全局变量和局部变量发生冲突时,优先使用局部变量 六、数据容器6.1数据容器入门数据容器是什么什么是数据容器?一种可以存储多个元素的Python数据类型 学习数据容器,就是为了批量存储或批量使用多份数据Python中的数据容器:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。数据容器根据特点的不同,如:•是否支持重复元素•是否可以修改•是否有序,等分为5类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict) 6.2list列表6.2.1列表的定义基本语法:字面量[元素1,元素2,元素3,元素4,...]定义变量变量名称=[元素1,元素2,元素3,元素4,...]定义空变量变量名称=[]变量名称=list()列表内的每一个数据,称之为元素以[]作为标识列表内每一个元素之间用,逗号隔开元素的数据类型没有任何限制,甚至元素也可以是列表,这样就定义了嵌套列表演示代码:name1_list=['欧阳无双','上官婉儿','tom','black']print(name1_list)也可以嵌套: name2_list=[['red','green'],['bule','white'],name1_list]print(name2_list)'运行运行  6.2.2列表的下标索引如图,列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增  我们只需要按照下标索引,即可取得对应位置的元素。 或者,可以反向索引,如图,从后向前,下标索引为:-1、-2、-3,依次递减。   如果列表是嵌套的列表,同样支持下标索引#取出嵌套列表的元素my_list2=[[1,2,3],[4,5,6]]print(my_list2[1][1]) 嵌套列表时,被嵌套的列表可以看作一个元素,第一个下标就是确定元素是列表[1,2,3],再用一个下标取出这个被嵌套的列表中的元素总结:1.列表的下标索引是什么?列表的每一个元素,都有编号称之为下标索引从前向后的方向,编号从0开始递增从后向前的方向,编号从-1开始递减2.如何通过下标索引取出对应位置的元素呢?列表[下标],即可取出3.下标索引的注意事项:•要注意下标索引的取值范围,超出范围无法取出元素,并且会报错 6.2.3列表的常用操作(方法) 演示代码:1、在列表的尾部追加'''单个'''元素    语法:列表.append(元素)mylist=["itCSDN","itlove","python"]mylist.append("CSDN程序员")print(f"列表在追加了元素后,结果是:{mylist}")'运行运行2、在列表的尾部追加'''一批'''元素    语法:列表.extend(另一个数据容器)将另一个数据容器的内容取出,依次加到列表尾部   mylist=["itCSDN","itlove","python"]mylist2=[1,2,3]mylist.extend(mylist2)print(f"列表在追加了一个新的列表后,结果是:{mylist}")'运行运行 3、在指定下标位置插入新元素         语法:列表.insert(下标,元素)在指定的下标位置,插入指定的元素,其余元素向后移动 mylist=["itCSDN","itlove","python"]mylist.insert(1,"best")print(f"列表插入元素后,结果是:{mylist}")'运行运行4、删除列表指定下标元素              语法:del列表[下标]与pop的区别:仅仅能完成删除操作mylist=["itCSDN","itlove","python"]delmylist[2]print(f"列表删除元素后结果是:{mylist}")'运行运行 5、删除指定下标元素                  语法:列表.pop(下标)与del的区别:不仅能把元素删掉,还能把删除元素作为返回值去得到mylist=["itCSDN","itlove","python"]element=mylist.pop(2)print(f"通过pop方法取出元素后列表内容:{mylist},取出的元素是:{element}")'运行运行 6、删除某元素在列表中的第一个匹配项     语法:列表.remove(元素)mylist=["itCSDN","itlove","python"]mylist.remove("itlove")print(f"通过remove方法移除元素后,列表的结果是:{mylist}")'运行运行 7、清空列表                          语法:列表.clear()mylist=["itCSDN","itlove","python"]mylist.clear()print(f"列表被清空了,结果是:{mylist}")'运行运行 8、统计列表内某元素的数量             语法:列表.count(元素)mylist=["itCSDN","itlove","itlove","itlove","python"]count=mylist.count("itlove")print(f"列表中itlove的数量是:{count}")'运行运行9、查找某元素在列表中的下标索引         语法:列表.index(元素)mylist=["itCSDN","itlove","python"]index=mylist.index("itlove")print(f"itlove在列表中的下标索引值是:{index}")'运行运行如果被查找的元素不存在,会报错10、统计列表中全部的元素数量           语法:len(列表)mylist=["itCSDN","itlove","python"]count=len(mylist)print(f"列表的元素数量总共有:{count}个")'运行运行 6.2.4总结列表的特点•可以容纳多个元素(上限为2**63-1、9223372036854775807个)•可以容纳不同类型的元素(混装)•数据是有序存储的(有下标序号)•允许重复数据存在•可以修改(增加或删除元素等) 6.2.5列表的遍历既然数据容器可以存储多个元素,那么,就会有需求从容器内依次取出元素进行操作。将容器内的元素依次取出进行处理的行为,称之为:遍历、迭代。 列表的遍历——while循环index=0whileindex
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 05:55 , Processed in 0.558756 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表