前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 强化训练:第五篇

Python 强化训练:第五篇

作者头像
谢伟
发布2018-06-06 12:01:01
4340
发布2018-06-06 12:01:01
举报
文章被收录于专栏:GopherCoder

强化训练:第五篇


主题:函数

  1. 基本定义方法
  2. 任意数量参数
  3. 只接受关键字参数
  4. 显示数据类型
  5. 默认参数
  6. 匿名函数
  7. N个参数的可调用对象

0. 基本定义

代码语言:javascript
复制
def hanshu(*args):
    return sum(args)

print(hanshu(1, 2, 3, 4))    # 10

1. 任意数量参数

代码语言:javascript
复制
def avg(first, *args):
    return (first + sum(args))/(1 + len(args))

print(avg(3, 2, 3, 1))    # 2.25
print(avg(3, 4))    # 3.5

2. 关键字参数

代码语言:javascript
复制
def keywords(number, *, newnumber):
    return (number + newnumber)

print(keywords(3, newnumber=5))    # 8
#print(keywords(3, 2))   # wrong

3. 数据类型

代码语言:javascript
复制
def type_number(a:int, b:int)->int:
    return (a+b)

print(type_number(3, 4))    # 7
print(help(type_number))    
#Help on function type_number in module __main__:

#type_number(a:int, b:int) -> int

#None

4. 返回多个值

代码语言:javascript
复制
def larger_number(*args, **kwargs):

    return args, kwargs

print(larger_number(1, 2, 3, 4, a=1, b=2, c=3))
# ((1, 2, 3, 4), {'c': 3, 'b': 2, 'a': 1})

5. 默认参数

代码语言:javascript
复制
def define_key(*args, b=1156143589):
    return args, b

print(define_key(1, 2, 3, 4))
print(define_key(1, 2, 3, 4, 5, b=12))
#((1, 2, 3, 4), 1156143589)
#((1, 2, 3, 4, 5), 12)

6. 匿名函数/ 匿名函数绑定值

代码语言:javascript
复制
lam= lambda x, y: x + y

print(lam(2, 3))    # 5

lam_2= lambda x, y=2: x**y

print(lam_2(3))    # 9

lam_3 = lambda x=3, y=3: x==y

print(lam_3())    # True
print(lam_3(2))    # False
print(lam_3(2, 2))    # True

7. 减少可调用对象的参数个数

代码语言:javascript
复制
def define_seven(a, b, c, d):

    return (a, b, c, d)

print(define_seven(1, 2, 3, 4))
# (1, 2, 3, 4)

from functools import partial
seven = partial(define_seven, d=4)
print(seven(1, 2, 3)) # (1, 2, 3, 4)
seven_1 = partial(define_seven, 1)
print(seven_1(1, 2, 3))  #(1, 1, 2, 3)
seven_2 = partial(define_seven, 1, 2)
print(seven_2(1, 2))    #(1, 2, 1, 2)
代码语言:javascript
复制
from datetime import datetime, timedelta


def GetNextDay(baseday,n):
    return str((datetime.strptime(str(baseday),'%Y-%m-%d')+timedelta(days=n)).date())
for i in range(1, 8):
    NextDay = partial(GetNextDay, '2016-11-04')
    print(NextDay(i))
    
# 2016-11-05
# 2016-11-06
# 2016-11-07
# 2016-11-08
# 2016-11-09
# 2016-11-10
# 2016-11-11
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.11.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 强化训练:第五篇
  • 主题:函数
    • 0. 基本定义
      • 1. 任意数量参数
        • 2. 关键字参数
          • 3. 数据类型
            • 4. 返回多个值
              • 5. 默认参数
                • 6. 匿名函数/ 匿名函数绑定值
                  • 7. 减少可调用对象的参数个数
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档