美文网首页
July 24-day9-Python函数

July 24-day9-Python函数

作者: 慢节拍_2709 | 来源:发表于2018-07-24 19:37 被阅读0次

函数

没有函数的时候,问题在哪儿?
1.同样一个功能的代码需要重复的写多次
2.当功能发生改变的时候,需要修改多个地方

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

函数的定义

  1. 函数:就是对实现某一特定功能的代码块的封装

  2. 作用:封装(将功能绑定在一个函数中,想要使用这个功能的时候,直接调用函数)

  3. 怎么声明函数(重点):
    def 函数名(参数列表):
    '''函数说明'''
    函数体
    def: 是python中声明函数的关键字
    函数名: 标识符。PEP8。见名知义(看到函数名要大概知道函数的功能)
    函数说明: 对函数的功能和参数以及返回值进行说明
    (): 是固定格式
    参数列表:(形参列表)参数名1,参数名2,参数名3...。
    参数的功能是用来接收从外部传到函数内部的数据
    函数体:实现函数功能的代码块,可能会包含一个return语句

  4. 初学者声明函数的步骤:
    a.确定函数的功能
    b.确定函数名
    c.确定参数:
    确定需不需要参数
    确定需要几个参数
    (看实现函数的功能需不需要从外面传数据到函数里面)
    d.实现函数的功能
    e.确定返回值

  5. 函数的调用(重点
    函数名(实参列表)

函数名:调用的函数一定是已经声明过的,想要使用什么功能就调用对应的函数
实参列表:实参是用来给形参赋值的

  • 函数的调用过程(重点):
    0.回到函数声明的地方
    1.使用实参给形参赋值
    2.执行函数体
    3.函数体执行完成后,回到函数调用的位置

  • 注意(重点):
    1.函数只有在调用的时候才会执行
    2.函数调用的时候一定要保证每个形参都有值
    3.一个函数可以调用多次

# 写一个函数,计算两个数的和
def my_sum(number1, number2):

   # (这儿写函数的功能的描述)求两个数的和
   #  :param number1: 提供第一个数,int
   #  :param number2: 提供第二个数,int
   #  :return: 对返回值进行说明

    print(number1, number2)
    print('=====')
    print(number1+number2)


# 函数的调用一定要写在函数的声明后面
my_sum(10, 300)


# 练习:声明一个函数,功能是打印10个*(**********)
# 调用这个函数
def print_star():
    print('*'*10)
print_star()
print_star()
结果:
10 300
=====
310
**********
**********

函数的参数

  1. 位置参数
 # 参数的作用: 从函数的外面给函数传值
 # 传参的时候,实参按顺序给形参赋值
def func1(a, b, c):
    print(a, b, c)
func1(10, 20, 30)
结果:
10, 20, 30
  1. 关键字参数
# 调用函数的时候:
# 函数名(参数=值)
func1(b=20, a=10, c=30)
结果:
10, 20, 30
  • 说明:位置参数和关键字参数可以混着来
def func11(a, b='cc', c='bb', d='a'):
    print(a,b,c,d)
func11(10, d='100')
结果:
10 cc bb 100
  1. 参数的默认值
  • python中函数声明的时候参数可以设置默认值,有默认值的参数必须放在参数列表的最后
  • 调用参数有默认值的函数,有默认值的参数可以传参也可以不传参
def func2(b, a=10, c=100):
    print(a, b, c)
func2(10, 20, 30)
func2(10, 20)
结果:
10 cc bb 100
  1. 参数个数不定
  • 函数参数的个数不确定的时候,就在声明函数的时候,形参的前面加一个*,将形参变成元祖。
  • 调用函数的时候,这个参数会将对应的实参作为元祖的元素保存起来
# 写一个函数,求多个数的和
def my_sum(*numbers):
    print(numbers)
    sum1 = 0
    for item in numbers:
        sum1 += item
    print(sum1)
my_sum(10, 20, 22, 10, 20)
结果:
(10, 20, 22, 10, 20)
82
  • 注意:参数个数不定,可以是形参中的一部分是不定的
#个数不确定的参数要放到放参数的最后
def func1(char, *numbers):
    print(char, numbers)
func1('a', 10, 20, 39)

# 参数个数不定,也可以不传参,对应的参数的值就是一个空的元祖
func1('a')
结果:
a (10, 20, 39)
a ()

因为内容还待完善所以下面给一个较充足的连接供参考

函数链接

了解一哈

练习

  1. 编写一个函数,求1+2+3+...+N。
def func1(n):
   sum1 = 0
   for x in range(1,n+1):
       sum1 += x
   print(sum1)
func1(100)
结果:
5050
  1. 编写一个函数,求多个数中的最大值。
def func1(*number1):
   n = max(number1)         #直接取出最大值用MAX方法
   print(n)
func1(10,20,22,-12,20)
结果:
22
  1. 编写一个函数,实现摇色子的功能,打印n个色子的点数和。
def func1(number1):
   import random                #调用random模块
   sum1 = 0
   for _ in range(number1):
       n1 = random.randint(1,6)
       sum1 += n1
   print(sum1)
func1(5)
结果:
14
  1. 编写一个函数, 交换指定字典的key和value。
def func1(list):
   list2 = {}
   for x in list:
       y = list[x]            #把key和‘值’交换
       list2[y] = x           
   print(list2)
func1({'as':'sd','aa':'dd'})
结果:
{'sd': 'as', 'dd': 'aa'}
  1. 编写一个函数,三个数中的最大值。
def func1(a,b,c):
   list1 =[]
   list1.append(a)
   list1.append(b)
   list1.append(c)
   n = max(list1)                  #添加到列表中用MAX方法
   print(n)
func1(20, 20, 33)
结果:
33
  1. 编写一个函数, 提取指定字符串中的所有的字母,然后拼接在一起后打印出来。
def func1(str1):
   str2 = ''
   for x in str1:
       if ('a'<=x<='z') or ('A'<=x<='Z'):       #判断是否为字母
           str2 += x
   print(str2)
func1('56a5sd41asdf44xd%%%s54dasd')
结果:
asdasdfxdsdasd
  1. 写一个函数,求多个数的平均值。
def func1(*number1):
   sum1 = 0
   for x in number1:
       sum1 += x
   ave = sum1/len(number1)           #除于元组的长度
   print(ave)
func1(12,54,6,4)
结果:
19.0
  1. 写一个函数,默认求10的阶层,也可以求其他数的阶层。
def func1(number1):
   sum1 = 1
   for _ in range(number1-1):      #遍历取值到1,然后相乘
       sum1 *= number1
       number1 -= 1
   print(sum1)
func1(10)
结果:
3628800
  1. 写一个函数,可以对多个数进行不同的运算。
def func1(char,*number1):
   if char == '+':
       sum1 = 0
       for x in number1:
           sum1 += x
       print(sum1)
   if char == '-':
       sum1 = (number1[0])*2      #让被减数先乘2,再减去遍历后的每一个数,等于拿第一个数去减后面的数
       for x in number1:
           sum1 -= x
       print(sum1)
   if char == '*':
       sum1 = 1
       for x in number1:
           sum1 *= x
       print(sum1)
func1('+', 2, 4, 5, 10)
func1('-', 2, 4, 5, 10)
func1('*', 2, 4, 5, 10)
结果:
21
-21
400

相关文章

  • July 24-day9-Python函数

    函数 没有函数的时候,问题在哪儿?1.同样一个功能的代码需要重复的写多次2.当功能发生改变的时候,需要修改多个地方...

  • 删除列表

    1、使用 remove 函数删除代码:names=["Tony","Lisa","July","Merry","小...

  • MS202207|忙于学习的七月呀!

    Summary of July Words for July: Exhausted studying & Heal...

  • 【经济学人】The Economist - July 2, 20

    The Economist - July 2, 2016 下载地址:The Economist - July 2,...

  • Vol.2 | Genesis Space 项目进度报告

    Date: 16th. July. 2018 - 22th. July. 2018 ...

  • good night , my dream

    See U in July!

  • July

    昨晚查了期末考试成绩,大二也算是真正结束了。 在20岁的第一个半年里 没有考运(考啥啥不过) 买了微单和kindl...

  • July

    Sam+Smith+-+Too+Good+At+Goodbyes+%28Acoustic%29.mp3 看文字之前...

  • July

    7月 小时候坐火车,喜欢听卖水果的吆喝,每次从我旁边过去喊的价格都不同,我那时候就想买好多火车上的水果带回去吃,就...

  • July

    害怕还没来得及, 好好谈谈爱情, 她就变成亲情的模样。 寻一个温暖的人,认真去爱, 融化掉所有不值一提的慌张与迷茫...

网友评论

      本文标题:July 24-day9-Python函数

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