✨始发站
🚩Python的基础语法,冲冲冲!
🚩注:本篇为python基础语法篇,因博主之前使用java,所以本基础语法篇实为自用丐版!
🌲 你好,世界!
安装环境&Pycharm:
🌲 Python基础语法
🌷 数据类型
Python的六个标准数据类型:
- Numbers(数字)
- String(字符串):不可变可重复,改变得到一个新的字符串
- List(列表):有序可变可重复序列
- Tuple(元组):有序不可变可重复序列
- Dictionary(字典):无序key-value集合
- Set(集合):无序不重合集合
不可变数据:Number(数字)、String(字符串)、Tuple(元组);
可变数据:List(列表)、Dictionary(字典)、Set(集合)。
🍄查看数据类型
可以使用type()语句查看数据类型
print(type("你好,世界!"));
print(type(123));
print(type(121.12));
🍄数据类型转换
常用有:
int(x)
:将对象转换为数字float(x)
将对象转换为浮点数str(x)
将对象转换为字符串
print(type(121.12));
print(type(str(121.12)));
🍄字符串拓展
🌱三种定义形式
str1 = 'a';
str2 = "a";
# 三引号定义支持换行操作,使用变量接受其就是字符串,不接受便是注释
str3 = """a""";
🌱字符串格式化
正常情况下使用+
拼接字符串,但是字符串与数字及其他类型无法由+
拼接,所以此时可以通过%s
来进行拼接
%
:占位符s
: 要占位的变量
i = 20000;
str2 = "元"
str1 = '3090ti价值%s元' % i;
str2 = '3090ti价值 %s %s' % (i,str2);
print(str1);
print(str2);
多个变量占位用
()
括起来,按顺序填入,此处是将数字转换为字符串进行占位
在python中,支持多种数据类型占位,最常用的是这三种:
s
: 将内容转换为字符串占位d
: 将内容转换为整数占位f
: 将内容转换为fudianxing占位
🍫 精度控制
i = 20.22;
print("数字:%f"%i);
我们可以使用辅助符号m.n
来控制数据的宽度与精度:
m
: 控制宽度,要求使用数字(很少使用),设置宽度若小于数据自身,则不生效n
: 控制小数点精度,要求使用数字,会进行小数的四舍五入
i = 20.22;
print("宽度为10,精度为2:%10.2f"%i);
print("宽度为10,精度为1:%10.1f"%i);
print("不设宽度,精度为1:%.1f"%i);
🍫 格式化的另一种写法
使用f内容{变量}
的方式进行格式化(f其实就是format
格式化的首字)
i = 20.22;
print("宽度为10,精度为2:%10.2f"%i);
print("宽度为10,精度为1:%10.1f"%i);
print("不设宽度,精度为1:%.1f"%i);
print(f"另一种格式化:{i}");
也可以对表达式进行格式化
拓展:
制表符\t
作用:使多行字符串对齐
🌷 注释
注释分为两类
- 单行注释:以
#
开头 - 多行注释:以一对
"""
(三引号)引用
🌷 for循环
for循环本质上是遍历序列类型
语法:
for 变量 in 序列类型:
执行逻辑
序列类型指其内容连续,有序,可使用下标索引的一类数据容器,包括:
- 字符串
- 元组
- 列表
- 等
🍄range语法
- range(num):从0开始,不包括num本身
for x in range(5):
print(x)
#输出结果:0,1,2,3,4
- rage(num1,num2):从num1开始,不包括num2本身
for x in range(5,10):
print(x)
#输出结果:5,6,7,8,9
- rage(num1,num2,step):从num1开始,步长为step,不包括num2本身
for x in range(5,10,2):
print(x)
#输出结果:5,7,9
🌷函数
🍄函数定义
def 函数名(传参):
"""
函数说明文档:
:parm x:形参x的说明
:parm y:形参y的说明
:return:返回值的说明
"""
函数体
return 返回值
🍄返回值之None类型
基本上和java并无太大区别,需要注意的是:
当函数未使用return语句返回数据时,依旧有返回值
python中有一个特殊的字面量:None,其类型为`class 'NoneType',无返回值的函数实质是返回了None这个字面量
def test():
print("test")
x = test()
print(x)
print(type(x))
🌱应用场景
None作为一个特殊的字面量,用于表示空,无意义,其有多种应用场景
- 用于函数无返回值
- 用于if判断上:
- None等同于flase
- 一般用于函数中主动返回None,配合if判断做相关判断 - 用于声明无内容的变量
- 定义变量但暂时不需要变量有具体值,可以用None代替
🍄变量作用域
需要注意的是,python若是要在函数中操纵全局变量,可在函数体相关逻辑前使用globa
关键字声明此时操纵的是全局变量,而不是同名的临时变量;
i = 1
x = 2
def test():
global i
i = 100
x = 200
return f"i={i},x={x}"
str = test()
print(str, i, x)
🌷数据容器
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串,数字,布尔等。
数据容器根据特点不同,如
- 是否支持重复元素
- 是否可修改
- 是否有序
- …
分为5类:列表(list),元组(tuple),字符串(str),集合(st),字典(dict)
🍄列表(list)-有序可变可重复
# 字面量
[元素1,元素2,元素3...]
# 定义变量
变量名称 = [元素1,元素2,元素3...]
# 定义空列表
变量名称 = []
变量名称 = list()
列表也可嵌套列表,如:
result = [[1,2,3],[4,5,6,]]
这同样是一个列表
🌱列表索引
可使用result[索引]
取出对应位置的的数据,和java不同的点在于,python可以从索引-1开始从右向左取值:
list = ["我","喜欢","影"]
print(list[0],list[1],list[2])
print(list[-1],list[-2],list[-3])
🌱列表常用方法
list.index(元素)
: 查询某元素下标列表[下标] = 值
: 修改指定索引下的值列表.insert[索引,值]
: 在指定索引处插入值列表.append[元素]
: 在指定索引后追加一个元素列表.extend[元素]
: 在指定索引后追加一批元素del 列表[索引]
: 删除列表指定索引位置的元素列表.pop[元素]
: 取出列表指定索引位置的元素(删除)列表.remove[元素值]
: 删除第一个匹配的元素列表.clear()
: 清空列表列表.count(元素值)
: 统计某元素在列表中的数量len(列表)
: 统计列表元素数量
🍄元组(tuple)-有序不可变可重复
元组一旦定义完成便不可修改
场景:
程序内封装数据且不被篡改
# 字面量
(元素1,元素2,元素3...)
# 定义变量
变量名称 = (元素1,元素2,元素3...)
# 定义空元组
变量名称 = ()
变量名称 = tuple()
🍄拓展:数据容器(序列)的切片操作
定义:从一个序列中取出一个子序列
语法:序列[起始下标 : 结束下标 : 步长]
表示从序列中指定位置开始,依次取出元素,到指定位置,得到一个新序列(三个传参皆可省略,可倒序切片)
常用方法:spilt
,replace
🍄集合(Set)-无序不可变不可重复
# 字面量
{元素1,元素2,元素3...}
# 定义变量
变量名称 = {元素1,元素2,元素3...}
# 定义空集合
变量名称 = set{}
🌱集合方法
集合.pop()
: 从集合中随机取出一个元素集合1.difference(集合2)
: 取出集合1和集合2的差集(得到一个新集合,集合1有集合2没有)集合1.difference_update(集合2)
: 对比两集合,在集合1中删除和集合2相同的元素(集合2不变,集合1 被修改)集合1.union(集合2)
取并集(得到一个去重)
🍄字典(Dictionary)-无序可变不可重复
# 字面量
{key1:value,key2:value,key3:value}
# 定义变量
变量名称 = {key1:value,key2:value,key3:value}
# 定义空字典
变量名称 = {}
变量名称 = dict{}
🌱字典方法
字典.pop(key)
: 从字典中删除键为key的数据字典.keys
: 取出字典中的所有key字典.clear
: 清空字典len(字典)
: 统计字典中所含元素数量
🌷拓展
🍄json数据转换
python中json转换仅需引入json
模块
json.dumps(data)
: 将python数据转换为json数据json.load(data)
: 将json数据转换为python数据
🍄装饰器
装饰器其实也是一种闭包,其功能就是在不破坏目标函数原有代码和功能的前提下,为目标函数增加新功能
例:
原有代码:
def sleep():
import random
import time
pringt("睡觉中")
time.sleep(random.randint(1,5))
- 装饰器一般写法:
def sleep():
import random
import time
pringt("睡觉中")
time.sleep(random.randint(1,5))
def outer(func):
def inner():
print("准备睡觉")
func()
print("睡醒")
return inner
# 调用
fn = outer(sleep)
- 注解
def outer(func):
def inner():
print("准备睡觉")
func()
print("睡醒")
return inner
# 注解
@outer
def sleep():
import random
import time
pringt("睡觉中")
time.sleep(random.randint(1,5))
# 调用
sleep()