请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手
# 第6讲 python 中的函数


# 一、什么函数
# 1、函数的定义
# 定义:函数是组织好的,可重复使用的,用来实现单一,或相关联功能 的代码段。
# 2、函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提 供了许多内建函数,比如print()。
# 但你也可以自己创建函数,这被叫做 用户自定义函数。
# 内建函数  print()
# 自建函数  def

# 3、自建函数
# 可以使用def关键字来创建Python自定义函数,其基本语法结构如下:
# def 函数名(参数列表)
#     函数体
#
# 函数名()     #调用函数

# def test():        #  冒号   test 就是自建函数
#     #这里是函数体,需要空一格tab键
#     print('duoceshi')     #函数体

#第一种调用方法  在本模块调用
# test()     #调用函数,如果函数定义了,没有调用不会输出结果,
            # 但是调用的函数可以再其他模块#调用

#第二种调用方法在其他模块调用函数
# import dcs7.lesson6     #通过报名.模块名导入这个模块,直接运行就可以调用
                          # (在函数模块有调用才能打印结果)

# from dcs7 import lesson6
# lesson6.test()     #这样也是调用函数,通过模块名.函数名

#第三种调用方法
# if __name__ == '__main__': 是函数的入口,也称为主函数
# __name__ 是当前模块名,
# 当模块被直接运行时模块名为 __main__ ,
# 这句话的 意思就是,当模块被直接运行时,
# 以下代码块将被运行,当模块是被导入时, 代码块不被运行。

# if __name__ == '__main__':
#     test()   #调用函数,main函数的代码是不会被其他模块导入


# 4、函数中带单个参数
# def test(name):         #name 表示形式参数
#     '''
#     单个参数
#     :param name:
#     :return:
#     '''
#     print(name+'约会')
#
# test('孙悟空')       #孙悟空 是实际参数
#注意:如果定义的函数带了参数,调用时也需要传实际参数,给了也不行

# 5、多个参数
# def test(name,where):         #name where表示形式参数
#     '''
#     单个参数
#     :param name:
#     :return:
#     '''
#     print(name+'去'+where+'约会')
#
# test('孙悟空','花果山')


# 6、默认值参数(默认值的位置只能放在后面)
# def test(name,where,action='约会'):     #传了三个形式参数
#     print(name+'去'+where+action)
# #当出现形式参数和默认值参数时,默认值参数放在形式参数后面
#
# test('孙悟空','花果山')    #这个地方没有给默认值传新值,就是用默认值
# test('孙悟空','花果山','摘桃')  #当给默认值传了新值,就使用新值,不会使用默认值


# 7、可变长元组,==>可变长参数用一个*号表示可变长元组
# def test(*value):
#     print(value)
#     print(type(value))
#
# test('小马','小康','小单')     #这里可以写多个参数
#打印结果 ('小马', '小康', '小单')   数据类型tuple

# 8、可变长字典==》可变长参数:两个*号表示可变长字典
# def test(**value):
#     print(value)
# dict1 = {'name':'xiaoduan','age':18}
# dict2 = {'class':1833}
# test(**dict1,**dict2)     #{'name': 'xiaoduan', 'age': 18, 'class': 1833}

# 9、可变长元组和可变长字典同时出现时,可变长元组放在可变长字典的前面
# def test(*value,**value1):
#     print(value)
#     print(value1)
#
# dict1 = {'name':'xiaoduan','age':18}
# test('小马', '小康', '小单',**dict1)   #('小马', '小康', '小单') {'name': 'xiaoduan', 'age': 18}

# 10、python 中的作用域
# 实例1
# num = 100       #函数体外变量称为全局变量
# def test():
#     num = 200    #在函数体内称为局部变量,只能在函数体内用
#     print(num)
#
# test()        #200
# print(num)    #100

# 实例2
# num = 100        #函数体外变量称为全局变量
# def test():
#     num = 200     #在函数体内称为局部变量,只能在函数体内用
#     sum = num +100
#     print(sum)
#
# test()       #300
# print(num)   #100

# 实例3
# num = 100  # 函数体外变量称为全局变量
# def test():
#     sum = num + 100    #如果函数体内部没有局部变量,则使用全部变量
#     print(sum)
#
# test()         #200
# print(num)     #100


# 实例4
# num = 100  # 函数体外变量称为全局变量
# def test():
#     global num     #把函数内部的局部变量变为全局变量,之前的函数体外全局变量失效了
#     num = 200      # 在函数体内称为局部变量,只能在函数体内用
#     sum = num + 100
#     print(sum)

#
# test()       #300
# print(num)   #200


# 11、python 中的返回值
'''
1、在程序开发中,有时候会希望一个函数执行程序结束后,告诉 调用者一个结果,以便调用者针对具体的结果做后续的处理。
2、返回值是函数完成工作后,最后给到调用者的一个结果。
3、在函数中使用return关键字可以返回结果。
4、调用函数的一方可以使用变量来接收函数的返回结果。
'''


# 例子1
# def test():
#     num = 600
#     score = num/6
#
# test()    #运行为空
# print(test())      #None

# 例子2
# def test():
#     num = 600
#     score = num/6
#     return score    #把score 这个结果给到函数调用出,谁拿到了这个函数,谁调用这个函数就拿到这个结果
# test()    #运行为空
# print(test())      #100.0

# 例子3
# def test():
#     num = 600
#     score = num/6
#     print(score)
#     return score    #把score 这个结果给到函数调用出,谁拿到了这个函数,谁调用这个函数就拿到这个结果
# # test()    #100.0
# print(test())      #100.0  100.0


# 需求:编写一个求平均值函数,然后根据各科成绩判断是否为优秀学生
# def avg():
#     sum = 600
#     score = sum/6
#     return score
#
# def is_good_stu():
#     a = avg()     #【函数的传递】
#     if a > 90:
#         print('优秀学生')
#     else:
#         print('不是优秀学生')
# is_good_stu()


# 需求:登录银行系统并显示余额,有两个功能第一个是登录,第二个是登录 后显示余额,
# 先登录然后根据登录是否成功然后是否显示余额。 分析思路:如果想查询到余额,前提必须登录,
# 所以现在我们用两个函数来 处理,第一个函数实现登录,第二个函数实现余额查询,
# 调用第一个函数得 到的结果给第二个函数,然后第二个函数根据结果进行代码处理。

# def login():
#     dict1 = {'name':'admin','pwd':'123456'}
#     name = input('请输入您的账号:')
#     if name ==dict1.get('name'):
#         pwd = input('请输入您的密码:')
#         if pwd ==dict1.get('pwd'):
#             return '登录成功'
#         else:
#             return '您输入的密码有误、请重新输入密码输入正确则登录成功'
#     else:
#          return '用户错误、请重新输入'
#
# def select_amount():
#     l = login()      #函数的传递
#     if l =='登录成功':
#         print('您的余额:$1000000')
#     else:
#         print('请登录')
# if __name__ == '__main__':
#     select_amount()


# 12、python 中的内置函数
# format()函数是一种格式化字符串的函数 ,该函数增强了字符串格式化的功能。
# 基本语法:是通过 {} 来代替以前的 %

# 1)按顺序进行格式化
# str1 = '{} {}'.format('dcs','888','test')
# print(str1)     #dcs 888

# 2)通过索引进行格式化
# str1 = '{1} {0}'.format('dcs','888','test')
# #{]中的数字是索引,format中的值就是索引值
# print(str1)    #888 dcs

# 3)通过参数进行格式化输出
# str1 = '姓名:{name} 年龄:{age}'.format(name = '小段',age = '18')
# print(str1)     #姓名:小段 年龄:18

# 4)对列表进行格式化
# list1 = ['xiaoduan','18']
# str1 = '姓名:{0[0]} 年龄:{0[1]}'.format(list1)
# #{0[0]} 第一个0表示format中的list1,第二个0是list1中的第一个值,{0[1]} 这个0是取到的是list1
# # 这个1是list1中的第二个值
# print(str1)     #姓名:xiaoduan 年龄:18

# list1 = ['xiaoduan','18']
# list2 = [16,20]
# str1 = '姓名:{0[0]} 年龄:{1[0]}'.format(list1,list2)
# print(str1)     #姓名:xiaoduan 年龄:16

# 5)对字典进行格式化
# dict1 = {'name':'xiaoduan','age':18}
# str1 = '姓名:{name} 年龄:{age}'.format(**dict1)  #如果是字典format需要加两个*号
# print(str1)      #姓名:xiaoduan 年龄:18

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册