news 2026/9/7 22:15:40

Python基础学习笔记(学习更新中)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python基础学习笔记(学习更新中)

Python基础入门

文章目录

  • Python基础入门
  • 1 Python核心语法
    • 1.1 数据存储与运算
      • ==*字面量与变量*==
      • ==*常见的数据类型*==
      • ==*输入与输出*==
      • ==*运算符*==
    • 1.2 流程控制语句
      • ==*条件判断*==
      • ==*模式匹配*==
      • ==*循环*==
    • 1.3数据存储容器
      • ==*列表list*==
      • ==*字符串str*==
      • ==*元组tuple*==
      • ==*集合set*==
      • ==*字典dict*==
      • ==*总结*==

1 Python核心语法

1.1 数据存储与运算

字面量与变量

字面量:指程序中,直接书写的固定值(数据),就称为字面量。

#字面量的写法print(10)#整数(int)print(1.1)#浮点数(float)print(True)#布尔(bool)print(False)#布尔(bool)print("hello")#字符串(str)print(None)#空值(NoneType)#布尔类型本质也是整数类型(True - 1,False - 0)print(True+1)#2print(False-1)#-1

变量:程序中用来存储单个数据的容器,通常会把经常发生变化的数据存储在变量中。
定义格式:变量名 = 变量值

# 变量 ---> Python是动态类型语言, 一个变量是可以存储不同类型的数据的 (但是项目开发中, 推荐变量只存储一种类型的数据)num=123.4print(num)num="ok"print(num)num=Trueprint(num)

标识符:是程序员在代码中为变量、函数、类等元素所起的名字。

命名规则(规定):
1.只能包含字母(a-z,A-Z)、数字(0-9)、下划线(_)
2.不能以数字开头
3.不能使用关键字:True、False、None、and、or、if、else、elif、for、while等
4.严格区分大小写,比如:age,Age,AGE是三个变量

#标识符true=1print(true)name1="Python"print(name1)

命名规范(变量):
1.见名知意
2.多个部分使用下划线连接
3.英文字母全小写

常见的数据类型

字符串
字符串的三种定义方式:

# 双引号定义s1="Hello"# 单引号定义s2='Python'# 三引号定义 (多行字符串)s3=""" Hello: 欢迎大家进入到Python的学习! 大家记得点赞哦 ~ """

常见的转义字符

\' (单引号)、\" (双引号)、\n (换行符)、\t (制表符)

字符串的拼接:

# 字符串拼接(两种)s1="我喜欢""Python"print(s1)msg1="我喜欢"msg2="Python"print("龟叔说: "+msg1+" , "+msg2)

案例:字符串的拼接

三种方式:

  1. 最常见的(但是只能拼接str型,str(age)强转str型)
# 案例: ---> str(int数字) ---> 将int类型的数字转为字符串name="涛哥"age=18pro="软件工程"hobby="Python、Java"print("大家好, 我是"+name+", 今年"+str(age)+"岁, 学习的专业是"+pro+", 爱好 "+hobby)
  1. %占位符
# 字符串格式化 --> 方式一: %s 占位符name="涛哥"age=18pro="软件工程"hobby="Python、Java"print("大家好, 我是 %s , 今年 %s 岁, 学习的专业是 %s , 爱好 %s"%(name,age,pro,hobby))
  1. f"内容{变量/表达式}" (推荐)
name="涛哥"age=18pro="软件工程"hobby="Python、Java"print(f"大家好, 我是{name}, 今年{age}岁, 学习的专业是{pro}, 爱好{hobby}")

输入与输出

# 获取键盘上输入的数据 -- input(...)name=input("请输入你的名字:")age=input("请输入你的年龄:")print(f"你的姓名:{name},你的年龄:{age}")

运算符

算术运算符
算术运算符是用于执行基本的数学运算的符号,作用于一个或多个操作数上,并产生一个计算结果。

# 算术运算符print("10 + 4 = ",10+4)# 加print("10 - 4 = ",10-4)# 减print("10 * 4 = ",10*4)# 乘print("10 / 4 = ",10/4)# 除 - 2.5print("10 // 4 = ",10//4)# 整除(结果为整数) - 2print("10 % 4 = ",10%4)# 取余/求模 - 2print("10 ** 4 = ",10**4)# 幂指数, 10的4次方 - 10000

赋值运算符
赋值运算符是编程语言中用于将值(或表达式的结果)保存到变量中的运算符。(把右边的值,赋给左边的变量)

比较运算符
比较运算符,也称为关系运算符,用于比较两个值之间的关系。会计算运算符两边的表达式,然后返回一个布尔值作为结果(True – 表示比较关系成立;False – 表示比较关系不成立)。

逻辑运算符
逻辑运算符是用于连接多个条件(布尔)表达式(其值为“真”或“假”),并返回一个最终布尔结果的运算符。

案例:键盘输入一个整数, 判断这个数字是否在 10-20 之间 --> 在: True, 不在: False

n=int(input("请输入一个整数: "))print(f"{n}在10-20之间: ",n>=10andn<=20)# and连接的条件是并且的关系, 两个条件同时成立(True), 结果才是True; 否则, 就是False



1.2 流程控制语句

条件判断

if语句
只有满足指定条件,才会执行对应的代码逻辑

#if条件判断基本格式if要判断的条件:条件成立时,要执行对应的操作# if条件判断:如果分数超过680, 我就去清华读书score=600ifscore>680:print("欢迎你来清华读书")print("也恭喜你即将踏入精彩的大学生活")

if-else语句:

if要判断的条件:条件成立时,执行对应的操作1else:条件不成立时,执行的操作2

案例:

# if...else...案例:完成B站登录功能的实现# 正确的账号和密码ok_account="18888888888"ok_password="666888"# # 1. 接收用户输入的账号和密码account=input("请输入您的B站账号: ")password=input("请输入您的B站密码: ")# # 2. 判断账号和密码是否全部正确, 如果都正确, 则登录成功ifaccount==ok_accountandpassword==ok_password:print("登录成功 ~")print("进入B站首页 ~")else:print("登录失败 !")print("账号或密码错误 !")

if-elif-else语句:

# if...elif...else结构if要判断的条件1:条件成立时,执行对应的操作1elif要判断的条件2:条件成立时,执行对应的操作2else:条件不成立时,执行的操作3
# if...elif...else结构num=int(input("请输入数字:"))ifnum>0:print(f"{num}是 正数")elifnum<0:print(f"{num}是 负数")else:print(f"{num}是 0")

模式匹配

match…case语句:
结构模式匹配就是用一个清晰的 模板 去精准的匹配数据的结构和内容,匹配成功则执行响应的操作。

循环

while循环语句

for循环语句
while循环是通过条件表达式来控制是否要进行下一次循环的。而for循环,本质是一种轮询遍历机制,对一批内容进行逐个处理。


else可写可不写,只要for语句执行完自己会退出

# for循环: 遍历输入的字符串msg=input("请输入需要遍历的字符串: ")forsinmsg:# s 表示遍历出来的元素 ; msg 表示需要遍历的数据print(f"元素:{s}")else:print("遍历结束!")

range语句:
作用:生成指定规则的数字序列

  • 用法1:range(end) -> 获取一个从0开始,到end结束的数字序列(不含end本身)
    range(5)获取的数据就是 0,1,2,3,4
  • 用法2:range(start,end) -> 获取一个从start开始,到end结束的数字序列(不含end本身)
    range(2,8)获取的数据就是 2,3,4,5,6,7
  • 用法3:range(start,end,step) -> 获取一个从start开始,到end结束的数字序列,step步长(不含end本身)
    range(0,10,2)获取的数据就是 0,2,4,6,8
# 案例1: 计算 1-100 之间所有的奇数之和total=0# 记录累加之和原始foriinrange(1,101):ifi%2==1:# 奇数total+=i

嵌套循环:

例子:

# 嵌套循环案例: 打印99乘法表foriinrange(1,10):# 外层循环 - 控制行forjinrange(1,i+1):# 内层循环 - 控制列print(f"{j}x{i}={j*i}",end="\t")print()

1.3数据存储容器

列表list

列表是数据容器中的一类,是一次性可以存储多个数据(元素)的。

定义:列表名称 = [元素1,元素2,元素3,元素4,元素5…]
s = [54, 15, 75, 108, 23, 78, 75]

特点:

  • 可以存储不同类型的元素
  • 元素有序、可以重复、元素可以修改


一般用正向索引
列表元素的查看,修改,删除:

  • 查看:list[0]
  • 修改:list[0] = “A”
  • 删除:del list[0]

列表切片
切片是指对操作的数据截取其中一部分的操作。列表、字符串、元组都支持切片操作。
语法:s[start:end:step]
特点:

  • start:开始索引,不指定默认为0(第一个元素的索引)
  • end:结束索引,不指定默认为列表长度(直到列表末尾)
  • step:步长,不指定默认为1

例子:
s=[“A”,“B”,“C”,“D”,“E”,“F”]
s[0:3:1]为[“A”,“B”,“C”]

列表常见方法:

Python中用于数据统计的常见语句:

  • min():获取最小值
  • max():获取最大值
  • sum():求和
  • len():获取元素的个数

案例1:
将用户输入的10个数字,存储到一个列表中,并将列表中的数字进行排序, 输出其中的最小值、最大值 和 平均值。

# 1. 定义列表num_list=[]# 2. 将用户输入的10个数字存入列表foriinrange(10):num=int(input("请输入一个有效的数字: "))num_list.append(num)print("数字列表: ",num_list)# 3. 排序num_list.sort()print("排序后的数字列表: ",num_list)# 4. 输出其中的最小值、最大值 和 平均值。---> sum() 求和 ; len() 获取元素的个数(列表的长度)print("最小值: ",num_list[0])print("最大值: ",num_list[-1])print("平均值: ",sum(num_list)/len(num_list))

案例2:
合并两个列表中的元素,并对合并的结果进行去重处理(去除列表中的重复元素)。

快速合并两个列表的方法:

  • 使用+运算符直接合并
  • 使用*进行解包操作(解包指将列表这一类数据容器解开成独立的元素)

num_list1=[19,23,54,64,875,20,109,232,123,54]num_list2=[55,80,72,35,60,123,54,29,91]# 1. 合并列表num_list=num_list1+num_list2print("合并后的原始列表: ",num_list)# 2. 去重重复记录new_list=[]# 去重重复记录后的列表fornuminnum_list:# 判断new_list中是否存在num元素, 如果不存在, 再添加ifnumnotinnew_list:# 判断元素是否存在于列表中, 如果存在, 则返回True; 不存在, 返回Falsenew_list.append(num)print("去重重复记录后的列表: ",new_list)

列表推导式:

含义:列表推导式就是按照一定规则快速生成一个列表的方法

  • 格式1:列表名称=[要插入列表的数据 for i in 列表]
  • 格式2:列表名称=[要插入列表的数据 for i in 列表 if 条件]

案例:
生成1-20的平方列表。

num_list2=[i**2foriinrange(1,21)]print(num_list2)

案例2:
从如下数字列表中提取所有偶数,并计算其平方,组成一个新的列表。

num_list=[12,32,45,77,80,92,33,57,97,98,110,111,122]new_list=[i**2foriinnum_listifi%2==0]print(new_list)

字符串str

字符串是字符的容器,一个字符串中可以存放任意数量的字符
特点:

  • 不可变性(无法修改)
  • 有序性
  • 可迭代性

字符串中的每一个字符元素都有其对应的下标(索引),通过元素对应的索引,就可以获取到对应的元素。

字符串操作常用方法:

案例:
邮箱格式验证:用户输入一个邮箱, 验证邮箱格式是否正确(包含一个@和至少一个.), 如果输入正确, 输出"邮箱格式正确", 否则输出"邮箱格式错误"。

# 1. 接收用户输入的邮箱mail=input("请输入邮箱: ")# 2. 判断邮箱的格式ifmail.count("@")==1and"."inmail:print(f"{mail}是合法的邮箱")else:print(f"{mail}是非法的邮箱")

元组tuple

元组是不可变的序列,类似于列表,但创建后不能修改。

定义:元组名称 = (元素1,元素2,…)
定义空元组:元组名称 = () 、元组名称 = tuple()

特点:

  • 可以存储不同类型的元素
  • 元素可以重复、有序、不可以修改 (支持索引访问、切片)

方法:

  • count():统计某元素在元组中出现的次数
  • index():查找某个元素在元组中的索引位置(第一次出现的位置)

元组的组包和解包:
组包(Packing):将多个值合并到一个容器(元组、列表)中。
解包(Unpacking):将容器(元组、列表)解开成独立的元素,分别赋值给多个变量。

# 定义元组, 组包t1=(5,7,9,1)# 定义元组, 组包t2=5,7,9,1# 基础解包a,b,c,d=t1# (*)扩展解包x,*y,z=t2# x为5,y为[7, 9],z为1s,*o=t2# s为5,o为[7, 9, 1]*o,e=t2# o为[5, 7, 9],e为1

集合set

集合(set)是一种无序的、不可重复、可修改的数据容器。

定义:s1 = {“C”, “D”, “X”, “T”, “O”, “U”}
定义空集合:s2 = set()

特点:

  • 无序
  • 不可重复
  • 可修改

注:由于集合是无序的,因此是不支持下标索引访问的

集合常用操作:

集合set操作的运算符:

  • &:交集
  • |:并集
  • -:差集

案例:

# 1. 找出同时选修了 法语 和 艺术 的学生 french_set art_set# 方式一:fa_set=french_set.intersection(art_set)print(f"同时选修了 法语 和 艺术 的学生:{fa_set}")# 方式二: & --> 交集fa_set2=french_set&art_setprint(f"同时选修了 法语 和 艺术 的学生:{fa_set2}")
# 3. 找出选修了足球, 但是没有选修篮球的学生 - 差集# 方式一:fb_set=football_set.difference(basketball_set)print(f"选修了足球, 但是没有选修篮球的学生:{fb_set}")# 方式二: - ---> 差集fb_set2=football_set-basketball_setprint(f"选修了足球, 但是没有选修篮球的学生:{fb_set2}")
# 4.1 获取到学生名单 -- 并集 (|)all_set=football_set.union(basketball_set).union(french_set).union(art_set)all_set=football_set|basketball_set|french_set|art_set

集合推导式:
写法:

  • 变量名称={i表达式 for i in 列表}
  • 变量名称={i表达式 for i in 列表 if 条件}

与之前列表推导式用法类似

字典dict

使用键值对(key:value)来存储数据,每一个键都对应一个值,通过键(key)可以快速找到对应的值(value)。

定义:字典名称 = {key: value, key:value, key:value …}
定义空字典:字典名称 = {}、字典名称 = dict()
根据key获取value:值 = 字典名称[key]

注:字典(dict)中的value可以是任何类型的数据,而key不能为可变类型(如:不能为 列表list、集合set、字典dict)。

注意事项:

  • value可以是任意类型,而key必须是不可变类型(不能为list、set、dict)
  • 字典内的key不允许重复,如果重复定义,后面的覆盖前面的
  • 字典是没有索引下标的,不能根据索引获取值,只可以根据key获取value

字典常用操作:

字典是支持遍历的,如下:

# 遍历dict1={"王林":670,"李慕婉":608,"许立国":580,"韩立":688}forkindict1.keys():print(f"{k}:{dict1[k]}")foritemindict1.items():print(f"{item[0]}:{item[1]}")fork,vindict1.items():print(f"{k}:{v}")

总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 22:15:38

SolidWorks直螺纹孔设计规范与实战技巧

1. SolidWorks直螺纹孔功能解析直螺纹孔是机械设计中最高频使用的特征之一&#xff0c;在SolidWorks中通过"异型孔向导"工具实现。不同于简单的钻孔操作&#xff0c;直螺纹孔需要同时考虑螺纹规格、钻孔深度、螺纹深度等参数的专业配合。1.1 螺纹标准选择要点在创建直…

作者头像 李华
网站建设 2026/9/7 22:14:41

002户型适老化改造全攻略:动线、防滑与无障碍设计要点

1. 户型现状研判与适老化设计思路拿到002户型的第一件事&#xff0c;不是急着选地砖颜色&#xff0c;也不是比价买智能马桶&#xff0c;而是先把原始户型图和现场照片摊开&#xff0c;仔仔细细走一遍老人的日常生活动线。我经手过不少适老化改造项目&#xff0c;最深的一点体会…

作者头像 李华
网站建设 2026/9/7 22:12:03

【信创】国产操作系统统信UOS文件夹黄色小锁解决办法

统信UOS文件夹黄色小锁解决办法 锁图标含义&#xff1a;当前普通用户没有写入权限&#xff0c;文件夹所有者是root/其他用户&#xff0c;只读不可修改、删除。路径是 /home/Adata/UOSaarch64_deepseek 方式1&#xff1a;临时管理员打开&#xff08;不改永久权限&#xff09; 在…

作者头像 李华
网站建设 2026/9/7 22:11:53

Excel相对引用与INDIRECT函数实战技巧

1. 为什么需要掌握单元格相对引用技巧刚接手部门销售数据报表时&#xff0c;我发现前任留下的表格有个致命问题——所有业绩计算公式都是手动输入的绝对引用。当新增业务员时&#xff0c;需要逐个修改公式&#xff0c;经常出现漏改错改的情况。这种场景正是相对引用函数大显身手…

作者头像 李华
网站建设 2026/9/7 22:10:24

OpenClaw+钉钉机器人:用AI Agent实现自然语言查数据库的实战指南

1. 方案整体设计&#xff1a;为什么是OpenClaw与钉钉的组合先说结论&#xff1a;OpenClaw和钉钉机器人这套组合&#xff0c;最大的价值在于把“AI能力”和“日常协作入口”做了一次低成本缝合。你不需要单独开发一个管理后台&#xff0c;也不需要给团队装一堆新工具&#xff0c…

作者头像 李华
网站建设 2026/9/7 22:10:17

易飞ERP审核流程WebAPI开发与集成实践

1. 项目背景与核心价值易飞ERP作为国内主流的企业资源计划系统&#xff0c;其审核流程是企业内部管控的关键环节。传统审核操作通常需要登录系统界面逐一点击完成&#xff0c;对于批量处理或系统集成场景效率较低。我们团队通过WebAPI方式实现了对所有单据类型的审核/撤审功能封…

作者头像 李华