ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

7.9 初识函数定义与调用

2019-07-09 19:00:23  阅读:169  来源: 互联网

标签:None 调用 return 函数 res 初识 print 7.9 def


在了解函数之前,我们先想象一个这样的场景:

  如果现在len方法不能用了,我们要如何用代码计算‘kilobitten’这个字符串的长度?

str1 = 'kilobitten'
length = 0
for i in str1:
    length += 1
print(length)  # 10

  此时又有一个需求,要计算另一个字符串的长,“New Centry”,我们该怎么做呢?如法炮制

str1 = 'kilobitten'
length = 0
for i in str1:
    length += 1
print(length)  # 10

str2 = 'The New Centry' length2 = 0 for j in str2: length2 += 1 print(length2) # 14

  不难发现,虽然这样可以满足需求,但是造成了代码冗余

  并且对比len方法来说,这种实现方式的代码可读性较差

str1 = 'kilobitten'
str2 = 'The New Centry'
print(len(str1))  # 10
print(len(str2))  # 14

  这时候,我们就希望能有个方法能像len那样,可以直接使用,来计算长度。

于是,就引入了函数的概念。

函数

  函数,就是具有某个具体功能的工具

为什么要有函数?

  提供开发效率
  减少代码冗余
  提高程序的扩展性

定义一个函数

  'def' 是定义函数的关键字

  函数名:函数名的命名规则和变量名一致

    1.不能以关键字命名(**重要**)

    2.函数名也应该做到见名知意

  需要注意的是:

    函数在定义的时候只检测函数体语法 不执行函数体代码

1 s = 'kilobitten'
2 
3 def my_len():  # 自定义函数 # 在定义函数时,以下4行代码并不执行
4     n = 0
5     for i in s:
6         n += 1
7     print(n)  # 10
res = my_len()
print(res)  # None

    调用函数的固定格式

      函数名+括号
      函数名只要遇到括号会立即执行函数体代码
      代码中遇到函数名加括号 优先级最高
      先去执行函数 再看下面的代码

    我们自己写的函数现在的问题

      1.没有返回值 只能固定的执行打印操作
      2.只能够固定的统计某一个容器类型的长度

返回值

  上面我们自己写的代码,虽然可以正确运行但不能像len方法那样有返回值。

  函数内要想返回给调用者值 必须用关键字return

  

  关于return有五种情况

  1.不写return

# 不写return:函数默认返回None
def func():
    print('hahaha')  # hahaha
res = func()
print(res)  # None

  2.只写return

# 只写return:return除了可以返回值之外 还可以直接结束整个函数的运行
# 只写return 返回的也是None(None就表示什么都没有)
def func():
    l = ['jason','egon','tank']
    while True:
        for i in l:
            if i == 'egon':  # 当i为egon的时候 直接结束函数运行
                # 下面的return相当于break
                return
                # print('asdasdkljlsjadl')  # 这一行代码拥有都不会运行
            print(i)  # jason
res = func()
print(res)  # None

  3.写return None

# 写return None:跟上面的只写return是一样的
def func():
    return None
res = func()
print(res)  # None

  4.写return返回一个值

# 写return返回一个值:这个值可以是python任意数据类型
def func():
    return '123'  # 123
def func1():
    return [1,2,3]  # [1,2,3]
def func2():
    return {'name':'jason'}  # {'name': 'jason'}
def func3():
    return (1,)  # (1,)
def func4():
    return {1,2,3,4,5}  # {1, 2, 3, 4, 5}
def func5():
    return True  # True
print(func(),func1(),func2(),func3(),func4(),func5())
# 123 [1, 2, 3] {'name': 'jason'} (1,) {1, 2, 3, 4, 5} True

  5.写return返回多个值

# 写return返回多个值:return会自动将多个值以元组的形式返回给调用者
'''
1.为什么组织成元组返回
    函数不希望自己处理的结果被修改
2.如何不返回元祖
'''


def func():
    return 1, 2, 3, 4
res0 = func()
print(res0)  # 返回的是(1, 2, 3, 4)


def func1():
    return 'a', 'b', 'c'
res = func1()
print(res)  # 返回的是 ('a', 'b', 'c')


def func2():
    return [1, 2, 3], [1, 2, 3], [1, 2, 3]  # ([1, 2, 3], [1, 2, 3], [1, 2, 3])


res1 = func2()
print(res1)


def func3():
    return {'name': 'jason'}, {'username': 'tank'}, {
        'user_name': 'egon'}  # ({'name': 'jason'}, {'username': 'tank'}, {'user_name': 'egon'})


res2 = func3()
print(res2)


# 返回多个值 并且不想让return帮你做处理  自己手动加上你想返回的数据类型符号
def func4():
    return [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 34]]


res = func4()
print(res)

  # 1.所有的函数都有返回值,无论你写不写return
    python中所有的函数都有返回值 不写的情况下默认返回None

  # 2.光写return 或者return None并不是为了考虑返回值 而是为了结束函数的运行

标签:None,调用,return,函数,res,初识,print,7.9,def
来源: https://www.cnblogs.com/PowerTips/p/11159459.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有