1.控制语句
1.1 条件控制:if..else
# 判断年龄
def checkAge(age):
if age > 30:
return "您老了~"
else:
return "正年轻~"
if __name__ == "__main__":
print("age = 20", checkAge(20))
print("age = 40", checkAge(40))
# age = 20 正年轻~
# age = 40 您老了~
1.2 条件控制:if..elif..else
def checkScore(score):
if score > 90:
return "优秀"
elif score >= 70:
return "良"
elif score >= 60:
return "及格"
else:
return "差"
if __name__ == "__main__":
print("score = 95", checkScore(95))
print("score = 80", checkScore(80))
print("score = 65", checkScore(65))
print("score = 43", checkScore(43))
# score = 95 优秀
# score = 80 良
# score = 65 及格
# score = 43 差
@注意点: python中没有switch...case
1.3 循环控制: for | while
if __name__ == "__main__":
language = ["Java", "Php", "Go", "Python"]
# 使用for
for n in language:
print("for:", n)
# 使用while
index = 0
while index < len(language):
print("while:", language[index])
index = index + 1
# for: Java
# for: Php
# for: Go
# for: Python
# while: Java
# while: Php
# while: Go
# while: Python
2. 函数入门
2.1 定义
在Python中,函数定义必须以def关键词开始.
# arg1、arg2代表参数
def func_name(arg1,arg2)
""" 函数说明文档 """
# TODO
return x
2.2 调用
## ---- basis/func_demo.py ---- ##
def getSumList(list_num):
""" 把列表中的所有元素相加 """
sumTotal = 0
for n in list_num:
sumTotal = sumTotal + n
return sumTotal
# -----------------
### 当前main包函数 ###
def sumList(list_num):
""" 把列表中的所有元素相加 """
sumTotal = 0
for n in list_num:
sumTotal = sumTotal + n
return sumTotal
if __name__ == "__main__":
list_var = [10, 20, 30, 40, 50, 60, 70, 80]
# 调用basis包里的函数
print("func_demo.getSumList:", func_demo.getSumList(list_var))
# 调用当前包函数
print("main.sumList:", sumList(list_var))
# 调用内置函数
print("sum:", sum(list_var))
# 打印函数说明
print("getSumList函数说明:", func_demo.getSumList.__doc__)
## 输出
# func_demo.getSumList: 360
# main.sumList: 360
# sum: 360
# getSumList函数说明: 把列表中的所有元素相加
3. 参数分类
3.1 可变&不可变类型
Python语言的数据类型有不可变类型和可变类型两种,因此参数也分可变类型和不可变类型;
- 不可变类型:
数值类型、字节串类型、元组类型; - 可变类型:
列表类型、字典类型
对不可变类型参数的传递采用:值传递; 对于可变类型参数的传递采用: 地址传递
当使用可变参数类型传递时,要特别注意:函数内对变量的修改,也会影响到函数外的实参。
3.2 区别演示
def argDemo(str, list_var):
""" 演示可变类型和不可变类型作为参数的区分 """
# 修改字符串(不可变类型)
str = "hello"
# 修改列表
list_var[0] = "hello"
if __name__ == "__main__":
name = "张三"
names = ["张三", "李四"]
print("调用函数前: name:{} names:{}".format(name, names))
argDemo(name, names)
print("调用函数后: name:{} names:{}".format(name, names))
# 调用函数前: name:张三 names:['张三', '李四']
# 调用函数后: name:张三 names:['hello', '李四']
4. 参数传递
4.1 默认参数
def defaultArgDemo(name, age=18):
"""
默认参数演示使用
:param name:
:param age:
:return:
"""
res = "姓名:{} 年龄:{}".format(name, age)
return res
if __name__ == "__main__":
print("当不传age时: ", defaultArgDemo("张三"))
print("当传age时: ", defaultArgDemo("李四", 22))
# 当不传age时: 姓名:张三 年龄:18
# 当传age时: 姓名:李四 年龄:22
4.2 关键字参数
一般我们调用函数时,但是按照函数的形参的顺序传递参数(也就是位置参数),除此之外我们还可以通过关键字传参,如下示例:
def funcDemo(name, age, home):
"""
:param name:
:param age:
:param home:
:return:
"""
res = "姓名:{} 年龄:{} 地址:{}".format(name, age, home)
return res
if __name__ == "__main__":
print("关键字参数演示A: ", funcDemo(age=20, name="张三", home="北京"))
print("关键字参数演示B: ", funcDemo(home="南京", name="李四", age=39))
# 关键字参数演示A: 姓名:张三 年龄:20 地址:北京
# 关键字参数演示B: 姓名:李四 年龄:39 地址:南京
@注:关键字参数传参,和顺序没有关系
4.3 变长参数
4.3.1 以一个*开始
def funcDemo(*args):
"""
以* 开始的变长参数
:param args:
:return:
"""
res = "接收结果:{} 类型:{}".format(args, type(args))
return res
if __name__ == "__main__":
# 传字符串、数字
print("变长参数A: ", funcDemo("张三", 10))
# 传字符串、数字、列表
print("变长参数B: ", funcDemo("张三", 10, ["篮球", "游戏"]))
# 变长参数A: 接收结果:('张三', 10) 类型:<class 'tuple'>
# 变长参数B: 接收结果:('张三', 10, ['篮球', '游戏']) 类型:<class 'tuple'>
@注: 以一个*开始的变长参数,接受到数据会变成元组类型,并且在一个函数定义中,最多只能有一个这样的参数。
4.3.2 以两个*开始
def funcDemo(**args):
"""
以 ** 开始的变长参数
:param args:
:return:
"""
res = "接收:{} 类型:{}".format(args, type(args))
return res
if __name__ == "__main__":
print("运行结果A> ", funcDemo(name="张三", home="北京"))
print("运行结果B> ", funcDemo(name="李四", likes=["动漫", "游戏"]))
# 运行结果A> 接收:{'name': '张三', 'home': '北京'} 类型:<class 'dict'>
# 运行结果B> 接收:{'name': '李四', 'likes': ['动漫', '游戏']} 类型:<class 'dict'>
@注: 以两个*开始的变长参数,接受到数据会变成字典类型,并且在一个函数定义中,最多只能有一个这样的参数。
5.匿名函数
Python使用关键字lambda来创建匿名函数,匿名函数主体是一个表达式,而不是一个代码块,所以能实现的业务逻辑非常有限。
if __name__ == "__main__":
# 定义匿名函数
addFunc = lambda a, b: a + b
# 使用
print("3 + 3 = ", addFunc(3, 3))
print("5 + 5 = ", addFunc(5, 5))
# 结合map遍历每个元素,并乘以10
numbers = [1, 2, 3]
res = map(lambda x: x * 10, numbers)
print("res = ", list(res))
# 3 + 3 = 6
# 5 + 5 = 10
# res = [10, 20, 30]
本文由mdnice多平台发布