认识Python
编写Python程序的文件,称为Python的脚本或者程序
要求Python文件的后缀名为.py
print()是一个打印函数,可以输出数字、字符串、或者其他的内容
函数就是为了实现一些功能的指令
注释
注释就是一段说明文字,在程序中不会被执行1.在Python的脚本中,开头的第一个符号为#,那么这行说明、解释就是注释‘’‘这也是Python的注释 ‘’‘’(三个单引号来开头和结尾的,里面的内容就是Python的注释)
“”“这同样是Python的注释 ”“”(三个双引号来开头和结尾的,里面的同样也是Python的注释)
变量
变量就是用一个英文的字符串来记录一些数据,(其实换句话说:就是给这些数据来起一个好听的名字),并且这些被标记的数据是可以被改变的。
变量就是类似于生活中的一种容器,
-在编程中来存放一下程序中的数据
-变量里面可以存放的类型:
-字符串:("hello")
-整型:(55、99、456)
-浮点数:(99.9、9.9、9.9999999.....)
-布尔类型:(True,False)
-布尔类型(Boolean)就是一种数据的类型,这种类型只有真和假。
-列表:list
-字典:dict
-set列表
变量的命名只能包含字母、数字和下划线。但是变量名只可以用字母和下划线来打头
-举个栗子:-message_1----------true-1_message----------false
严格区分大小写,不要使用中文,或者是汉语拼音。(虽然中文也可以作为变量名,但是不建议使用)
变量名不能包含空格,只能用下划线来分割其中的单词。
-举个栗子:
-greeting message_1----------true-greeting_message_1----------False
不要使用系统关键字来作为变量名,也不要使用Python内置的函数,(如果这样命名,就会覆盖原来Python中的原来定义指令,这里并不会报错)
-举个栗子:Python的关键词
---False---class---finally---is---return---
---None---continue---for---lambda---try---
---def---from---nonlocal---while---
---del---global---not---with---
---elif---if---or---yield---
---else---import---pass---
---except---in---rasie---
5.变量的命令建议:
-驼峰式:由多个单词组成,第一个单词是小写,后面的单词的首字母是大写-类:每个单词的首字母都是大写的
—下划线式(Python推荐这个命名方式):由多个单词组成,每个单词是由下划线来隔开
注:
变量的命名规范也同样适用于脚本名称和后期的函数名以及其他的命名;
变量名要简短,并且具有很好的描述性;
不要用小写字母:l和o。因为他们非常容易被看成是数字:1和0。
变量的定义
1.首先是一一对应的定义:
a = 100
b = 200
print(a,b)
2.也可以在一起定义:
a,b = 100,300
print(a,b)
变量的交换
利用第三方的变量来实现两个变量的数据交换:
定义c变量,用于接收a变量的数值
再把b变量赋值给a变量
最后把c变量的数值赋值给b变量
a,b = 100,300
c = a
a = b
b = c
print(a,b)
利用Python的定义的语法来实现两个数据交换:
a,b = b,a
Python的数据类型
数据类型:数据的表现的形式
强制数据类型转化:下面的函数可以强制把其他类型转化为自身的类型
str()---转化为字符串
int()---转化为整型
float()---转化为浮点型
bool()---转化为布尔型
list()---转化为列表型
tuple()---转化为元组型
dict()---转化为字典型
set()---转化为集合型
string字符串类型
1.一系列字符,在Python中,用引号扣起来的都是叫:字符串。引号既可以是单引号,也可以是双引号。
-举个栗子:
-"this is a string"
-'this is also string!'
-数字,就是200,300,500这种
type()函数专门用来获取当前变量的数据类型,专门返回一个变量的数据类型结果
---string字符串
注意:
单引号定义的字符串不能随意换行,但是在换行时只需要指明换行符\n
字符串中的引号是可以相互嵌套的,但是不能自己嵌套自己
字符串中可以使用字符串:\n、\r、\t
转义字符
\n---换行
\t---制表符
\r---
r---可以取消转义字符
number数字类型
-整型:(int)
-浮点型:(float)
-布尔类型(bool)
-Ture---严格区别大小写
-False---0
-复数类型(complex)
-5+5j
注意:
数字类型可以参与运算的
list 列表类型
列表:是一个可以储存成组信息的地方,可以包含几个元素,也可以包含成千上万个元素!列表中的元素是可以任意改变的。
-列表由一系列按特定顺序排序的元素组成,其中列表中的元素可以没有什么关系!-可以是数字、变量、字符串等等不同的东西。存贮的数据可以是任意的类型的!也可以存子列表(这种就称为二维列表,或者多级列表)
-在Python中用[]来表示列表,每个数据之间用,来分隔每个元素!
-注意:一定要是英文状态下的符号,千万别弄错成中文
-列表是有序的集合,因此要访问列表的任何地方,只要将该元素的位置或者索引告诉Python就好了-列表的索引排列是从0开始的哦!切记-一切从0开始!
-列表也可以倒着获取:最后一个数的位置号是:-1,以此类推向前递减即可。
tuple 元组类型
元组:不可修改的列表(可以这样理解),用法和列表基本一样,都是用来存储各种不同的数据的
-元组用()来进行定义
注意:在定义元组时,如果只有一个元素,那么就需要加,不然就不是元组类型了。
元组的最大特点就是:不能被改变
Dict字典类型
字典:键值对应的存储方式,使用{}来进行定义
-键和值之间必须使用冒号来进行分,多组键值对之间使用逗号进行分隔;
-键必须是数字类型或者字符串类型,值可以是任意类型;
-键名是不可以重复的,但是值可以重复;
set 集合类型
set集合:一个无序且元素不重复的集合数据类型
``-使用{}来进行定义或者是set()方法来进行定义
如果需要个空集合时,只能使用set()的方法,因为大括号一般都是定义空字典
给集合添加元素:add()a = {1,2,3.4,'y'}
a.add('u')
print(a)
集合无法获取集合中的单个元素,但是可以添加和删除:discard()
a = {1,2,3.4,'y'}
a.add('u')
a.remove('y')
print(a)
集合主要用于运算:交集、并集、差集、对称集合
交集:&
差集:-
并集:|
对称集合:
Python的算术运算符
什么是运算符
用来进行运算功能的指令就叫运算符。
Python语言支持以下类型的运算符:算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
运算符优先级
其中都不难理解
Python算术运算符
运算符描述实例+加 - 两个对象相加a + b 输出结果 31-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -11*乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 210/除 - x 除以 yb / a 输出结果 2.1%取模 - 返回除法的余数b % a 输出结果 1**幂 - 返回x的y次幂a**b 为10的21次方//取整除 - 向下取接近除数的整数>>> 9//2 4 >>> -9//2 -5
Python比较运算符
运算符描述实例==等于 - 比较对象是否相等(a == b) 返回 False。!=不等于 - 比较两个对象是否不相等(a != b) 返回 True。>大于 - 返回x是否大于y(a > b) 返回 False。=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。<=小于等于 - 返回x是否小于等于y。(a <= b) 返回 True。
Python赋值运算符
运算符描述实例=简单的赋值运算符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 // a
python位运算符
按位运算符是把数字看作二进制来进行计算的。bin()函数可以把数字转为二进制。
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
运算符逻辑表达式描述实例andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False
Python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符描述实例in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符描述实例isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falseis notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符描述**指数 (最高优先级)~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)* / % //乘,除,取模和取整除+ -加法减法>> < >=比较运算符== !=等于运算符= %= /= //= -= += *= **=赋值运算符is is not身份运算符in not in成员运算符not and or逻辑运算符
二进制二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 [1] 。数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(Bit,Binary digit的缩写)
Python中的流程控制
1.python语句的分类2.流程控制相关的分类3.顺序结构4.分支结构5.循环结构6.其他流程控制语句
python语句的分类
1.单行代码
2.代码块
流程控制的分类
1.顺序结构:就是系统默认的程序结构,自上而下的执行
2.分支结构/选择结构:
a.单项分支
b.双项分支
c.多项分支
d.巢装分支
3.循环结构:
a.while语句
b.for语句
模块化编程模块化编程:是指把程序进行封装,一个是函数封装,一个是面向封装,另一个是文件和文件夹的封装;其实就是将程序进行一个包装,方便以后再次使用(核心思想)
函数什么是函数(function)
函数就是一个具有特定功能的代码块,可以反复被调用
函数的作用函数就是把函数进行封装,以提高代码的重负利用率,提高开发效率,并且降低后期的维护成本(时间与金钱)
一般稍微大一点的项目都是几万行和几十万行的代码数量,后期可能会出现一些bug,是需要去维护的
函数的定义和使用定义函数【基本结构】
def 函数([参数列表]):
当前函数的具体功能代码
当前函数的具体功能代码
当前函数的具体功能代码
。。。
函数封装完之后,并不会执行,只是把函数定义了而已
如果想使用函数,那么就需要用语法来进行函数的调用
函数的调用
函数名()
函数的注意事项
1.函数定义后,不调用是不会执行的
2.不能在函数的定义之前,去调用函数:NameError: name 'love' is not defined
3.函数可以重复、反复调用N多次,不受次数影响,完全是肆意妄为!
4.函数的命名一定要遵守命名规范
字母、数字、下划线
不能以数字开头
严格区分大小写
不能使用关键字来命名
命名最好是有意义的
不要使用中文
5.函数名不要冲突(重名),不然前一个函数定义会被覆盖掉的,这和关键字的道理是一样的
关于函数的参数函数的定义时,可以在参数列表的位置定义形参(形式上的参数)
如果函数有形参,那么在调用时必须传递参数:实参(实际参数)
实参将传递给形参的过程,本质上就是变量赋值操作的过程
# 在定义函数,在小括号内,可以定义形参(形式上的参数)
# def love(w):
# print(f'I love you {w}!')
# pass
# 函数一定要有内容,如果没有内容,必须要有一个pass占位,不然就会报错
# 调用带有形参的函数时,需要传递函数(实参)
# love('昭昭')
# love() # 如果没有给出实参,就会报错:TypeError: love() missing 1 required positional argument: 'w'
# 带有多个参数的函数,两个参数之间用,隔开
回调函数函数中的参数可以使任意类型的,那么参数能不能是一个函数呢?
如果在一个函数中要求传递的参数是一个函数作为参数,并且在函数中使用了传递进来的函数,那么这个函数就可以称为是一个回调函数。