在编程中,无论使用什么 编程语言,函数的使用都是非常广泛的,函数能够完成特定的功能,降低编程的难度和代码重用。

1.函数的定义:

函数是一段具有特定功能的、可重用的语句组,用函数名来表示并通过函数名进行调用。

2.函数编写思想:

函数是一种功能抽象,利用它可以将一个复杂的大问题分解成一系列简单的小问题,然后将小问题继续划分为更小的问题,当问题细化到足够简单时,为每个小问题编写程序,并通过函数封装,每个小问题解决了,大问题就能迎刃而解。

3.Python函数

Python安装包也自带了一些函数和方法,包括Python内置函数(如abs()、eval())、Python标准库中的函数(如math库中的sqrt())等,这些函数在编程过程中都是可以直接调用。但在日常的编码过程中,我们也需要根据实际情况,编写自定义的函数。

4.Python自定义函数

Python使用def保留字定义函数,语法形式如下:

def <函数名>(参数列表):

  <函数体>

  return<返回值列表>

注:参数列表是调用函数时传递给他的值,可以有零个,一个或多个,当传递多个参数时,各参数间用逗号隔开,当没有参数时也要保留圆括号。

当需要返回值时,使用保留字return和返回值列表,否则可以没有return语句。

5.函数的形式参数

5.1编写程序,比较两个整数,三个整数的大小,输出最大值。其中代码解析有关于函数的形参和实参的解释。<在比较大小时,直接使用内置函数max()可以更快的实现>

源代码:

#三个参数比较大小,num,num1,num2为形式参数
def number(num,num1,num2):
  if(num<num1):
    max=num1
    if(max<num2):
      max=num2
      print("三数比较最大数是{}".format(max))
    else:
      print("三数比较最大数是{}".format(max))
  else:
    max=num
    if(max<num2):
      max=num2
      print("三数比较最大数是{}".format(max))
    else:
      print("三数比较最大数是{}".format(max))

#1,2,3为函数的实参,实参将值传给形参,执行函数体语句
number(1,2,3)
#两个参数比较大小,num,num1为形式参数
def number(num,num1):
  if(num<num1):
    max=num1
    print("两数比较最大数是{}".format(max))
  else:
    max=num
    print("两数比较最大数是{}".format(max))

#1,2为函数的实参,实参将值传给形参,执行函数体语句
number(1,2)

运行结果:

6.函数的调用过程

函数的调用过程一般为四步:

(1)调用程序在调用处暂停执行。

(2)在调用时将实参复制给函数的形参。

(3)执行函数体语句。

(4)函数调用结束给出返回值。程序回调到调用前的暂停处继续执行。

如下面的例子:

源代码:

def number(num,num1):
  if(num<num1):
    max=num1
    print("两数比较最大数是{}".format(max))
  else:
    max=num
    print("两数比较最大数是{}".format(max))

print("还没有调用函数!")
#函数调用,在此之前函数体已经编译完成,但是没用运用,在函数调用后,形参的值被
#实参所代替再返回前面执行函数体的语句,函数体语句执行完毕后,再回到函数调用
#的位置,继续执行后面的语句
number(1,2)

print("执行这一行!")

运行结果:

Python函数的基本使用的更多相关文章

  1. python 函数之day3

    一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...

  2. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  3. Python函数讲解

    Python函数

  4. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  5. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  6. Python开发【第四章】:Python函数剖析

    一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...

  7. Python函数解析

    对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...

  8. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

  9. Python函数1

    Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...

  10. python函数传参是传值还是传引用?

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

随机推荐

  1. [转帖]SpringBoot集成redisson分布式锁

    SpringBoot集成redisson分布式锁 https://www.cnblogs.com/yangzhilong/p/7605807.html 前几天同事刚让增加上这一块东西. 百度查一下 啥 ...

  2. 《TCP/IP - TCP/UDP》

    一:概述 - 由于 IP 的传输是无状态的,IP 提供尽力服务,但并不保证数据可以到达主机. - 所以,数据的完整性需要更上层的 传输层来保证.TCP和UDP 均属于 传输层. 二:UDP - 特点 ...

  3. spring框架学习(二)——注解方式IOC/DI

    什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分 ...

  4. python_scratch教程:绘制荧光圈教程

    在演唱会中,出现最多的就是荧光棒,很多粉丝也都会举着荧光棒为自己的爱豆加油,当然也会有一些人用的荧光圈,为此南京小码王scratch培训机构,就想到了和小朋友一起绘制荧光圈,现在我们就一起来看看吧! ...

  5. gorm 实现 mysql for update 排他锁

    关于 MySQL 的排他锁网上已经有很多资料进行了介绍,这里主要是记录一下 gorm 如果使用排他锁. 排他锁是需要对索引进行锁操作,同时需要在事务中才能生效.具体操作如下: 假设有如下数据库表结构: ...

  6. 最清晰易懂的Mysql CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP区别

    timestamp数据类型 Mysql数据库中,当字段类型为timestamp(时间戳)时,如果默认值取CURRENT_TIMESTAMP,则在insert一条记录时,此时的值自动设置为系统当前时间, ...

  7. diverta 2019 Programming Contest 2

    A:签到. #include<bits/stdc++.h> using namespace std; #define ll long long #define inf 1000000010 ...

  8. JavaScript中数组的key-value在对象中倒装的妙用

    对于数组的去重.寻找指定元素的索引,通常我们都是通过遍历来解决,但是在某些应用场景下,将数组的value-key进行倒装,也即将value当做对象的key,key当做对象value,可以极大降低算法的 ...

  9. Spring Cloud Alibaba学习笔记(16) - Spring Cloud Gateway 内置的路由谓词工厂

    Spring Cloud Gateway路由配置的两种形式 Spring Cloud Gateway的路由配置有两种形式,分别是路由到指定的URL以及路由到指定的微服务,在上文博客的示例中我们就已经使 ...

  10. metasploit、msfvenom生成木马入侵电脑及手机

    简介 msfvenom msfvenom a Metasploit standalone payload generator,Also a replacement for msfpayload and ...