千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理
  5 随笔 :: 70 文章 :: 0 评论 :: 9301 阅读

1.理论知识

a.函数的定义

  功能的代码,封装一个独立的模块

b.函数的使用

  封装函数,调用函数

c.函数的作用

  提高代码效率

d.函数的语法

def 函数名(参数,参数):
  逻辑代码
  return
调用:函数名()

e.函数的调用

  函数名():调用函数才会被执行

 

2.演练基础

a.输出3个hello world

def say_hello():
  print('hello world')
  print('hello world')
  print('hello world')
say_hello()    输出结果:hello world  hello world  hello world

b.实现两个数字相加(基础版)

def sum():
  a=10
  b=40
  c=a+b
  print(c)
sum()    输出结果:50

c.实现两个数字相加(优化版)

def sum(a,b):
  c = a + b
  print(c)
a=sum(1,2)   输出结果:3

d.函数返回值:return

a.语法规则

def 函数名(参数,参数):
  逻辑代码
  return
调用:函数名()

b.实例演示

def sum(a,b):
  c = a + b
  return c
a = sum(1, 2)
print(a)    输出结果:3

e.函数空函数:pass

  作用:写了函数未写逻辑代码,让你执行程序不报错

def empty():
  pass

f.函数的参数

a.必须参数(位置参数)

特点:一定要传参,位置一定要相同,个数一定要一样

def sum(a,b):
  return a+b
c=sum(1,2)
print(c)    输出结果:3

b.关键字参数

  特点:命名参数的顺序可以不同

def person(name, age):
  return '我是{},今年{}岁'.format(name, age)
d = person(age='9', name='晓华')
print(d)    输出结果:我是晓华,今年9岁

c.默认参数

def person(name=None, age='12'):
  return '我是{},今年{}岁'.format(name, age)
d = person(name='秋水')
print(d)    输出结果:我是秋水,今年12岁

d.两参存在

特点:若必须参数和默认参数同时存在,必须参数在前,默认参数在后面

def person(age,name=None):
return '我是{},今年{}岁'.format(name, age)
d = person(name='晓华',age=18)
print(d)    输出结果:我是晓华,今年18岁

f.不定长传参

a.规则:不知道有多少个参数???  在参数前面加个* 或者加个**

加一个* 把传进来的参数放在元组中去
加两个** 把传进来的参数放在字典中去

*args和**kwargs(不定长参数)
*args:表示的就是将实参中按照位置传值,多出来的值都给args,且以元组的方式呈现。*是解析元组
**kwargs:表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现。**是解析字典

b.加一个*   把传进来的参数放在元组中间去  *名字可以随意取  args

def a1(*args):

  print(*agrs)      输出结果:小明 小老板 消化

  print(args)      输出结果:('小明', '小老板', '消化')

a1('小明','小老板','消化')  

c.知道有多少个参数要传,参数传入顺序规则:必须参数(位置参数)  默认参数  不定长参数

def post(url,data=None,*args):
  pass

d.特殊示例:要求*后面传的参数 要带上命名(如带:sex)

def test1(name,age,*,sex):
  return '我的名字是:{},今年{}岁,性别为:{}'.format(name,age,sex)
c=test1('晓华',22,sex='男')
print(c)            输出结果:我的名字是:晓华,今年22岁,性别为:男

e.若*args和**kwargs都存在函数参数中,遵守*args在前  **kwargs在后

def test(*args,**kwargs):

  print(*args)        输出结果:晓华 22

  print(args)        输出结果:('晓华', 22)

  print(kwargs)      输出结果:{'name': '千纸鹤', 'age': 22}

test('晓华',22,name='千纸鹤',age=22)    

f.解包:**字典的包

1、a=2,b=3,c=4  解包成  {'a':2,'b':3,'c':4}

加两个**把传进来的参数放在字典中间去
def test1(**kwargs):
  print(kwargs)
test1(a=2,b=3,c=4)    输出结果:{'a': 2, 'b': 3, 'c': 4}

 

2、{'a':2,'b':3,'c':4}  解包成  a=3,b=4,c=4

*是拿到a,b,c
def test2(a,b,c):
  print(a,b,c)
d={'a':2,'b':3,'c':4}
test2(*d)        输出结果:a b c

 

**拿到2,3,4
def test2(a,b,c):
print(a,b,c)
d={'a':2,'b':3,'c':4}
test2(**d)        输出结果:2 3 4

g.函数的嵌套

def test1():
  print('-'*5)
def test2():
  print('*'*5)
  print('+'*5)
  test1()
  print('='*5)
test2()

输出结果:

*****
+++++
-----
=====

h.匿名函数(Lanbda)

a.语法规则

语法:lambda 参数,参数:表达式
特性:本身自带返回

b.示例

sum=lambda a,b:a+b
print(sum(1,2))    输出结果:3

i.三目运算(了解)

  a.语法规则

语法:满足条件的内容 if 判断条件 else 不满足条件的内容
特性:if语法的简写 写在一行

b.普通写法

x=int(input('请输入第一个数字:'))
y=int(input('请输入第二个数字:'))
if x>y:
print('打印第一个数字{}'.format(x))
else:
print('打印第二个数字{}'.format(y))

c.三目写法

x=int(input('请输入第一个数字:'))
y=int(input('请输入第二个数字:'))

print('打印第一个数字{}'.format(x)) if x>y else print('打印第二个数字{}'.format(y))

j.推导式(了解)

  a.for循环的一种写法

  b.列表推导式[表达式 :for xx in range()]

d=[xx for xx in range(5)]
print(d)          输出结果:  [0, 1, 2, 3, 4]

     c.字典推导式{表达式:表达式 :for xx in range()}

d=[{xx:xx+1} for xx in range(5)]
print(d)          输出结果:  [{0: 1}, {1: 2}, {2: 3}, {3: 4}, {4: 5}]

posted on   隆江猪脚饭  阅读(63)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示