Python基础(6)_函数
一 为何要有函数?
不加区分地将所有功能的代码垒到一起,问题是:
代码可读性差
代码冗余
代码可扩展差
如何解决?
函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用
结论:函数使用必须是:先定义,后调用
二:函数的分类
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)_函数的更多相关文章
- python基础——高阶函数
python基础——高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数a ...
- python基础——内置函数
python基础--内置函数 一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...
- python学习第五讲,python基础语法之函数语法,与Import导入模块.
目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...
- 自学Python之路-Python基础+模块+面向对象+函数
自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python 1.1 自学Python1.1-简介 1.2 自学Python1.2-环境的 ...
- Python基础(协程函数、内置函数、递归、模块和包)-day05
写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04 ...
- 『Python基础-13』函数 Function
这篇笔记记录的知识点: 函数的基本概念 自定义函数 函数的几种参数 编程的三种方式: 1.OOP 面向对象编程,万物皆对象,以class为主,抽象化 2.POP 面向过程编程,万事皆过程,def定义过 ...
- python 基础篇 11 函数进阶----装饰器
11. 前⽅⾼能-装饰器初识本节主要内容:1. 函数名的运⽤, 第⼀类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ⼆. 闭包什么是 ...
- python基础之open函数和路径处理
前言 本次内容主要介绍文件处理open函数以及路径处理. 一.open函数 根据前面介绍的函数调用方式,调用open函数. #open函数调用 open() TypeError: open() mis ...
- python基础-内置函数详解
一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...
随机推荐
- List中的FindAll用法
在泛型List中查找符合某个字段的全部数据,可以采用如下方式: //1.现将实体数据listList<ADDaAn> objDAList = db.ADDaAns.ToList(); // ...
- MediaTypeListWidget->insertItem 添加的label没有填充单元格
label没有填充满当前的item,但是主界面拉伸或者大小变化之后会填充当前的item 类似相关的问题我猜测都是因为子控件或者需要参考的控件的参考对象的大小在初始化的时候还没有完成最终的初始化,导致大 ...
- 关于Vue脚手架写法的问题
问题描述: main.js import Vue from 'vue' import App from './App' /* eslint-disable no-new */ new Vue({ el ...
- Selenium八大元素定位方式
1.根据id来定位: import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.sele ...
- json格式化显示样式js代码分享
最近开发中需要在页面展示json.特整理了下代码,送给大家,希望能帮到有同样需求的朋友们. 代码: <html> <script src="http://cdn.bootc ...
- 今日头条 2018 AI Camp 6 月 2 日在线笔试编程题第二道——两数差的和
题目 给 n 个实数 a_1, a_2 ... a_n, 要求计算这 n 个数两两之间差的绝对值下取整后的和是多少. 输入描述 第一行为一个正整数 n 和一个整数 m.接下来 n 行,第 i 行代表一 ...
- day-11 python自带库实现2层简单神经网络算法
深度神经网络算法,是基于神经网络算法的一种拓展,其层数更深,达到多层,本文以简单神经网络为例,利用梯度下降算法进行反向更新来训练神经网络权重和偏向参数,文章最后,基于Python 库实现了一个简单神经 ...
- 第十一次ScrumMeeting会议
第十一次ScrumMeeting 时间:2017/11/18 4:00-4:30 地点:主203 人员:全体人员 照片: 工作情况 名字 今日计划 明天的工作 遇到的困难 蔡帜 讨论策划详情\确定WB ...
- winform自动最大化(在不同分辨率情况下)
load函数末尾加: System.Drawing.Rectangle rec = Screen.GetWorkingArea(this); int SH = rec.Height; int SW = ...
- Coursera: Internet History, Technology, and Security
课程网址:https://www.coursera.org/learn/internet-history 学习笔记: Week 1: History - Dawn of Early Computing ...