Python 强化训练:第五篇

作者: 谢小路 | 来源:发表于2016-11-04 21:43 被阅读188次

强化训练:第五篇


主题:函数

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

0. 基本定义

def hanshu(*args):
    return sum(args)

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

1. 任意数量参数

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. 关键字参数

def keywords(number, *, newnumber):
    return (number + newnumber)

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

3. 数据类型

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. 返回多个值

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. 默认参数

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. 匿名函数/ 匿名函数绑定值

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. 减少可调用对象的参数个数

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)
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


相关文章

  • Python 强化训练:第五篇

    强化训练:第五篇 主题:函数 基本定义方法 任意数量参数 只接受关键字参数 显示数据类型 默认参数 匿名函数 N个...

  • Python之旅-5

    前言: 本篇文章是《Python之旅》系列的第五篇,在上一篇文章中主要学习了Python 的条件语句。本篇文章主要...

  • Python程序打包为exe可执行文件

    这是Python学习笔记系列的第五篇。 欢迎关注零壹研究 【微信号: Research_LAB】 全文约6000字...

  • Python 强化训练:第一篇

    强化训练: 第一篇 目标 0. 校招算是结束了吧!简单回顾几句: 校招python岗位极少,多是初创型公司对pyt...

  • Python 强化训练:第十一篇

    主题 正常情况下,程序的运行按顺序执行,但是涉及某些操作,等待结果完成却是非常耗时的操作,比如爬虫进行IO操作等,...

  • Python 强化训练:第六篇

    强化训练:第六篇 1. 深浅拷贝:是否是同一个对象,使用id判断是否指向同一个对象, 深浅拷贝,引用区分可变对象和...

  • Python 强化训练:第四篇

    强化训练:第四篇 问题来源 面向对象的语言的重要特性是存在类的概念 内容 新式类和旧式类 定义类的属性和“访问权限...

  • Python 强化训练:第三篇

    强化训练:第三篇 问题来源 pythoner面试经常会问到迭代器和生成器的区别 内容 可迭代对象 迭代器:正向迭代...

  • Python 强化训练:第二篇

    强化训练:第二篇 摘要:心好累. 问题来源 爬虫中会经常会遇到字符串的处理 主要内容 拆分字符串 字符串开头结尾 ...

  • Python 强化训练:第九篇

    主题 数据处理 csv文件 json文件 xml: xpath excel 1. CSV: 逗号分隔值,其文件以纯...

网友评论

本文标题:Python 强化训练:第五篇

本文链接:https://www.haomeiwen.com/subject/wfpwuttx.html