print(i)
1,2,3,4,5,6,7,8,9
for i in range(1,10,2)
print(i)
1 3 5 7 9
for i in range(10):
print(i)
0 1 2 3 4 5 6 7 8 9
注意: range()生成的序列不包含end数字
range默认从0开始,默认步长为1,所以range(10),代表0,1,。。。。9
1.2.6、ennumerate()
语法:
ennumerate(可遍历对象,start = 0)
start参数可以用来设置遍历数据的下标起始值,默认为0
list1 = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
for i in enumerate(list1):
print(i)
‘’’
(0, ‘a’)
(1, ‘b’)
(2, ‘c’)
(3, ‘d’)
(4, ‘e’)
‘’’
for index, char in enumerate(list1, start=1):
print(f’下标是{index}, 对应的字符是{char}')
‘’’
下标是1, 对应的字符是a
下标是2, 对应的字符是b
下标是3, 对应的字符是c
下标是4, 对应的字符是d
下标是5, 对应的字符是e
‘’’
1.3.1、tuple()
tuple():将某个序列转换成元组
list1 =[10,20,30,40,50,20] #列表
S1 = {100,200,300,400,500} #集合
print(tuple(list1))
(10, 20, 30, 40, 50, 20)
print(tuple(s1))
(100, 200, 300, 400, 500)
1.3.2、list()
list(): 将某个序列转换成列表
t1 = (‘a’,‘b’,‘c’,‘d’,‘e’)
s1 = {100,200,300,400,500}
print(list(t1))
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
print(list(s1))
[100, 200, 300, 400, 500]
1.3.3、set()
set():将某个序列转换成集合
list1 = [10,20,30,40,50,20]
t1 = (‘a’,‘b’,‘c’,‘d’,‘e’)
print(set(list1))
{40, 10, 50, 20, 30}
print(set(t1))
{‘e’, ‘a’, ‘c’, ‘d’, ‘b’}
集合可以快速完成列表去重
集合不支持下标
=======================================================================
作用:用一个表达式创建一个有规律的列表或控制一个有规律列表。列表推导式又叫列表生成式
需求:创建一个0-10的列表。
- while循环实现
1.准备一个空列表
list1 = []
2.书写循环,依次追加数字到空列表list1中
i = 0
while i< 10:
list1.append(i)
i += 1
print(list1)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- for循环实现
list1 = []
for i in range(10):
list1.append(i)
print(list1)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 列表推导式实现
for i in range(10):
print(i)
0、1、2、3、4、5、6、7、8、9
list1 = [i for i in range(10)]
print(list1)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第一个i作为后面式子的返回值
2.1.1、带if的列表推导式
需求:创建0-10的偶数列表
- range()步长实现
list1 = [i for i in range(0,10,2)]
print(list1)
[0, 2, 4, 6, 8]
- if实现
list1 = [i for i in range(10) if i % 2 == 0]
print(list1)
[0, 2, 4, 6, 8]
2.1.2、多个for循环实现列表推导式
需求:创建列表如下
[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
代码如下
list =[]
for i in range(1,3): #1,2
for j in range(3): #0,1,2
#列表里面追加元组
list.append((i,j))
print(list)
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
多for的列表推导式等同于for循环嵌套
list1 = [(i,j) for i in range(1,3) for j in range(3)]
print(list1)
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
作用:快速合并列表为字典或提取字典中的目标数据
- 创建一个字典:字典key是1-5的数字,value是这个数字的2次方
dict1 = {i:i**2 for i in range(1,5)}
key: value
因为是字典,所以为大括号
{1:2, 2:4, 3:9, 4:16}
- 将两个列表合并为一个字典
list1 = [‘name’,‘age’,‘gender’]
list2 = [‘Tom’,20,‘man’]
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)
{‘name’: ‘Tom’, ‘age’: 20, ‘gender’: ‘man’}
- 提取字典中目标数据
counts = {‘MBP’: 268, ‘HP’: 125, ‘DELL’: 201, ‘Lenovo’: 199, ‘acer’: 99}
#需求:提取上述电脑数量大于等于200的字典数据
counts1 = {key:value for key,value in counts.items() if value >=200}
print(counts1)
{‘MBP’: 268, ‘DELL’: 201}
需求:创建一个集合,数据为下方列表的2次方
list1 = [1,1,2]
代码如下:
list1 = [1,1,2]
set1 = {i ** 2 for i in list1}
print(set1)
{1,4}
注意:集合有数据去重功能
列表推导式
[xx for xx in range()]
字典推导式
{xx1 : xx2 for … in …}
集合推导式
{xx for xx in …}
======================================================================
def 函数名(参数):
代码1…
代码2…
…
函数名(参数)
-
不同需求,参数可有可无
-
在python中,函数必须先定义后使用
-
函数先定义后调用,如果先调用会报错
-
如果没有调用函数,函数里面的代码不会执行
-
当调用函数的时候,解释器回到定义函数的地方去执行下方缩进的代码,当这些代码执行完,回到调用函数的地方继续向下执行,定义函数的时候,函数体内部缩进的代码并没有执行
定义函数时同时定义了接收用户数据的参数a和b,a和b是形参
def add_num2(a,b):
result = a + b
print(result)
调用函数时传入了真实的数据10和20,真实数据为实参
add_num2(10,20) # 30
def buy():
return ‘糖’
使用变量保存函数返回值
goods = buy()
print(goods) # 糖
思考:如果代码多,我们是不是需要在很多代码中找到这个函数定义的位置才能看到注释?如果想更⽅
便的查看函数的作⽤怎么办?
答:函数的说明文档
语法:
def 函数名(参数)
“”“说明文档的位置”“”
代码
…
- 查看函数的说明文档
help(函数名)
- 案例
def sum_num(a, b):
“”“求和函数”“”
return a + b
help(sum_num)
- 打印一条横线
def print_line():
print(‘-’ * 20)
print_line()
- 打印多条横线
def print_line():
print(‘-’ * 20)
def print_lines(num):
i = 0
while i < num:
print_line()
i += 1
print_lines(5)
========================================================================
变量作用域指的是变量⽣效的范围,主要分为两类:局部变量和全局变量
4.1.1、局部变量
所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效
def testA():
a = 100
print(a)
testA() # 100
print(a) # 报错 name ‘a’ is not defined
-
变量a是定义在 testA 函数内部的变量,在函数外部访问则立即报错
-
局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量。
4.1.2、全局变量
所谓全局变量,指的是在函数体内、外都能⽣效的变量
思考:如果有⼀个数据,在函数A和函数B中都要使⽤,该怎么办?
答:将这个数据存储在⼀个全局变量里面。
定义全局变量a
a = 100
def testA():
print(a) #访问全局变量a,并打印变量a存储的数据
def testB():
print(a) #访问全局变量a,并打印变量a存储的数据
testA() #100
testB() #100
思考: testB 函数需求修改变量a的值为200,如何修改程序?
定义全局变量a
a = 100
def testA():
print(a)
def testB():
这里是定义了一个局部变量a
a = 200
print(a)
testA() #100
testB() #200
print(f’全局变量a={a}') #全局变量a =100
思考:在testB函数内部的 a = 200 中的变量a是修改全局变量a 吗?
答:最后一行得到a的数据是100,仍然是定义全局变量a时候的值,没有返回testB函数内部的200
综上:testB函数内部的 a = 200是定义了一个局部变量
思考:如何在函数体内部修改全局变量?
定义全局变量a
a = 100
def testA():
print(a)
def testB():
global 关键字声明 a 是全局变量
global a
a = 200
print(a)
testA() #100
testB() #200
print(f’全局变量a={a}') #全局变量a =200
一般实际开发中,一个程序往往由多个函数组成,并且多个函数共享某些数据
- 共享全局变量
1. 定义全局变量
glo_num = 0
def test1():
声明 glo_num 是全局变量
global glo_num
修改全局变量
glo_num = 100
def test2():
调⽤test1函数中修改后的全局变量
print(glo_num)
2. 调⽤test1函数,执⾏函数内部代码:声明和修改全局变量
test1()
3. 调⽤test2函数,执⾏函数内部代码:打印
test2() # 100
- 返回值作为参数传递
def test1():
return 50
def test2(num):
print(num)
1. 保存函数test1的返回值
result = test1()
2.将函数返回值所在变量作为参数传递到test2函数
test2(result) # 50
def return_num():
return 1
return 2
result = return_num()
print(result) # 1
如果一个函数有两个return,只会执行第一个return,原因是因为return可以退出当前函数,导致return下⽅的代码不执⾏
def return_num():
return 1, 2
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
[外链图片转存中…(img-0Ue34jcU-1711953092352)]
[外链图片转存中…(img-fQd8bKUH-1711953092352)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-pMY9JnEA-1711953092353)]
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划