首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >深入浅出一下Python基础知识点

深入浅出一下Python基础知识点

作者头像
盛透侧视攻城狮
发布2025-06-15 09:27:47
发布2025-06-15 09:27:47
3640
举报

本篇技术博文摘要 🌟

  • 本目录系统性地梳理了Python函数的核心概念与进阶应用,涵盖从基础语法到高级特性的完整知识体系。
  • 内容由浅入深,包括变量作用域、参数传递机制、匿名函数、Python 3.8新特性等基础知识,逐步过渡到闭包、装饰器(含参数传递、多装饰器叠加、返回值处理)等复杂技术,最后深入函数式编程中的高阶函数(map、filter、reduce)。
  • 通过理论结合实践(如练习与复盘),帮助学习者全面掌握函数的灵活运用,提升代码设计与工程化能力。

引言 📘

  • 在这个变幻莫测、快速发展的技术时代,与时俱进是每个IT工程师的必修课。
  • 我是盛透侧视攻城狮,一名什么都会一丢丢的网络安全工程师,也是众多技术社区的活跃成员以及多家大厂官方认可人员,希望能够与各位在此共同成长。

一、Python的变量

1. 变量的定义与特性

定义:

  • 变量是内存中的一块区域,用于存储数据,值可动态改变。
特性:

  • 无需显式声明,通过赋值自动定义。
  • 动态类型:变量类型由值决定,可随时重新赋值不同类型。
示例:
代码语言:javascript
复制
x = 1          # 定义整型变量
_x = "Hello"   # 定义字符串变量
print(x)       # 输出:1

  • x和_x都是合法的变量名,print()是输出函数,能够输出变量的值,也可以不使用小括号。

  • python中的变量不需要声明,变量的赋值操作即是变量声明和定义的过程,如_x=2即是声明和定义的过程。还可以给几个变量同时赋值,示例代码如下:
代码语言:javascript
复制
a,b,c=4,5,6
print(a)
print(b, c)

  • a,b,c=4,5,6同时给3个变量进行了赋值操作,简化了多个变量赋值的代码。

2. 变量命名规则

  • 由字母、数字、下划线组成,首字符不能为数字。
  • 区分大小写(如 varVar 不同)。
  • 不可使用关键字(如 if, for)。
示例:
代码语言:javascript
复制
a = 10     # 合法
_2b = 20   # 合法
# 2c = 30  # 非法(首字符为数字)

3. 变量赋值与动态类型

  • 多变量赋值:同时为多个变量赋值。
  • 动态类型:变量类型随赋值自动切换。
示例:
代码语言:javascript
复制
a, b, c = 4, 5, 6    # 多变量赋值
print(a, b, c)       # 输出:4 5 6

w = 123              # 整型
w = 5.21             # 变为浮点型
print(id(w))         # 内存地址变化(通过 id() 查看)

二、Python常用的数据类型

1. 数字类型

  • 整型:无小数部分的数字(如 10)。
  • 浮点型:含小数部分的数字(如 3.14)。
示例:
代码语言:javascript
复制
w=123
print(w)
123
w=5.21
print(w)
5.21

  • 首先定义了变量w=123,此时的w值是整数,w即使整型变量,当w=5.21时,w又成为了浮点型变量,由此可以看出,变量的类型是能改变的,这点与Java、C#语言等是有区别的。
  • 这是因为当python给已经存在的变量再次赋值时,实际上是创建了一个新的变量,即使变量名相同,但标识并不相同,变量的标识可以使用id函数输出。
代码语言:javascript
复制
w=123
print(id(w))

w=5.21

print(id(w))

  • 上述都是对变量x的标识进行打印,赋值前后的标识并不相同。
(2) 布尔类型

  • 值:True(真) / False(假)。
  • 运算:用于逻辑判断
示例:
代码语言:javascript
复制
print(10 > 5)   # 输出:True
print(5 == 3)   # 输出:False
(3) 运算符

  • 算术运算符+, -, *, /, %(取余), **(幂)。
  • 优先级:括号优先,乘除高于加减
示例:
代码语言:javascript
复制
print(8 % 5)    # 取余 → 3
print(2 ** 3)   # 幂运算 → 8
print((6+5)*4)  # 括号优先 → 44

代码语言:javascript
复制
x,y=10,2

print(x+y,x-y,x*y,x/y)

print(2+4*8)

print((6+5)*4)

2. 字符串

(1) 字符串定义与多行文本

  • 定义方式:单引号、双引号、三引号(多行文本)。
  • 转义字符:\n(换行)、\t(制表符)。
示例:
代码语言:javascript
复制
s1 = '单引号'
s2 = "双引号"
s3 = '''多行
字符串'''
(2) 字符串操作
  • 重复:用 * 重复字符串。
示例:
代码语言:javascript
复制
name='王五'
address="长安街"
content='''欢迎来到北京'''
print (name)

print(address)

print(content)

  • 变量name使用单引号,变量address使用双引号,变量content使用三引号,他们都是合法的python字符串类型。需要注意的是,单引号和双引号的作用是一样的,可以根据习惯使用,但定义多行文字时,必须要使用三引号
代码语言:javascript
复制
print(3 * "a")  # 输出:aaa

3. 列表

(1) 列表定义与结构

  • 定义:用 [] 包裹,元素以逗号分隔。
  • 特性:有序、可修改。
示例:
代码语言:javascript
复制
nums = ['111', '222', '333']  # 定义列表
(2) 列表操作

  • 取值:通过索引(从0开始)。
  • 修改:直接赋值。
  • 添加:append()(末尾添加)、insert()(指定位置插入)。
  • 删除:del 删除元素
示例:
代码语言:javascript
复制
nums = ['111', '222', '333']  # 定义列表
print(nums[0])          # 输出:111
nums[0] = "001"        # 修改元素
nums.append("555")     # 末尾添加
del nums[1]            # 删除元素
print(nums[1])

代码语言:javascript
复制
num=['111','222','333','444']
print(num[0:1])
print(num[0:3])
print(num[1:2])
print(num[2:])

  • [0:1]表示由索引0开始,索引位置1之前的元素,所有只能取到第1个元素,[0:3]可以取到索引3之前的元素,即列表中第1、2、3个元素,其他的与此相同。
添加列表元素
代码语言:javascript
复制
num=['111','222','333','444']
num.insert(1,'001')
print(num)

  • 语句insert(1,’001‘)的作用是在索引位置1前插入’001‘,索引位置1的当前元素是’222‘,’001‘插入到它的前面。
查找列表元素
代码语言:javascript
复制
>>> num=['111','222','333']
>>> ('111')in num
True
>>> ('444')in num
False

  • 字符串’111‘在列表中存在,返回True;字符串’444‘在列表中不存在,返回False
合并列表
代码语言:javascript
复制
num1=['111','222']
num2=['333','444']
numAll=(num1+num2)
print(numAll)

numAll=(num2+num1)
print(numAll)

  • 定义了两个列表num1和num2,使用加号进行合并操作时,加号后面的列表元素会追加到前面列表的后面。
重复列表
代码语言:javascript
复制
num1=['111','222']
num=(num1*5)
print(num)

  • 定义了两个列表num1和num2,使用加号进行合并操作时,加号后面的列表元素会追加到前面列表的后面。

4. 元组

  • 元组(tuple)和列表类似,也是python的一种数据结构,由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何的修改操作,元组通常表示一行数据,而元组中的元素表示不同的数据项。
(1) 元组定义与不可变性

  • 定义:用 () 包裹,元素不可修改。
  • 应用场景:数据安全、高性能需求
示例:
代码语言:javascript
复制
t = ('111', '222', '333')  # 定义元组
(2) 元组操作

  • 取值:与列表相同(通过索引)。
  • 转换:元组与列表可互相转换。
示例:
元组和列表可以做互相转
代码语言:javascript
复制
num=('111','222','333','444')      #元组
listNum =list(num)                  #转换为列表
print (listNum)

(listNum[0])='001'    #修改列表

print( listNum)

print (type(num))           #输出元组类型

print (type(listNum))       #输出列表类型

  • 首先定义了元组num,然后把它转换为列表listNum,对列表listNum可以做修改元素的操作,使用type()函数输出了元组的列表的类型。

5. 字典

(1) 字典定义与键值对

  • 定义:用 {} 包裹,键值对结构(key: value)。
  • 键的特性:唯一且不可变(如字符串、数字)。
(2) 字典操作

  • 取值:通过键访问值。
  • 修改:直接对键赋值。
  • 删除:del 删除键值对。
示例:
1)字典的创建
代码语言:javascript
复制
mobile = {'tom':'19991111','bob':'19982222','alice':'19973333'}
print(mobile)
print(type(mobile))

  • 定义了一个字典mobile,存储的键是姓名,值是电话号码,他们构成了对应的关系,使用type函数可以查看到它的类型是’dict‘。
2)字典的取值操作

  • 字典的取值与元组和列表有所不同,元组和列表都是通过数字索引获取对应位置的值,而字典是通过键获取对应的值。取值的语法如下
代码语言:javascript
复制
mobile = {'tom':'19991111','bob':'19982222','alice':'19973333'}
print(mobile["tom"])

print(mobile["bob"])

  • 分别使用键“tom”“bob”可以获取到他们对应的值。需要注意的是,键是唯一的,而不同键的值却可以相同,当定义多个键相同时,字典中只会保留最后一个定义的键值对
代码语言:javascript
复制
mobile = {'tom':'19991111','tom':'1×××222','tom':'19993333'}
print(mobile)

  • 字典中定义了3个“键-值”对,他们的键是相同的,最后输出时只有最后一个定义的“键-值”对存在。
3)字典的添加、修改、删除操作

  • 字典添加新元素只需要对新键进行赋值即可,字典中不存在的键,会自动进行添加
代码语言:javascript
复制
mobile = {'tom':'19991111','bob':'19982222'}
(mobile['alice'])='19993333'
print(mobile)

  • 字典的键’alice‘在定义时并不存在,赋值后,键’alice‘被添加到字典中。字典键值对的键名是区分大小写的。
  • 修改字典中的元素,直接使用存在的键赋值
代码语言:javascript
复制
mobile = {'tom':'19991111','bob':'19982222'}
(mobile['bob'])='19993333'
print(mobile)

删除字典中的元素

  • 语法:del 字典名['键']
代码语言:javascript
复制
mobile = {'tom':'19991111','bob':'19982222'}
(mobile['bob'])='19993333'
del (mobile['tom'])
print(mobile)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本篇技术博文摘要 🌟
  • 引言 📘
  • 一、Python的变量
    • 1. 变量的定义与特性
      • 定义:
      • 特性:
      • 示例:
    • 2. 变量命名规则
      • 示例:
    • 3. 变量赋值与动态类型
      • 示例:
  • 二、Python常用的数据类型
    • 1. 数字类型
      • 示例:
      • (2) 布尔类型
      • 示例:
      • (3) 运算符
      • 示例:
    • 2. 字符串
      • (1) 字符串定义与多行文本
      • 示例:
      • (2) 字符串操作
      • 示例:
    • 3. 列表
      • (1) 列表定义与结构
      • 示例:
      • (2) 列表操作
      • 示例:
    • 4. 元组
      • (1) 元组定义与不可变性
      • 示例:
      • (2) 元组操作
      • 示例:
    • 5. 字典
      • (1) 字典定义与键值对
      • (2) 字典操作
      • 示例:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档