前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习笔记4——函数

Python学习笔记4——函数

作者头像
py3study
发布2020-01-19 15:54:55
3460
发布2020-01-19 15:54:55
举报
文章被收录于专栏:python3

函数

代码语言:javascript
复制
1 # 函数需要先定义,关键字 def
2 def func():
3     print("我是一个函数")
4 
5 # 函数的调用
6 func()

执行结果:

我是一个函数

内建函数(内置函数)

help(), print(), format(), ...

代码语言:javascript
复制
# 查找函数帮助文档
# 1,用help函数
help(print)

Help on built-in function print in module builtins:

print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.

# 打印九九乘法表,【这里有的没有对齐,以后学会后更新】 for row in range(1, 10):    # 打印一行     for col in range(1, row+1):       print("{0}x{1}={2}".format(col,row,row * col), end=" ")    # 换行    print()

1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

代码语言:javascript
复制
# version 2.0 使用函数
def print_a_line(row):
    # 打印一行
    for col in range(1, row+1):
        print("{0}x{1}={2}".format(col,row,row * col), end=" ")
    # 换行	
    print()
# 调用函数
for row in range(1, 10):
    print_a_line(row)

函数的参数、返回值

推荐查看:Python进阶04 函数的参数对应!!

推荐:老师讲课博客目录,这个厉害了,好多python博客文章!

  -形参:占位

  -实参:调用函数时输入的值

-返回值:函数的执行结果

  -关键字:return,没有默认返回None

  -执行return语句后,无条件返回

代码语言:javascript
复制
def hello(person):
  print("{},你怎么了?".format(person))

man = "嗨"
hello(man)

嗨,你怎么了?

代码语言:javascript
复制
def hello(person):
  print("{},你怎么了?".format(person))
  return "我没事。"
man = "嗨"
hello(man)

嗨,你怎么了?

我没事。

普通参数or位置参数

调用时,具体值参考的是位置,按位置赋值

默认参数

形参带有默认值;如果调用时没有对相应形参赋值,则使用默认值

关键字参数

一般实参和形参只按照位置一一对应即可,而使用关键字参数,可以不考虑参数位置

代码语言:javascript
复制
# 关键字参数案例
def stu(name, age, addr):
    print("I am a student")
    print("我叫{0},我今年{1}岁了,我住{2}。".format(name, age, addr))
    
    
n = "小明"
a = 18
addr = "学校"

# 普通参数,只按照位置传递,容易出错
stu(a, n, addr)

print("************************")
def stu_key(name="No name", age=0, addr="No addr"):
print("I am a student") 
    print("我叫 {0}, 我今年 {1}岁了, 我住{2}".format(name, age, addr)) n = "小明" a = 18 addr = "学校" 


# 关键字参数 
stu_key(age=a, name=n)
代码语言:javascript
复制
print("************************")
stu_key(addr=addr)

执行结果:

I am a student 我叫18,我今年小明岁了,我住学校。

************************

I am a student 我叫 小明, 我今年 18岁了, 我住No addr ************************ I am a student 我叫 No name, 我今年 0岁了, 我住学校

可变参数    *  ,  **

也有称收集, 包裹 对应 解包裹,及 混合使用 参见:python的位置参数、默认参数、关键字参数、可变参数区别

一般使用 *args 和 **kwargs, args、kwargs可变

代码语言:javascript
复制
def stu(*args):
    for item in args:
        print(item)
# 这里 args 格式是 元组 tuple

stu(16, 18, "A") 
stu(19)
stu()
print("B")

执行结果:

16 18 A 19 B

代码语言:javascript
复制
def func(**kwargs):
    for k,v in kwargs.items():
        print(k,"---",v)
# 这里 kwargs 格式是 字典 dict
代码语言:javascript
复制
# 关键字参数形式
func(age=18,b="B",c=3,d="D")

age --- 18 b --- B c --- 3 d --- D

这里有个自己遇到的坑:input()返回结果都只是一个字符串

代码语言:javascript
复制
def test(*args):
    print(args)
    print(len(args))

# 仔细对比下面两句

test(1,2,3)
# 输出 args 和它的长度:
# (1,2,3)
# 3

test(input())
# 输入 1,2,3
# 会输出:
# ('1,2,3',)
# 1

函数文档

作用是提供函数相关参考信息

写法:在函数开始的第一行使用三引号字符串定义符,具有特定格式

查看:使用help(),或者使用doc

代码语言:javascript
复制
# 文档案例
def func(name, age=18, *args, **kwargs):
    '''
    这是第一行
    这是第二行
    这是第三行
    '''
    pass# 查看函数文档
help(func)
print("*" * 20)
func.__doc__
print(func.__doc__)

Help on function func in module __main__:

func(name, age=18, *args, **kwargs) 这是第一行 这是第二行 这是第三行

********************

这是第一行 这是第二行 这是第三行

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档