python基础
python
一、基础语法
1、注释符:单行(#)、多行(''' """)
2、数值类型:整数int、浮点数float、布尔值Ture 和 False
3、变量命名规范
(1)只能以数字、字母、下划线组成
(2)不能使用数字开头
(3)不能使用python中的关键字:Flase,None,True,and,as,assert,async,await,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield
4、字符串
(1)字符串可以用单、双、三引号表示
(2)字符串转义: \可以对特殊符号进行转义
\'表示一个'
\"表示一个"
\t表示制表符
二、字符串的操作
1、字符串格式化
字符串拼接: +
name = input("输入名字:")
money = input("输入金额:")
res = "今年收到"+name+",交来学费"+money+"元,开此收据为凭"
format格式化
name = input("输入名字:")
money = input("输入金额:")
res = "今收到{ },交来学费{ }元,开此收据为凭"
print(res.format(name,money))
res = "今收到{ },交来学费{ }元,开此收据为凭".format('张三',800)
print(res)
传统的%号格式化
%s:表示一个字符串占位符(后面填任意类型的数据都可以)
%d:表示一个整数占位符(后面只能填数值类型的数据,会转换为整数)
%f:表示一个浮点数占位符(后面只能填数值类型的数据)
name = input("输入名字:")
money = input("输入金额:")
res = "今收到{%s,交来学费%s元,开此收据为凭" % (name,money)
2、字符串格式化format
可以在{ }中指定填充数据的位置
res = "今收到{1},交来学费{0}元,开此收据为凭".format('张三',800)
格式化小数位数
res = "今收到{},交来学费{:.3f}元,开此收据为凭".format('张三',800.88888)
格式化字符串的长度
{:^20}:^居中对齐
{:<20}:<左对齐
{:>20}:>右对齐
3、字符串索引和切片
python中所有的序列类型(字符串、列表、元组)数据都有索引
索引:
正向索引:从前往后的顺序 ,从0开始数,越往后值越大
反向索引:从后往前的顺序,从-1开始数,越往后值越小
索引取值: 结果 = 数据[索引值]
s1 = 'abcdefg'
res = s1[4]
切片: [start : end]
结果 = 数据[起始位置索引 : 终止位置的索引]
切片注意点:取头不取尾 (左闭右开)
加步长的切片: [start : end : length]
结果 = 数据[起始位置索引:终止位置的索引:步长] #起始位置和终止位置不写,默认代表最前面和最后面
4、字符串的常用操作方法
format:格式化方法
replace:转换字符串中的内容
参数1:需要转换的内容
参数2:替换之后的内容
参数3:可以指定替换的次数(默认是替换所有的值)
s = 'python123java123php123'
res = s.replace("123","999",2)
find:查找指定字符的索引位置(返回查找到的第一个索引)
join:字符拼接的方法
a="pyhton"
b="java"
c="php"
res = ''.join((a,b,c))
split:把一个字符串以分隔符为分割点,分割成多个字符
strip:去除前后指定的字符(默认是去除空白字符)
upper:将字符串中的小写字符转换为大写
lower:将字符串中的大写字符转换为小写
三、列表和元组
1、列表 list
列表定义:使用[ ]来表示,每个元素使用逗号隔开
列表中的元素是有序的:
支持索引取值
支持切片:切片得到的结果还是一个列表
*列表中可以存放任意类型的数据
2、列表的增删改查
增加数据:
append:往列表的结尾添加一个元素
li = [11,22,33,44]
li.append(99)
insert:往列表中指定索引位置插入元素
li =[11,22,33,44]
li.insert(0,'number')
*若要在列表最后面指定索引位置插入元素,不能用反向索引-1,它会先转换成正向索引
extend:一次性往列表添加多个元素
li =[11,22,33,44]
li.extend([55,66,77])
删除数据:
remove:指定元素进行删除(如果存在多个,则只会删除第一个)
pop:指定索引进行删除,调用完会返回删除的数据(默认删除的是最后一个)
clear:清空列表中的所有元素
修改数据:通过索引指定位置进行修改
li =[11,22,33,44]
li[0] =111
查找数据: ①通过索引取值
li =[11,22,33,44]
res = li[2]
②index查找元素对应索引(元素不存在时,代码会报错)
li =[11,22,33,44]
res = li.index(22)
③count统计某个元素的个数
li =[11,22,33,44,22]
res = li.count(22)
3、列表的复制和排序
copy:可以用来复制列表
li =[11,22,33,44]
li2 = li.copy()
sort:对列表进行排序
升序:li.sort()
降序:li.sort(reverse = True)
4、元组 tuple
元组的定义:使用( )来表示
元组中可以存放任何的数据类型
元组中的元素是有序的:
支持索引取值
支持切片
元组中的元素是不可变的(定义了之后,元组内部的元素不能进行添加、删除和修改)
元组的查找:
① 通过索引取值
②index:查找指定元素的索引
③count:统计某个元素在元组中的个数
5、列表&字符串&元组:统称序列类型
序列的共同特征:
①都有索引值,内部元素是有序的
②支持切片操作
都可以通过len()去获取元素的个数
数据类型的相互转换
数值:
整数:int
浮点数:float
布尔值:bool
序列:
字符串:str
列表:list
元组:tuple
int和float转换为str
n1=99
n2=88.88
n3=str(n1)
n4=str(n2)
print(type(n1),type(n2),type(n3),type(n4))
列表转换字符串
li =[11,22,33,44]
s = str(li)
若字符串包含了列表,则用内置函数eval:识别字符串中的有效python表达式(去除字符串两边的引号)
s ='[11,22,33,44]'
li2=eval(s)
四、字典&数据类型总结
1、字典的基本使用
数值: int、float、bool
序列:str、list、tuple(有序的、有索引)
dic,set(没有下标索引)
字典:字典是通过{ }来表示的,每一条数据都是一个键值对(key:value),每个元素之间使用逗号隔开
字典的键在同一个字典中是唯一的,不能重复
在列表和元组中获取指定的数据只能通过下标索引进行获取
li = ['amim',18,'女']
res=li[0]
定义一个字典
dic={"age":18,"name":"amimchan","gender":"女"}
res=dic["name"]
2、字典的增删查改
增:
①通过键进行赋值
dic={"name":"amimchan","gender":"女"}
dic["age"]=18
②update一次性往字典中添加多个元素
dic={"name":"amimchan"}
dic.update(["gender":"女","age":18])
改:
①通过键进行赋值(有则改,无则增)
dic={"name":"amimchan","gender":"女"}
dic["age"]=28
删:
①pop指定键进行删除(返回删除的元素对应的值)
dic={"age":18,"name":"amimchan","gender":"女"}
res = dic.pop("age")
②popitem删除最后一个加入到字典中的元素。以元组的形式返回键和值
res = dic.popitem()
③clear清空字典
res = dic.clear()
查:
①通过键查找值,如果键不存在会报错(KeyError)
res =dic["age"]
②get:通过键查找值,如果键不存在,不会报错(返回None)
res =dic.get("age")
3、字典的其他方法
4、字典三种的定义方法
5、集合
集合使用{}来定义
注意点:{}代表空字典;空集合使用set{}来定义
集合是可变类型的数据(有增删查改的方法)
集合
6、python中生成随机数
random:生成随机数的官方库
import random
①生成一个随机的整数(指定范围,包含边界值)
res = random.randint(0,3)
②生成一个随机的小数(默认是0到1之间)
res = random.random( )
③生成一个指定范围的小数
res = random.uniform(10,20)
④从列表中随机选择一个数据
li = [11,22,33,44]
res = random.choice(li)
7、数据类型总结
数值: int、float、bool
序列:str、list、tuple
dict、set
不可变类型的数据:数值、字符串、元组
可变类型的数据:列表、字典、集合(有增删改查的方法)
五、条件判断&while循环
1、控制流程-条件判断
代码执行顺序:从上往下
分支:根据不同的条件,执行不同代码
循环:特定的代码重复执行
分支(条件判断)
语法:
① if 条件:
条件成立执行的代码
price= int(input("请输入考试分数:"))
if price>=60:
print("及格")
② if 条件:
条件成立执行的代码
else:
条件不成立执行的代码
price= int(input("请输入考试分数:"))
if price>=60:
print("及格")
else:
print("不及格")
③ if 条件一:
条件成立执行的代码
elif 条件二:
条件成立执行的代码
elif 条件三:
条件成立执行的代码
else:
上面条件都不成立执行的代码
:后面要换行缩进四个空格(tab键)再写代码
2、运算符集合条件判断一起使用
其他运算符
①逻辑运算 and(与)、or(或)、not(非)
②成员运算 in:判断里面的成员、not in:判断不是里面的成员
③身份运算 is:判断id一致、is not:判断id不一致
面试题:== 和 is的区别?
④赋值运算符 = 赋值、+= 、-=、*= 、/=、%=
如:n=0
n += 1
3、while循环(条件循环)
如果条件一直成立,则一直循环做条件满足的事情,直到条件不成立,结束循环
语法:
i = 1
while i <=100"
print ("这是第{}遍hello python".format(i))
i + 1
4、登录的案例(break、continue)
①break强制跳出循环
u='amimchan'
p='123456'
while True:
user = input("输入账号:")
pwd = input("输入密码:")
if user == u and pwd == p
print ("账号密码正确,登录成功")
break
else:
print ("账号密码错误,请重新输入!")
②continue中止当前本轮循环,回到条件判断的地方重新判断条件,接着循环
i < 0
while i <50:
i += 1
if i == 25:
continue
print ("当前的i为:{}",format(i))
5、for循环的介绍
循环遍历
li = [34,66,77,88,99]
for i in li:
if i >60:
print("您的成绩为{},及格",format(i))
else
print("您的成绩为{},不及格",format(i))
六、for循环的使用
1、for循环遍历数据
for i in xxx:
#循环体
①遍历列表
li=[34,66,33,78,66]
for i in li:
if i > 60:
print("您的成绩为{},及格".format(i))
else:
print("您的成绩为{},不及格".format(i))
②遍历字典
for i in dic.valuss():
print(i)
③遍历键和值
for i in dic.items():
k = i[0]
v = i[1]
print("key:",k,"value:",v)
2、for循环和range
3、for循环的关键
七、函数的使用
1、函数的定义
函数可以用来封装独立的功能代码,通过封装可以提高代码的重用率,提高开发效率
1⃣️函数的定义之后不会自动执行
语法:def 函数名():
#函数体(写到函数里面的功能代码)
2⃣️函数调用:函数名(“参数”)
3⃣️函数名的命名规则:(和变量的命名规则一样)
函数名推荐下划线命名法,尽量做到见名知意
2、函数的参数
1⃣️参数的定义:在函数名后面的括号可以拟定参数
2⃣️参数的传递:定义在函数括号后面的参数,需要在调用函数的时候传递进行
3⃣️形参和实参
形参:定义的参数
实参:调用时传递的参数
3、参数传递的方式
调用函数的时候参数传递的类型:
1⃣️位置传参(位置参数)
add(11,22)
2⃣️指定参数名传参(关键字参数)
Add(a=11,b=22)
3⃣️注意点:两种传参方式混合使用的时候,位置参数在前,关键字参数在后
4、参数定义的形式
函数定义的方式:
1⃣️必备参数(必需参数):定义了必须要传,不能多不能少
2⃣️默认参数(缺省参数):调用的时候可以传,可以不传,不传就使用默认值
3⃣️不定长参数(可变参数):调用的时候可以传0个或者多个值
八、函数的作用域&内置函数
1、函数的返回值
函数的返回值:关键值return
函数中没有return,返回值数目=0:返回none
返回值数目=1:返回object(对象)
返回值数目>1:返回tuple(元组)
1⃣️return后面只有一个数据
def add(a,b):
c=a+b
return c
res = add(11,22) #需要用变量接受函数调用之后返回的值
print(“返回c的结果:”,res)
2⃣️return后面有多个数据
def add(a,b):
c=a+b
d=a-b
return c,d
res = add(11,22)
print(“返回c的结果:”,res)
3⃣️当函数执行到return之后,就会结束函数的运行
def add(a,b):
c=a+b
return c
res = add(11,22) #需要用变量接受函数调用之后返回的值
print(“返回c的结果:”,res)
c=a+b
return c
print=c
res = add(11,22)
print(“返回c的结果:”,res)
4⃣️如果函数中有多个分支,每个分支中是否都可以用return (可以)
def func(a,b,method):
if method ==“+”:
print(“a+b的结果:”,a+b)
return a+b
elif method ==“-”:
print(“a-b的结果:”,a-b)
return a-b
res=func(11,22,”-“)
2、全局变量和局部变量
全局变量:直接定义在python文件(模块)中的变量叫做全局变量,在有效范围(作用域)整个文件内容任何地方都可以使用
局部变量:在函数内部定义的变量叫做局部变量,仅限于该函数内部使用
3、global关键字的使用

4、函数内部变量引用的优先级问题
如果函数中的局部变量和全局变量同名,在函数内部使用这个变量的时候,优先使用局部变量
函数内部定义局部变量时,尽量不要和全局变量同名
5、扩展(匿名函数)


6、常用的内置函数






九、文件操作和模块导入
1、文件的基本操作
内置函数open:
参数file:传一个文件名(路径)
参数mode:文件打开的模式
r:read只读
w:write写入
a:add追加
参数encoding:指定编码格式
操作文件的步骤:
1、打开文件:使用内置函数open
2、进行操作(读或者写)
读:read方法
3、关闭文件
close方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?