Python基础
1.认识Python
1.1什么是Python
Python是一个多范式,通用,解释的高级语言。Python允许程序员使用不同的编程风格来创建简单或复杂的程序,获得更快的结果并编写代码,就像用人类语言说话一样。
1.2Python的应用场景
- Web应用开发
- 操作系统管理、服务器运维的自动化脚本
- 科学计算
- 桌面软件
- 游戏
- 人工智能
2.执行Python程序的方式
2.1IDE
- 集成开发环境( IDE ,Integrated Development Environment)—— 集成了开 发软件需要的所有⼯具,⼀般包括以下⼯具:
- Pycharm 就是 开发Python ⽐较优秀的 IDE
2.2文本模式
- Python代码 保存在文件 中,解释器对文件逐行解释执行
- 在终端中输入解释器名,在输入要执行的文件名
# windows中以文本模式执行python程序
$ py -3 xxx.py
Python 源程序就是⼀个特殊格式的⽂本⽂件,可以使⽤任意⽂本编辑软件做 Python 的开发 Python 程序的
⽂件扩展名 通常都是 .py
2.3交互模式
-
直接在终端中运⾏解释器,⽽不输⼊要执⾏的⽂件名
-
在 Python 交互模式 中 边输⼊边执⾏ Python代码,会⽴即看到程序执⾏结果
-
退出交互模式
-
之间输入 exit( )
-
>>> exit()
-
-
使用热键退出
在 python 解释器中,windows按热键 ctrl + z 可以退出解释器
-
3.注释
3.1 注释的作用
使用自己熟悉的语⾔,在程序中对某些代码进⾏标注说明,增强程序的可读性
3.2 单行注释(行注释)
-
以 # 开头, # 右边的所有东西都被当做说明⽂字,而不是真正要执⾏的程序,只起到辅助说明作用
-
示例代码如下:
# 这是一个单行注释 python("Hello Python")
为了保证代码的可读性,# 后面建议先添加一个空格,然后在编写相应的说明文字
-
单行注释快捷键: ctrl + /
在代码怀念增加的单行注释
-
在程序开发时,通用可以使用# 在代码后面(旁边)增加说明性的文字
-
但是,需要注意的时,为了保证代码的可读性,注释和代码之间 至少要有 两个空格
-
示例代码如下:
print("Hello Python") # 输出'Hello Python'
4.变量和类型
- 变量原子数学,在计算机语言中可以理解为 存储数据的容器
4.1 变量的定义
-
在Python中,对变量 首次复制会定义变量,再次复制自会修改变量的值
-
等号( = )用来给变量赋值
- = 左边是一个变量名
- = 右边是存储在变量中的值
变量名 = 值
# 定义变量 qq_num = "100100" # 获取变量的值 print(qq_num) # 修改变量的值 qq_num = "888888" print(qq_num)
4.2变量的类型
-
程序中:
为了区分变量的不同的功能,变量使用不同的类型的
4.3变量的类型
- 在 Python 中定义变量是不需要指定类型(在其他很多⾼级语⾔中都需要)
- 数据类型可以分为 数字型 和 非数字型
- 数字型
- 整型 ( int )
- 浮点型( float )
- 布尔型( bool )
- 真 True 数学运算时表示 1
- 假 False 数学运算时表示 0
- 复数型 ( complex )
- 主要⽤于科学计算,例如:平⾯场问题、波动问题、电感电容等问题
- ⾮数字型
- 字符串
- 列表
- 元组
- 字典
- 使⽤ type 函数可以查看⼀个变量的类型
5.变量的命名
名字需要有见名知义的效果
5.1标识符
- 开发⼈员 在程序中⾃定义的⼀些符号和名称。标示符是⾃⼰定义的, 如 变量 名、函数名等
- 标示符可以由 字⺟、下划线 和 数字 组成
- 不能以数字开头
- 不能与关键字重名
5.2关键字
-
关键字 就是在 Python 内部已经使⽤的标识符
-
关键字 具有特殊的功能和含义
-
开发者 不允许定义和关键字相同的名字的标示符
查看 Python 中的关键字
import keyword print(keyword.kwlist)
- import 关键字 可以导⼊⼀个 “⼯具包”
- 在 Python 中不同的⼯具包,提供有不同的⼯具
注意 Python 中的 标识符 是 区分大小写的
6.输出
普通的输出
-
Python的变量的输出
# 打印提示 print("Hello World") print("Hello Python")
2.运算符&条件判断&循环
1.比较运算符
运算符 | 描述 |
---|---|
== | 检查两个操作数的值是否 相等 ,如果是,则条件成立,返回True |
!= | 检查两个操作数的值是否 不相等 ,如果是,则条件成立,返回True |
> | 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回True |
< | 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回True |
>= | 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回True |
<= | 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回True |
- 字符串和数字不能比较
- 字符串比较: “Z” > “a” > “A” > ”数字“
2.条件语句
2.1开发中的应用场景
条件语句在开发中主要进行 逻辑判断
2.2 if 语句体验
在 Python 中,if 语句 就是用来进行条件判断的,格式如下:
if 要判断的条件:
条件成立时,要做的事情
...
if 要判断的条件:
条件成立时,要做的事情
...
else:
条件不成立时,要做的事情
...
3.循环
3.1程序的三大流程
-
在程序开发中,一共有三种流程方式:
- 顺序——从上向下
- 分支——根据条件判断,决定执行代码的分支
- 循环——让 特定代码 重复 执行
3.2while 循环基本使用
- 循环的作用就是让 指定的代码重复执行
- while 循环最常用的应用场景就是让 执行的代码 按照 指定的次数 重复执行
- 需求——重复执行代码
3.3 while 语句基本语法
变量设置初始值
while 条件(判断 变量是否符合条件):
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
修改变量
注意:
- while 语句中的缩进部分是一个 独立的代码块
第一个 whiel 循环
-
使用循环语句一句话搞定
# 1.定义重复次数计数器 i = 1 # 2.使用 while 判断条件 while i <= 执行次数: # 要重复执行的代码块 。。。 # 处理计数器 i i = i + 1
死循环
由于程序员的原因,忘记 在循环内部 修改循环的判断条件 ,导致循环持续执行,程序无法终止
4.break 和 continue
| break 和 continue 是专门在循环中使用的关键字
- break 某一条件满足时,不再执行循环体中后续重复的代码,并 退出循环
- continue 某一条件满足时, 不在执行本次循环体中后续重复的代码,但进入下一次循环判断
4.1break
- 在循环过程中,如果某一个条件满足后,不 再希望 循环继续执行 ,可以使用 break 退出循环
4.2continue
- 在循环过程中,如果某一个条件满足后,不希望执行本次循环代码,但是又不希望退出循环,可以使用 continue
- 也就是:在整个循环过程中,只有某些条件,不需要执行循环代码,而其他条件都需要执行
- 需要注意: 使用 continue 时,条件处理部分的代码,需要特别注意,不小心会出现 死循环
3.常用数据类型
1.字符串
1.1字符串的定义
-
字符串 就是 一串字符,是编程语言中表示文本的数据类型
-
在 Pyhton 中可以使用 一对双引号 ” 或者 一对单引号 ’ 定义一个字符串
-
可以使用 索引 获取一个字符串中指定位置的字符 ,索引计数从0开始
-
也可以使用 for 循环遍历 字符串中每一个字符
| 大多数编程语言都是用 ” 来定义字符串
1.2字符串的常见操作
分类 | 关键字 | 说明 |
---|---|---|
查找 | 字符串**.find**(目标字符串,开始索引,结束索引) | 在指定范围内,查询目标字符串的索引,不存在返回-1 |
替换 | 字符串**.replace**(原内容,新内容,替换次数) | 返回一个替换了原内容的新字符串,可以指定替换次数 |
分割 | 字符串**.split**(分隔符) | 以分隔符拆分字符车,返回列表 |
拼接 | 字符串 + 字符串 | 拼接两个字符串 |
字符串**.join**(字符串列表) | 以字符串来连接字符串列表中每个袁术,合并为一个新的字符串 |
2.列表
2.1列表的定义
- list (列表)是 Python 中使用 最频繁 的数据类型
- 专门用于存储 一串 数据, 存储的数据称为 元素
- 列表用 [ ] 定义 ,元素 之间使用 , 分隔
- 列表的索引 从0 开始
- 索引就是元素在 列表 中的位置编号
注意: 从列表中取值时,如果 超出索引范围 ,程序会报错
2.2列表嵌套
- 一个列表中的元素又是列表,那么这个就是列表的嵌套
2.3列表常见操作
分类 | 关键字/函数/方法 | 说明 |
---|---|---|
增加 | 列表.append(值) | 在末尾追加数据 |
删除 | 列表.remove(值) | 删除第一个出现的指定数据 |
修改 | 列表 [索引] = 值 | 修改指定索引的数据,数据不存在会报错 |
查询 | 列表 [索引] | 根据索引取值,索引不存在会报错 |
len (列表) | 列表长度(元素个数) | |
if 值 in 列表: | 判断列表中是否包含某个值 | |
排序 | 列表.sort() | 升序排序 |
2.4循环遍历
-
遍历 就是从头到尾 一次从列表中取出每一个元素
-
Python中专门提供 for循环 实现遍历
# for 实现列表的遍历 for name in name_list: 循环内部针对列表元素进行操作 print(name)
2.5应用场景
- 尽管 Python 的 列表 中可以存储不同的数据
- 但在开发中,更多的应用场景时
- 列表 存储相同类型的数据
- 通过 for循环 ,在循环体内部,针对列表中的每一项元素,执行相同的操作
3.字典
3.1字典的定义
-
字典通用可以用来 存储多个数据
- 通常用于存储 描述一个 物体的相关信息
-
字典用 { } 定义
-
字典使用 键值对 存储数据,键值对之间使用 , 分隔
- 键 key 是索引
- 值 value 是数据
- 键 和 值 之间使用 : 分隔
- 值 可以取任何数据类型,但 键 自能使用字符串、数字或元组
- 键必须是唯一的
字典没有索引,是 无序 的
# 定义字典
字典名 = {
"键A":"值A",
"键B":"值B",
"键C":"值C",
...
}
# 取出元素的值
pring(字典名["键名"]) # 输出对应值名
3.2字典常用操作
分类 | 关键字/函数/方法 | 说明 |
---|---|---|
增加 | 字典值 [键] = 值 | 键不存在,会添加键值对 |
删除 | 字典.pop(键) | 删除指定键值对,返回被删除的值,如果键不存在,会报错 |
修改 | 字典 [键] = 值 | 键存在,会修改键值对的值 |
查询 | 字典 [键] | 根据键取值,键值对不存在会报错 |
字典.get (键) | 根据键取值,键值对不存在会返回None,不会报错 |
3.3应用场景
-
在开发中,字典的应用场景是:
-
使用 多个键值对 ,存储 描述一个 物体的 相关信息 ——描述的数据信息
-
将 多个字典 放在 一个列表 中,在进行遍历,在循环体内部针对每一个字典进行 相同的处理
-
4.函数
1.基本概念
- 所谓 函数,就是把 具有独立功能的代码块 组织成一个整体,在需要的时候 调用
- 函数的使用包含两个步骤:
- 定义函数——在函数中编写代码,实现功能
- 调用函数——执行编写的代码
- 函数的作用 ,在开发程序时,使用函数可以提高编写的效率以及代码的 重用性
2.函数的定义
定义函数的格式如下:
def 函数名():
函数封装的代码
...
- def 是英文 define 的缩写
- 函数名称 应该能够简单明确的表达 函数功能 ,以方便后续的调用
- 函数名称 的命名应该 符合 标识符的命名
- 可以由 字母、下划线、和数字组成
- 不能以数字开头
- 不能与关键字重名
3.函数的调用
调用函数很简单的,通过 函数名 ( ) 即可完成对函数的调用
4.第一个函数
需求
- 编写一个打招呼 say_hello 的函数,封装三行打招呼的代码
- 在函数下方调用打招呼的代码
name = "小明"
# 解释器指定这里定义了一个函数
def say_hello():
print("Hello")
print("World")
print("Python")
print(name)
# 只有在调用函数时,之前定义的函数才会被执行
# 函数执行完成之后,会重新回到之前的程序中,继续执行后续的代码
say_hello()
print(name)
5.函数的参数
演练需求
- 开发一个 func_cum 的函数
- 函数能够实现 两个数字的求和 功能
演练代码如下:
def func_sum():
num1 = 10
num2 = 20
result = num1 + num2
print("{} + {} = {}".format(num1, num2, result))
func_sum
思考一下存在什么问题
| 函数自能处理 固定数值 的相加
如何解决?
- 如果能吧需要计算的数字,在调用函数时,传递到函数内部就好了
5.1参数的概念
- 函数的参数,可以传递数据给函数内部,增加函数的 通用性
- 在函数 内部 ,把参数当作 变量 使用,进行需要的数据处理
- 函数调用时,按照函数定义的 参数顺序,把 希望在函数内部处理的数据,通过参数传递
5.2设置函数的参数
- 在函数名的后面的小括号内部填写 参数
- 多个参数之间使用 , 分隔
def func_sum(num1, num2):
result num1 + num2
print("{} + {} = {}" % (num1, num2, result))
func_sum(intA, intB)
6.函数的返回值
6.1概念
- 开发中,有时会希望 一个函数执行结束后,告诉调用者一个结果,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理
- 返回值 是 函数给调用方提供的结果
6.2设置返回值
- 在函数中使用 return 关键字可以返回结果
- 调用函数一方,可以 使用变量 来 接受 函数的返回结果
def func_sum(num1, num2):
"""对两个数字的求和"""
return nu1 + num2
# 调用函数,并使用 result 变量接收计算结果
result = func_sum(intA, intB)
print("计算结果是%d" % result)
|不设置返回值,会返回None,表示没有任何数据
6.3return
- 一旦执行 return,函数中后续代码不会执行
def func():
a = 1
return a
print("Hello") # 这行代码不会被执行
func()
5.模块的使用
1.什么是模块
模块就是一个 .py 的文件
模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块
2.为什么要使用模块
模块可以帮我们完成如下几件事:
- 多人协同开发
- 使用大牛留下的工具包
- 使代码结构更加灵活,降低耦合性,方便管理
3.如何使用模块
1.import
在 Python 中使用关键字 import 来引入某个模块,比如要引入模块 random, 就可以在文件最开始的地方用 import random 来引入
形如:
import module1,module2...
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入
在调用 math 模块中的函数时,必须这样引用
模块名.函数名
-
想一想:
|为什么必须加上模块名调用呢?
-
答:
|因为可能存在这样一种情况:在多个模块中含有相同名称的函数,此时如果姿势通过函数名来调用,解释器无法知道到底要调用哪个函数。所以如果像上述这样引入模块的时候,调用函数必须加上模块名
import random # 这样会报错 print(randint(1, 3)) # 这样才能正确输出结果 print(random.randint(1, 3))
2.from…import
有时候我们只需要用到模块中的某个函数/变量,只需要引入该函数即可,此时可以用下面方法实现:
from 模块名 import 函数名1,函数名2...
示例:
from random import randint
# 使用from...import * 可以导入当前模块的索引函数/变量,导入的函数可以之间使用,无需指定模块名
print(randint(1, 3))
print(randrange(1, 6))
注意:
- 这提供一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多使用
4.as 关键字的使用
-
给模块定义别名
import random as ra # 使用as关键字,可以给函数/变量或者模块起一个别名,在调用时更为简便 print(ra.randint(1, 3))
-
给函数、变量定义别名
from random import randint as ra # 使用as关键字,可以给函数/变量或者模块起一个别名,在调用时更为简便 print(ra(1, 3))
注意
- 如果使用as关键字进行修饰,那修饰前的变量名或函数名将无法使用
- 使用as关键字时要注意,修饰后的名称与其他变量或模块名不能冲突,否则会造成程序错误
- 使用场景因人而异,一般时防止导报冲突或者简化代码使用
5.模块使用示例
from pyecharts.charts import Bar
data_dict = {'苹果':12, '香蕉':16, '葡萄':23, '水蜜桃':13, '火龙果':21}
bar = (
Bar()
.add_xaxis(list(data_dict.keys())) # 横坐标
.add_yaxis("销售额(万元)", list(data_dict.values)) # 纵坐标
.set_global_opts()
)
bar.render()