一 为何要有函数?
  不加区分地将所有功能的代码垒到一起,问题是:
  代码可读性差
  代码冗余
  代码可扩展差

  如何解决?
  函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用

  结论:函数使用必须是:先定义,后调用

二:函数的分类

  1.内置函数:built-in
  2.自定义函数:
    def 函数名(参数1,参数2,...):
      '''注释'''
      函数体

函数的使用:先定义,后调用
如何定义函数之定义函数的三种形式

可以先看个例子

'''
************
************
************
hello world
************
************
************
''' def print_tag(tag,count,line_num):
for i in range(line_num):
print(tag*count) def print_msg(msg): #msg='hello world'
print(msg) print_tag('*',20,3)
print_msg('hello world')
print_tag('*',20,3)

  

python中函数定义方法:
def test(x):
  "The function definitions"
x+=1
  return x

def:定义函数的关键字
  test:函数名
  ():内可定义形参
  "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
  x+=1:泛指代码块或程序处理逻辑
  return:定义返回值

调用运行:可以带参数也可以不带
函数名()

2.1、定义阶段

 def foo():
print('from foo')
bra() def bra():
print('from bra')

 

def func():  #语法没问题,逻辑有问题,引用 一个不存在的变量名
adfkgjklgnlfijg

  

2.2、调用阶段

调用函数的形式
语句形式
  func() 表达式
  res=func2(10)
  res=10*func2(10)

函数调用当做参数传入另外一个函数

foo()  #执行函数语句形式

================================

res=foo()   #执行函数表达式形式 
print(res)

 2.3、定义阶段:只检测语法,不执行代码

def func():
if 1>2
print('hahahaha')

3、定义函数的三种形式

无参函数
def func():
   pass 有参函数
def func(x):
   print(x) 空函数
def func()
   pass 
前面也说了,函数的使用:先定义,后调用
1、定义无参函数:函数的执行不依赖于调用者传入的参数就能执行时,需要定义为无参函数
def print_tag():
print('*************************')
print_tag()

2、定义有参数:函数的执行需要依赖于调用者传入的参数才能执行时,需要定义为有参函数

 def func(x,y,*args):
print(x,y)
print(args) func(1,2,3,4,5,6)
def max2(x,y):  
if x > y:
return x
else:
return y res=10*max2(20,2) #取大值乘10
print(res)

  

def max2(x,y):
if x > y:    #如果x值比y大
return x    #返回x值给函数max2
else:
return y  #否则返回y值 #11,23,100
res=max2(max2(11,23),100)  #比较x 、y的值,取大值接着比较
print(res)

  

3 定义空函数:函数体为pass

#3 定义空函数:函数体为pass
# def func(x,y,z):
# pass

 

def auth():
'''用户认证'''
pass def get():
'''download file'''
pass def put():
'''upload file'''
pass def check_hash():
'''check file hash value'''
pass

 总结

函数的使用必须遵循:先定义后使用的原则

函数的定义:与变量的定义是相似的,如果没有事先定义函数而直接引用,就相当于在引用一个不存在的变量名

补充:函数里没有return 默认返回none值

包含多个值,默认识别返回值成元组格式

返回值:可以返回任意类型

return的效果:只能返回一次值,终止函数的执行

Python基础(6)_函数的更多相关文章

  1. python基础——高阶函数

    python基础——高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数a ...

  2. python基础——内置函数

    python基础--内置函数  一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...

  3. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  4. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  5. Python基础(协程函数、内置函数、递归、模块和包)-day05

    写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04  ...

  6. 『Python基础-13』函数 Function

    这篇笔记记录的知识点: 函数的基本概念 自定义函数 函数的几种参数 编程的三种方式: 1.OOP 面向对象编程,万物皆对象,以class为主,抽象化 2.POP 面向过程编程,万事皆过程,def定义过 ...

  7. python 基础篇 11 函数进阶----装饰器

    11. 前⽅⾼能-装饰器初识本节主要内容:1. 函数名的运⽤, 第⼀类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ⼆. 闭包什么是 ...

  8. python基础之open函数和路径处理

    前言 本次内容主要介绍文件处理open函数以及路径处理. 一.open函数 根据前面介绍的函数调用方式,调用open函数. #open函数调用 open() TypeError: open() mis ...

  9. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

随机推荐

  1. 3 web服务器:静态文件

    1.处理客户端请求数据 >>> s = "GET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nConnection: keep-alive& ...

  2. 1754-I Hate It 线段树(单点替换,区间最值)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  3. 零基础学习Vim编辑器

    **********************************************************************0.这篇教程的简介:Vim是Linux/Unix下的经典编辑 ...

  4. 使用PSSH批量操作Linux服务器

    简介 服务器多了,有一个问题就是如何批量快速操作多台服务器,在网上搜到了PSSH工具,试用了一下发现挺好用,推荐给大家. pssh是一个python编写的可以在多台服务器上执行命令的轻量级管理工具,同 ...

  5. [转]Git,SVN的优缺点及适合的范围,开源项目?公司项目?

    使用git不久,粗浅理解: 1)适用对象不同.Git适用于参与开源项目的开发者.他们由于水平高,更在乎的是效率而不是易用性.Svn则不同,它适合普通的公司开发团队.使用起来更加容易. 2)使用的场合不 ...

  6. 菜鸟级appium 必看

    之所以写这个,因为太多新人,appium环境半天都搭建不好,版本问题,兼容问题等等. 自己的解决方案:1 官网下载nodejs,建议安装长期支持版 2 进入appium官网,点击下载,跳转到githu ...

  7. 小程序js脚本模块化调用

    可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块.模块只有通过 module.exports 或者 exports 才能对外暴露接口. 1. common.js // common.j ...

  8. ASP NET Core --- HTTP 翻页、过滤、排序

    参照 草根专栏- ASP.NET Core + Ng6 实战:https://v.qq.com/x/page/v07647j3zkq.html 翻页, 过滤, 排序等 – 如何传递参数? Query ...

  9. 剑指offer-树的子结构17

    题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) class Solution: def issubTree(self,pRoot1,pRoot2) ...

  10. NLP系列-中文分词(基于统计)

    上文已经介绍了基于词典的中文分词,现在让我们来看一下基于统计的中文分词. 统计分词: 统计分词的主要思想是把每个词看做是由字组成的,如果相连的字在不同文本中出现的次数越多,就证明这段相连的字很有可能就 ...