python - (简洁、高效、适用范围广泛)
pythone能做什么?
测试开发、人工智能、网络爬虫、大数据开发…
python的安装
- 前往官网下载:https://www.python.org/downloads/ 下载最新版本
- 双击安装,安装教程不细说,随便百度都能百度到
- 安装成功后,允许cmd窗口,输入python,测试是否安装成功
hello world
第一个程序:输出 hello world!!!
# 运行 cmd 黑窗口
C:\Users\33242>python
Python 3.11.1
>>> print("hello world!!!")
hello world!!!
下载pyCharm
- 前往官网下载最新版:https://www.jetbrains.com/pycharm/download/#section=windows
- 安装步骤及pj步骤参考:https://www.quanxiaoha.com/pycharm-pojie/pycharm-pojie-jihuoma.html
python基础语法
字面量
什么是字面量?
在代码中被写下来,固定的值,称之为字面量
常见的字面量
整数、浮点型、字符串…
注释
# 我是单行注释
"""
我是多行注释
"""
变量
是指在程序运行中,能够存储计算结果和表示值的概念
变量名 = 变量值
数据类型
# 查看数据类型
type("hello wold")
type(100)
type(100.00)
数据类型转换
int(100.00) # 将x转换为整数
floot(100) # 将x转换为浮点数
str(100) # 将x转换为字符串,任何数据都可以通过str转换为字符串
标识符
标识符就是,类的名字,方法的名字,变量的名字…
- 见名知意
- 下划线命名法
- 英文字母全小写
运算符
算术运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 两个对象相加 a + b 输出结果 30 |
- | 减 | 得到负数或是一个数减去另一个数 a - b 输出结果 -10 |
* | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 |
/ | 除 | b / a 输出结果 2 |
// | 取整除 | 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
% | 取余 | 返回除法的余数 b % a 输出结果 0 |
** | 指数 | a**b 为10的20次方, 输出结果 100000000000000000000 |
赋值运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | 把 = 号右边的结果 赋给 左边的变量,如 num = 1 + 2 * 3,结果num的值为7 |
复合赋值运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | 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 |
字符串扩展内容
- 单引号定义法:hello = ‘world’
- 双引号定义法:hello = “world”
- 三引号定义法:hello = “”“world”“”
# 三引号定义法,和多行注释的写法一样,同样支持换行操作。
# 使用变量接收它,它就是字符串
# 不使用变量接收它,就可以作为多行注释使用。
#可以使用:\来进行转义
#单引号内可以写双引号或双引号内可以写单引号
数据输入
name = input()
判断语句
布尔类型
- true 真
- false 假
if语句的基本格式
age = 18
if age >= 18:
print("成年了")
if-else语句的基本格式
if age>=18:
print('true')
else:
print('false')
if-elif-else语句的基本格式
if age>=18:
print('true')
elif age>=0:
print('输入有误')
else:
print('false')
while循环的基础语法
count = 1
while(count<=10):
print(f"第 {count} 个值")
count = count + 1
for循环的基础语法
# for循环就是将字符串内容:依次取出
# for循环也被称为:遍历循环
name = 100
for i in name:
print(i)
range语句
# 语法一
range(num) # 表示从0开始到num结束,不含num本身
# 语法二
range(num1,num2) # 表示从num1开始,到num2结束,不包含num2本身
# 语法三
range(num1,num2,step) # 表示从num1开始,到num2结束,不包含num2本身,并设置数字直接的步长
# 例如:range(5,10,2) 得到的数据是:5,7,9
continue 和 break
# continue 中断本次循环,直接进入下一次循环
# break 终止循环
# 例continue
for i in range(10):
print(i)
continue
print('B')
# 例break
for i in range(10):
print(i)
break
print('D')
函数
函数是指,组织好的,可重复使用的,用来实现特定功能的代码块
# 上代码
name = 'zfc'
length = len(name)
print(name)
# len() 就是python内置的函数,组织好的,可重复使用的,实现特定功能的
函数的语法
def 函数名(传入的参数):
函数体...
return # 返回值 # 如果返回值不需要则可以省略
函数的返回值定义语法
def add(a,b):
return a+b
num = add(1,3)
print(num)
函数的说明文档
def add(a ,b):
"""
add方法是一个加法的功能
:param a: 数值1
:param b: 数值2
:return: 两数的结果
"""
return a + b
数据容器
list(列表)
使用方式 | 作用 |
---|---|
列表.append(元素) | 向列表中追加一个元素 |
列表.extend(容器) | 将数据容器的内容依次取出,追加到列表尾部 |
列表.insert(下标, 元素) | 在指定下标处,插入指定的元素 |
del 列表[下标] | 删除列表指定下标元素 |
列表.pop(下标) | 删除列表指定下标元素 |
列表.remove(元素) | 从前向后,删除此元素第一个匹配项 |
列表.clear() | 清空列表 |
列表.count(元素) | 统计此元素在列表中出现的次数 |
列表.index(元素) | 查找指定元素在列表的下标 |
找不到报错ValueError | |
len(列表) | 统计容器内有多少元素 |
特点:
- 可以容纳多个数据(上限为2**63-1、9223372036854775807个)
- 可以容纳不同类型的数据 (混装 )
- 数据是有序存储的 (有下标序号)
- 允许重复数据存在
- 可以修改 (增加或删除元素等
# 基本语法
# 字面量
['A','B','C','D','E']
# 定义变量
num = ['A','B','C','D','E']
# 定义空变量
num = [] or num = list()
# 根据列表的下表索引,取出数据
print(num[0])
# 根据索引查找值
number = num[0]
# 在指定位置插入新值
num[0] = 'ZFC'
# 在列表中元素的插入
nun.insert(1,'YH') # index1 元素的坐标 index2xiu'g
# 在列表中元素的追加
num.append('F')
# 追加新的列表元素
new_num = ['a','b','c']
num.extend(new_num)
# 删除列表元素,根据下标
# 语法一
del num[1]
# 语法二,pop可以获取返回值,
text = num.pop(2) # text 就是你删除的元素
# 语法三,根据内容删除
num.remove('A')
#语法四,清空列表
num.clear()
# 统计元素在列表中的数量
count = num.count('A')
print(count)
# 统计列表中元素的数量
length = len(num)
print(length)
tuple(元组)
元组,被定义了就不能被修改,相当于只读的list
方法 | 作用 |
---|---|
index() | 查找某个数据,如果数据存在返回对应的下标,否则报错 |
count() | 统计某个数据在当前元组出现的次数 |
len(元组) | 统计元组内的元素个数 |
特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据(混装)
- 数据是有序存储的(下标索引)
- 允许重复数据存在
- 不可以修改(增加或删除元素等)
- 支持for循环
# 基本语法
# 字面量
('A','B','C','D','E')
# 定义变量
num = ('A','B','C','D','E')
# 定义空变量
num = tuple()
# 元组的的相关方法和list的一样
字符串的定义和操作
操作 | 说明 |
---|---|
字符串[下标] | 根据下标索引取出特定位置字符 |
字符串.index(字符串) | 查找给定字符的第一个匹配项的下标 |
字符串.replace(字符串1, 字符串2) | 将字符串内的全部字符串1,替换为字符串2不会修改原字符串,而是得到一个新的 |
字符串.split(字符串) | 按照给定字符串,对字符串进行分隔不会修改原字符串,而是得到一个新的列表 |
字符串.strip(字符串) / 字符串.strip() | 移除首尾的空格和换行符或指定字符串 |
字符串.count(字符串) | 统计字符串内某字符串的出现次数 |
len(字符串) | 统计字符串的字符个数 |
特点
- 只可以存储字符串
- 长度任意(取决于内存大小)
- 支持下标索引
- 允许重复字符串存在
- 不可以修改(增加或删除元素等)
- 支持for循环
str = 'hello world'
# 通过下标获取索引
str[0]
# index 方法
str_index = str.index('w')
print(str_index)
# 字符串替换
str.replace('str1','str2') # 将str1 替换为 str2
# 字符串分割
list =str.split(" ") # 根据空格分割
print(list)
# 字符串去除空格
str.strip() # 去除str字符串前后的空格
str.strip('o') # 去除str字符串中的 o
序列的常用操作 - 切片
切片,就是从序列中,取出一个子序列
[A,B,C,D,E,F,G]
||
||
[C,D,E]
# 语法
序列[起始下标:结束下表:步长]
# 起始下标表示从何处开始,可以留空,留空视作从头开始
# 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
# 步长表示,依次取元素的间隔
# 步长1表示,一个个取元素
# 步长2表示,每次跳过1个元素取
# 步长N表示,每次跳过N-1个元素取
# 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
set(集合)
set集合,是无序的,所以不支持下标索引访问
操作 | 说明 |
---|---|
集合.add(元素) | 集合内添加一个元素 |
集合.remove(元素) | 移除集合内指定的元素 |
集合.pop() | 从集合中随机取出一个元素 |
集合.clear() | 将集合清空 |
集合1.difference(集合2) | 得到一个新集合,内含2个集合的差集原有的2个集合内容不变 |
集合1.difference_update(集合2) | 在集合1中,删除集合2中存在的元素集合1被修改,集合2不变 |
集合1.union(集合2) | 得到1个新集合,内含2个集合的全部元素原有的2个集合内容不变 |
len(集合) | 得到一个整数,记录了集合的元素数量 |
特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据(混装)
- 数据是无序存储的(不支持下标索引)
- 不允许重复数据存在
- 可以修改(增加或删除元素等)
- 支持for循环
# 基本语法
# 字面量
{'A','B','C','D','E'}
# 定义变量
num = {'A','B','C','D','E'}
# 定义空变量
num = {}
# 添加新元素
num.add('add')
# 移除元素
num.remove('A')
# 随机去除元素
ran_element = num.pop()
# 清空集合
num.clear()
# 取出集合1和集合2的差集(集合1有而集合2没有的)
set1 = {1,2,3}
set2 = {2,3,4}
set3 = set1.difference(set2)
# 消除差集 在set1 里消除和 set2 相同的元素
set1.difference_update(set2)
#将集合1和集合2组合成新集合
set3 = set1.union(set2)
# 集合的长度
len(set1)
字典的定义
字典,同样使用{}进行定义,不过里面的内容采用 key:value 的形式
操作 | 说明 |
---|---|
字典[Key] | 获取指定Key对应的Value值 |
字典[Key] = Value | 添加或更新键值对 |
字典.pop(Key) | 取出Key对应的Value并在字典内删除此Key的键值对 |
字典.clear() | 清空字典 |
字典.keys() | 获取字典的全部Key,可用于for循环遍历字典 |
len(字典) | 计算字典内的元素数量 |
特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据
- 每一份数据是KeyValue键值对
- 可以通过Key获取到Value,Key不可重复(重复会覆盖)
- 不支持下标索引
- 可以修改(增加或删除更新元素等)
- 支持for循环,不支持while循环
# 定义字典的字面量
{key1:value1,key2:value2,key3:value3}
# 定义字典变量
map = {key1:value1,key2:value2,key3:value3}
# 定义空字典
map = dict()
# 通过 key 来获取内容
map[key1]
# 新增元素
map['zfc'] = 18
# 修改元素
map['zfc'] = 19
#更新和修改的语法是一样的,取决于key是否存在
# 删除元素
name = map.pop('zfc') # 返回值是删除的元素
# 清空元素
map.clear()
# 获取全部key
map.keys()
# 获取字典中的元素数量
len(map)
数据容器比较总结
列表 | 元组 | 字符串 | 集合 | 字典 | |
---|---|---|---|---|---|
元素数量 | 支持多个 | 支持多个 | 支持多个 | 支持多个 | 支持多个 |
元素类型 | 任意 | 任意 | 仅字符 | 任意 | Key:Value / Key:除字典任意类型 / Value:任意类型 |
下标索引 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
重复元素 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
可修改性 | 支持 | 不支持 | 不支持 | 支持 | 支持 |
数据有序 | 是 | 是 | 是 | 否 | 否 |
使用场景 | 可修改、可重复的一批数据记录场景 | 不可修改、可重复的一批数据记录场景 | 一串字符的记录场景 | 不可重复的数据记录场景 | 以Key检索Value的数据记录场景 |
应用场景
-
列表:一批数据,可修改、可重复的存储场景
-
元组:一批数据,不可修改、可重复的存储场景
-
字符串:一串字符串的存储场景
-
集合:一批数据,去重存储场景
-
字典:一批数据,可用Key检索Value的存储场景
2022/12/14/13:00 ZFC