目录
- 第一章 Python初识
- 1、什么是编程语言
- 2、第一个Python程序
- 第二章 基本语法
- 1、 字面量
- 2、 注释
- 3、 变量
- 4、 数据类型
- 5、 数据类型转换
- 6、 标识符
- 7、 运算符
- 8、 字符串扩展
- 9、 字符串拼接
- 10、 字符串格式化
- 11、 字符串格式化的精度控制
- 12、 字符串格式化的方式二
- 13、 对表达式进行格式化
- 14、 数据输入(input语句)
- 第三章 判断语句
- 1、 布尔类型和比较运算符
- 2、 if语句的基本格式
- 3、 if else组合判断语句
- 4、 if elif else语句
- 5、 判断语句的嵌套
- 第四章 循环语句
- 1、 while循环的基础应用
- 2、 while循环案例
- 3、 for循环的基础语法
- 4、 range语句:获得一个简单的数字序列
- 5、 for循环临时变量作用域
- 6、 for循环的嵌套使用
- 7、 关键字break和continue
- 第五章 函数
- 1、 函数的基础定义语法
- 2、 函数的参数
- 3、 函数的返回值定义语法
- 4、 函数的说明文档
- 5、 函数的嵌套调用
- 6、 变量在函数中的作用域
- 第六章 列表、元素、字典
- 1、 Python中的数据容器:
- 2、列表list
- 3、元组tuple
第一章 Python初识
1、什么是编程语言
Python的优点:适用面广泛
人群/岗位 | 用Python做什么 |
---|---|
IT从业者 | 自动化脚本(运维开发、测试开发等) |
普通白领 | 自动化办公 |
后端开发 | Web应用程序 |
科学家 | 基于Python完成数据计算(生物、化学、物理) |
人工智能/机器学习 | 基于Python开发AI程序 |
大数据开发 | 基于Python完成大数据任务开发(Spark、Flink) |
学生 | 计算机二级考试、小学六年级Python课程 |
定义:用于人类和计算机进行交流的一种语言,通过编写编程语言的代码,去指挥计算机工作。而Python只是众多编程语言的一种。
提出问题:
1、为什么不直接把中文翻译成二进制?
答:自然语言远比编程语言复杂,编程语言语法“死板”,“翻译官”更容易翻译。
2、第一个Python程序
1、第一个Python程序
print(“hello world”)
含义:向屏幕上输出(显示),hello world
注意:括号和引号需要使用英文符号,否则会报错!
第二章 基本语法
1、 字面量
定义:在代码中,被写下来的固定的值,称之为字面量。通俗理解就是Python规定的一些类型的值。
常见的字面量类型:
1)整型int:整数
2)浮点型float:小数
3)字符串string:又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。在Python中,字符串需要用双引号包围起来。简而言之,用(英文状态下的)双引号包围起来的都是字符串。
如:”你好” “@ceguige” “2070470”
2、 注释
1)注释:在程序代码中对程序代码进行解释说明的文字。
2)作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。
3)分类:
①单行注释:以#开头,#右边 的所有文字当做说明,而不是真正要执行的程序,起辅助说明作用。
# 我是单行注释
print(“hello world”)
注意:# 号和注释内容一般建议以一个空格隔开。
②多行注释:以 一对三个双引号 引起来来解释说明一段代码的作用使用方法。
"""
我是多行注释
"""
3、 变量
定义:在程序运行时,能储存计算结果或能表示值的抽象概念。简单来说,变量就是在程序运行时,记录数据用的。
变量的定义格式:
变量名称 = 变量的值
(变量名称:每一个变量都有自己的名称,称之为:变量名,也就是变量本身)
(赋值,表示将等号右侧的值,赋予左侧的变量)
(每一个变量都有自己存储的值,称之为:变量值)
例如:
money = 50
print(“钱包还有:”,money)
4、 数据类型
提出问题:
如何去验证数据的类型?可以通过type()语句来得到数据的类型。
语法:type(被查看类型的数据)
1)在print语句中,直接输出类型信息:
2)用变量存储type()的结果(返回值)
3)还可以查看变量中存储的数据类型
5、 数据类型转换
1)为什么要转换类型?
2)常见的转换类型
注意:同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值),我们可以用print直接输出或用变量存储结果集。
举个例子:
总结:万物皆可转字符串,但是字符串不能随意转换成数字;浮点数转整数会丢失精度(丢失小数部分)。
6、 标识符
定义:是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
- Python中,标识符命名的规则主要有3类:
①内容限定:标识符命名中,只允许出现英文、中文(不推荐中文)、数字(数字不可以开头)、下划线(_)这四类元素,其余任何内容都不被允许。
②大小写敏感:例:Andy,andy这是两个不同的变量。
③不可使用关键字:关键字同样大小写敏感(不用刻意背关键字)
- 变量命名规范(规则是强制的,规范不强制)
①见名知意:简洁、明了
②下划线命名法:如:student_name
③英文字母全小写
总结:1)标识符是什么?
答:用户编写代码时,对变量、类、方法编写的名字,叫做标识符。
2)标识符的命名规则?
答:只允许出现英文、中文、数字、下划线且数字不能开头;大小写敏感;不能使用关键字。
3)变量的命名规范?
答:见名知意;下划线命名法;英文字母全小写。
7、 运算符
1)算术运算符:
案例:
3)赋值运算符
4)复合赋值运算符
案例:
总结:1)常见的算术(数学)运算符有?
答:+ - * / ** // %
2)赋值运算符有?
= += -= *= /= //= **= %=
8、 字符串扩展
1)字符串的三种定义方式:
单引号定义法:
name='黑马程序员'
双引号定义法:
name="黑马程序员"
三引号定义法:
name="""黑马程序员"""
注意:三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串,不使用变量接收它,就可以作为多行注释使用。
提出问题:如果我想要定义的字符串本身,是包含:单引号、双引号自身呢?如何写?
答:单引号定义法,可以内含双引号。例如:name=’ “value” ’
双引号定义法,可以内含单引号。如:name=” ‘value’ ”
可以使用转移字符(\)来将引号解除效用,变成普通字符。
9、 字符串拼接
1)可以用+号进行拼接,一般用在字面量和变量之间,或者变量和变量之间。
2)缺点:变量过多,拼接起来麻烦;字符串无法和数字或其他类型完成拼接。
注意:无法和非字符串类型进行拼接。
10、 字符串格式化
1)字符串拼接
其中的,%s
✔ %表示:我要占位
✔ s表示:将变量变成字符串放入占位的地方
2)数字类型也可以
注意:多个变量占位,变量要用括号括起来,并按照占位的顺序填入,且与字符串之间没有逗号连接!
提出问题:数字也能用%s占位吗?
答:可以的,这是将数字转换成了字符串,也就是数字57,变成了“57”被放入占位的地方。
3)三种不同类型
案例:
11、 字符串格式化的精度控制
1)可以使用辅助符号“m.n”来控制数据的宽度和精度。
m控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效。
.n控制小数点精度,要求是数字,会进行小数的四舍五入。
示例:
案例:
12、 字符串格式化的方式二
1)语法:(不关心数据类型,也不关心精度控制,适合对精度没有要求的时候使用)
示例:
案例:
13、 对表达式进行格式化
1)定义:一条具有明确执行结果的代码语句。
如:表达式是什么?
2)在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码。(如下示例)
案例:
练习:
14、 数据输入(input语句)
1)input语句,用来获取键盘输入。使用input()语句可以从键盘获取输入,使用一个变量接收(存储)input语句从键盘上获取的数据即可。Input默认接收的都是字符串类型。
示例:
第三章 判断语句
1、 布尔类型和比较运算符
1)布尔(bool)表达现实生活中的逻辑,即真和假。
True表示真(是、肯定);False表示假(否、否定)。True本质上是一个数字记作1,Flase记作0。
定义变量存储布尔数据类型:
变量名称 = 布尔类型字面量
提示:布尔类型不仅可以自行定义,同时也可以通过计算得来。
也就是使用比较运算符进行比较运算得到布尔类型的结果。
示例:
2)比较运算符
2、 if语句的基本格式
1)基本格式:(冒号不要忘记,注意缩进)
示例:
注意:判断语句的结果,必须是布尔类型True或Flase,True会执行if内的代码语句,Flase则不会执行。
练习:
3、 if else组合判断语句
1)基础语法:
示例:
注意:else后,不需要判断条件;和if的代码块一样,else的代码块同样需要4个空格作为缩进。
练习:
4、 if elif else语句
1)基本语法格式
示例:
注意:elif可以写多个;判断是互斥且有顺序的;空格缩进同样不可省略。
5、 判断语句的嵌套
1)基本语法格式:(如图,第二个if,属于第一个if内,只有第一个if满足条件,才会执行第二个if)
注意:嵌套的关键点在于空格缩进;通过空格缩进,来决定语句之间的层次关系
总结:①嵌套判断语句可以用于多条件、多层次的逻辑判断;
②嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断;③嵌套判断语句,一定要注意空格缩进,Python通过缩进来决定层次关系。
综合案例:
结果:
第四章 循环语句
1、 while循环的基础应用
1)循环的基础语法:(只要条件满足,会无限循环执行)
注意:while的条件需得到布尔类型,True表示继续循环,Flase表示结束循环;需要设置循环终止的条件,不然会无限循环;空格缩进和if判断一样,都需要设置。
练习:1到100的和
练习2:猜数字案例
发现有几个改进点:可以将break替换成Flag=True。
Count+=1放在输入代码后面较合适,每输入一次就记一次数。
2、 while循环案例
1)使用print语句,输出不换行的功能。
实现方式print(“hello”,end=“”)
2)在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键。它可以让我们的多行字符串进行对齐。
3)练习题:
3、 for循环的基础语法
1)区别:while循环的循环条件是自定义的,自行控制循环条件;for循环是一种“轮询”机制,是对一批内容进行“逐个处理”。通俗来讲就是while不限制循环次数,可以无限循环,而for循环可以限制循环次数。
2)for循环的语法格式:
案例:
For循环是将字符串的内容:依次取出。所以,for循环也被称之为遍历循环。For循环是无法定义循环条件,只能从被处理的数据集中,依次取出内容进行处理。For循环语句,本质上是遍历:序列类型。
练习:
4、 range语句:获得一个简单的数字序列
1)语法1:注意是从0开始的
2)语法2:
3)语法3:
练习题:
5、 for循环临时变量作用域
1)提出疑问:
总结:
6、 for循环的嵌套使用
1)for循环嵌套的语法格式:
注意点:①while循环和for循环语句是可以相互嵌套的。
②需要注意缩进,嵌套for循环同样通过缩进确定层次关系。
练习题:九九乘法表
7、 关键字break和continue
1)continue关键字用于:中断本次循环,直接进入下一次循环。
2)continue可以用于:for循环和while循环,效果一样。
3)continue关键字只可以控制:它所在的循环临时中断
4)break关键字用于:直接结束循环
5)break可以用于:for循环和while循环,效果一致
6)break关键字同样只可控制:它所在的循环结束。
注意:①continue和break,在for和while循环中作用一致。
②在嵌套循环中,只能作用所在的循环上,无法对上层循环起作用。
练习题:(发工资)
第五章 函数
1、 函数的基础定义语法
1)定义:函数是组织好的,可重复使用的,用来实现特定功能的代码段。简而言之就是,人家写好的,我们拿来用的工具。
2)为什么要学习、使用函数?
为了得到一个针对特定需求、可供重复利用的代码段提高程序的复用性,减少重复性代码,提高开发效率。
3)函数定义的语法格式:(先定义函数,后调用函数)
函数的调用:
注意:参数如不需要,可以省略;返回值如不需要,可以省略;函数必须先定义后使用。
2、 函数的参数
1)参数的定义:在函数进行计算的时候,接收外部(调用时)提供的数据。
2)传入参数的定义语法:
3)形参与实参
4)传入参数的数量是不受限制的,可以不使用参数,也可以仅使用任意N个参数。
3、 函数的返回值定义语法
1)定义:所谓“返回值”,就是程序中函数完成事情后,最后给调用者的结果。
2)函数的语法定义:
注意:函数体在遇到return后就结束了,所以写在return后的代码不会执行。
3)思考:如果函数没有使用return语句返回数据,那么函数有返回值吗?有的,Python中有一个特殊的字面量:None,其类型是:<class ‘NoneType’>,无返回值的函数,实际上就是返回了:None这个字面量。
4)None表示:空的,无实际意义的意思。函数返回的None,就表示,这个函数没有返回什么有意义的内容。也就是返回了空的意思。
5)None类型的应用场景:
①用在函数无返回值上
②用在if判断上:在if判断中,None等同于Flase;一般用于在函数中主动返回None,配合if判断做相关处理。
③用于声明无内容的变量上:定义变量,但暂时不需要变量有具体值,可以用None来代替。
4、 函数的说明文档
1)函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。我们可以给函数添加说明文档,辅助理解函数的作用。通过多行注释的形式,对函数进行说明解释。内容应写在函数体之前。
2)语法如下:
案例:
注意:在pycharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档。
5、 函数的嵌套调用
1)定义:所谓函数嵌套调用指的是,一个函数里面又调用了另一个函数。
6、 变量在函数中的作用域
1)定义:变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用),主要分为两类:局部变量和全局变量。
2)局部变量是定义在函数体内部的变量,即只在函数体内部生效。
局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量。
3)全部变量,指的是在函数体内、外都能生效的变量。
4)global关键字:可以在函数内部声明变量为全局变量。(最好是在函数内定义)
综合练习题:(ATM系统)
代码部分:
结果:
第六章 列表、元素、字典
1、 Python中的数据容器:
1)一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
2)数据容器根据特点的不同,如:是否支持重复元素、是否可以修改、是否有序等,分为5类,分别是:列表list、元组tuple、字符串str、集合set、字典dict
2、列表list
1)定义:列表内的每一个数据,称之为元素。
以[]作为标识;列表内每一个元素之间用逗号隔开。
2)基本语法:
字面量: [元素1,元素2,元素3,元素4…]
定义变量:变量名称=[元素1,元素2,元素3,元素4…]
定义空变量: 变量名称=[] ; 变量名称=list()
注意点:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套。
3)列表的访问:
①下标索引:列表[下标索引] (下标索引从0开始,从前向后)
②列表的下标(索引)-反向:列表[-下标索引] (从-1开始,从后向前)
③嵌套列表下标索引:列表[外层列表索引][内层列表索引]
注意:要注意下标索引的取值范围,超出范围无法取出元素,并且会报错。
4)列表常用方法:
①查找某元素的下标:列表.index(元素)
找不到会报错ValueError
②修改特定位置(索引)的元素值:列表[下标]=值
③插入元素:列表.insert(下标,元素) 在指定的下标位置,插入指定的元素。
④追加元素:列表.append(元素),将指定元素,追加到列表的尾部。
列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部。
⑤删除元素:del 列表[下标]
列表.pop(下标)
列表.remove(元素) 重复的话,从前面删第一个。
⑥清空列表内容:列表.clear()
只有一个空的列表[]
⑦统计某元素在列表内的数量:列表.count(元素)
⑧统计列表内,有多少元素:len(元素)
5)列表的特点
①可以容纳多个元素 ②可以容纳不同类型的元素(混装)
③数据是有序存储的(有下标序号) ④允许重复数据存储
⑤可以修改(增加或删除元素等)
练习:
6)列表的循环遍历
while循环和for循环
3、元组tuple
1)列表与元组的区别:列表可以修改,元组一旦定义完成,就不可修改。所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了。
2)元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以使不同的数据类型。
注意:元组只有一个数据,这个数据后面要添加逗号
例如:t1 = (“hello”,) 注意,必须带有逗号,否则不是元组类型
常用的方法: