# if 选择结构
# if ... elif ... else
'''
格式:
if 表达式1:
代码块1(缩进)
代码块2(缩进)
代码块3(缩进)
elif 表达式2:
代码块4(缩进)
代码块5(缩进)
代码块6(缩进)
else:
代码块7(缩进)
代码块8(缩进)
'''
# age = int(input("请输入年龄:"))
age = 200
if age <= 0 | age >= 150:
print("成精了...")
elif age >= 18:
print("成年...")
elif age < 18:
print("未成年...")
else:
print("未知")
# 循环结构
'''
Python中为了语法简洁 没有 do while
for循环
while循环:
格式:
while(表达1):
代码块(需要缩进)
代码块(需要缩进)
代码块(需要缩进)
'''
# 阶乘
# 5! = 5 * 4 * 3 * 2 * 1
res = 1
n = 5
while (n >= 1):
res *= n
n -= 1
print(res)
# 函数
'''
格式:
def 函数名(参数1,参数2,参数3):
代码块(需要缩进)
代码块(需要缩进)
代码块(需要缩进)
# 需要返回值
return 数据
'''
def chengfa(a, b):
print(a * b)
chengfa(3, 4)
'''
1 -> n的和
'''
def sumN(n):
sum = 0
for i in range(n):
sum += i
print(sum)
sumN(100)
# 递归函数
'''
递归函数:
1.需要调用自己
2.需要有一个停止标记
'''
# 阶乘
# 5! = 5 * 4 * 3 * 2 * 1
def jiecheng(n):
if n == 1:
return 1
else:
return n * jiecheng(n - 1)
print(jiecheng(5))
# 函数的参数
'''
参数类型:
位置参数、默认参数、可变参数、关键字参数
'''
# 位置参数
'''
特点:
1. 位置参数可包含多个
2. 函数调用时位置参数不能为空
'''
def chengfa1(a, b):
print(a * b)
# chengfa1(1) #b为空报错
# 默认参数
'''
特点:
1.定义函数的时候,需要去指定参数的默认值
2.使用时,可通过再次传入参数值进行覆盖默认值
'''
def chengfa2(a, b=0):
print(a * b)
chengfa2(2) #0
chengfa2(2, b=3) #6
# 可变参数
'''
特点:
1.可变参数的写法需要在参数名之前加一个*如: *args
2.可变参数实际是一个tuple
'''
def chengfa3(*args):
print(args, type(args))
chengfa3(2, 3, 4, 5)
def chengfa4(*args):
sum = 1
for i in args:
sum *= i
print(sum)
chengfa4(4, 5, 6, 7)
# 关键字参数
'''
特点:
1.定义参数时需要用**参数名表示关键字参数 如:**kwargs
2.类型是一个字典类型
3.传入时需要按照k=v形式进行传入
4.可以接收多个kv参数
'''
def info(name, age, **kwargs):
print(name, age, kwargs, type(kwargs))
info("zhangsan", 23, gender="男")
info("zhangsan", 23, gender="男", skill="打游戏")
# 判断传入参数有没有age,如果有则打印,没有则提示:请输入age
def info2(name, **kwargs):
if ('age' in kwargs.keys()):
print("age:", kwargs["age"])
else:
print('请输入age')
info2(name="lisi")
info2(name="wangwu", age=3)
# 匿名函数
# 获取x的y次方
lambda_function = lambda x, y: x ** y
print(lambda_function(2, 3))