零基础入门Python3-函数详解(1)

我们通过一种运算方法,把一个数字运算成另一个数字,每次需要运算的数字都是不同的,但是运算方法都是一致的。如果每次运算都需要定义和编写相同代码,那我们的工作量简直太大了。函数就是对应的解决办法,输入对象,通过相同的计算,得到相应的结果,这个调用过程就叫做函数。

1、定义函数

def 函数名称():

        语句1

        语句2

        ......

        return xxx

def是定义函数的标识,这个是不能丢的。然后函数名称和变量定义的规则是一致的,不能以数字开头等,冒号必须写在最后。语句就是我们需要编写的功能代码。return xxx代表的是调用函数后返回值。

#实例1

def func():

print(‘这是函数‘)

return True

#这里的func就是定义的函数名称,print(‘这是函数‘)是函数的内容,return True为返回值为真。

2、调用函数

我们上面讲到,定义函数的时候有一个函数名,这个函数名就是在调用函数使用使用的。

#调用没有参数的函数语法

函数名()

#调用有参数的函数语法

函数名(参数1,参数2,......)

#实例

func()

>>>这是函数

#这里输出的字符串就是我们刚才func函数的功能代码里面的输出结果。

3、函数的参数

函数的参数分为位置参数、默认参数、可变参数、关键字参数、命名关键字参数。

(1)位置参数

位置参数就是按照定义函数时,相对应的函数位置的值进行赋值。

def    函数名称(位置参数1、位置参数2、......):

        语句1

        语句2

        ......

        return  xxx

#实例1

def  func(name,age):

print(‘My name is {0},i am {1} year old‘.format(name,age))

return True

func(‘zhangsan‘,‘18‘)

>>>My name is zhangsan,i am 18 year old

#  func是函数名称,name、age是函数的参数,print(xxx)是函数的功能代码,return True为返回真。func(‘zhangsan‘,‘18‘)为调用代码。

#在我们调用函数的时候,我们并没有给参数进行赋值,而是直接输入相对应的值。我们已经知道,func函数的第一个参数就是name,调用函数是,按照相应位置,第一个参数输入name的值。第二个位置的参数是age,调用参数的时候值就是age的值。这就是位置参数。

但是,我们这个函数还是有点不严谨,如果我们在name变量的位置输入一个数字,在age变量的位置输入一个字符串,那输出的结果就不伦不类了。

#调用以上代码

func(20,‘lisi‘)

>>>My name is 20,i am lisi year old

# 第一,顺序完全乱了,第二变量没有做严格的筛分。

怎么避免这种情况呢?我们在函数的内部做一个判断,如果符合我们的设定,则运行我们的功能代码,否则,输出字符串错误,或者pass。

实例2

def func(name,age):

if isinstance(name,str):

if isinstance(age,int):

print(‘My name is {0},i am {1} year old‘.format(name,age))

else:

print(‘这个年龄不是正确的格式!‘)

else:

print(‘这个名字不是正确的格式!‘)

#    需要指出的是isinstance(v1,type)函数是指判断某个变量的值和type(数据的类型)是否相同,相同返回True,不同返回False。

#    两个判断,一个对name是否为str字符串类型进行判断,另一个对age是否为int整数类型进行判断。如果都成立了,则运行功能代码print(xxx)。

# 这里我在补充一点,函数可以返回多个值

def    函数名称(位置参数1、位置参数2、......):

        语句1

        语句2

        ......

        return  v1,v2,v3, ...

# 实例3

def func():

pass

return ‘aa‘,‘bb‘,‘cc‘,123,456

a=func()

print(a)

print(‘----------------------------‘)

print(type(a))

>>>

(‘aa‘, ‘bb‘, ‘cc‘, 123, 456)       #输出的结果

----------------------------              #输出的结果

<class ‘tuple‘>                         #输出的结果

# 我们可以看到,确实是返回了几个值。同时这些值的类型是tuple(以后会讲到的)

(2)默认参数

默认参数就是在调用函数的时候可以不给这个默认参数赋值,这个参数在定义的时候就默认给赋值了,但是我们想另外赋值也是可以的。以前我们一直用的print()就是一个内置函数,一般的情况下,只给一个值,就是想输出的内容(字符串、整数、list....)例:print(‘这就是我想输出的内容‘)其实,print()内置函数定义的时候,是有几个参数,只不过我们几乎不用。我们使用help(print)来看看他的具体参数。 print(value, ..., sep=‘ ‘, end=‘\n‘, file=sys.stdout, flush=False)

#语法

函数名称(参数1,参数2,参数3=‘python‘)

我们就以end=‘\n‘为例,这就是一个典型的默认函数。print函数在定义的时候就已经给end赋值为 ‘\n‘,‘\n‘ 是什么呢?是换行符的意思。print() 函数默认的情况下是自动换行的。但是,我们也可以给end赋值为 ‘ ‘ 空,让它不换行。

#    实例1

print(‘这个是换行的‘)

>>>这个是换行的

#这个新的一行

#    实例2

print(‘这个是不换行的‘,end=‘ ‘)

>>>这个是不换行的

#    实例3

#演示默认函数的定义与调用

def func(name,age,sex=‘man‘):

print(‘name:{0}    age:{1}    sex:{2}‘.format(name,age,sex))

func(‘wangwu‘,38)

>>>name:wangwu    age:38    sex:man

func(‘xiaomei‘,19,sex=‘girl‘)

>>>name:xiaomei    age:19    sex:girl

#   这个func()函数在定义的时候,就给sex赋值为字符串 ‘man‘,调用的时候,如果在sex的相应位置没有值,则sex的值默认为字符串 ‘man‘。如果调用的时候,给sex赋值的话,此时,默认函数sex在定义时候的值 ‘man‘已经无效了,sex的值为字符串 ‘girl‘。

在定义函数的时候,我们给某个参数赋值,这个参数就变成默认参数了。调用函数的时候,如果不给默认参数赋值,则默认函数的值为定义函数时候的默认值。如果在调用函数的时候,给默认函数赋值,则默认函数的值为最新赋的值。

*这里我们要注意,默认参数的位置在所有参数的最后面。

关注公众号,了解更多!

原文地址:https://www.cnblogs.com/pyshadow/p/10399925.html

时间: 2024-08-30 05:25:14

零基础入门Python3-函数详解(1)的相关文章

Python最详细的零基础入门之——多线程详解!

进程 && 线程 进程:是内存中的一个独立的句柄,我们可以理解为一个应用程序在内存中就是一个进程. 各个进程之间是内存相互独立,不可共享的 线程:每个应用运行之后就会对应启动一个主线程,通过主线程可以创建多个字线程,各个线程共享主进程的内存空间. 关于线程.进程的解释有一篇有趣而生动的解释(http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html) GIL(全局解释器锁) 我们知道多进程(mutilprocess)

Python3零基础入门学习视频+源码+课件+习题-小甲鱼

目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半部分主要讲解Python3的语法特性,后半部分着重讲解Python3在爬虫.Tkinter.Pygame游戏开发等实例上的应用.整个系列共16个章节,前边13个章节从一个小游戏引入Python,逐步介绍Python的语法以及语言特色.最后3个章节为案例的演示,是前边内容的总结和提高. 其他介绍 2.

python基础知识~ 函数详解2

python~函数详解2 1 生成器函数   定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数  须知 yield和return一样,都可以返回数据,但是不会彻底中断函数,分段进行函数处理  继续执行 函数(迭代器)  __next__()   __send__(参数)//和next具有同一个功能,还添加了给上一个值赋值功能  def func()  print(a)  a=yield 1 //yield特殊定义   print (b)  b=yi

Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html 目录 一.Arm-Linux程序开发平台简要介绍... 3 1.1程序开发所需系统及开发语言... 3 1.2系统平台搭建方式... 4 二.Linux开发平台搭建... 5 2.1安装虚拟工作站... 5 2.2安装Linux虚拟

鱼C《零基础入门学习Python》1—9节课时知识点总结

第一节:我和python的第一次亲密接触 0. Python 是什么类型的语言? 答:脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比 C语言.C++语言 或 Java 之类的系统编程语言要简单容易.也让脚本语言另有一些属于脚本语言的特性: 语法和结构通常比较简单 学习和使用通常比较简单 通常以容易修改程序的“解释”作为运行方式,而不需要

大数据系统学习零基础入门到精通加项目实战2017最新全套视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

linux网络编程之shutdown() 与 close()函数详解

linux网络编程之shutdown() 与 close()函数详解 参考TCPIP网络编程和UNP: shutdown函数不能关闭套接字,只能关闭输入和输出流,然后发送EOF,假设套接字为A,那么这个函数会关闭所有和A相关的套接字,包括复制的:而close能直接关闭套接字. 1.close()函数 [cpp] view plain copy print? <span style="font-size:13px;">#include<unistd.h> int 

mysql基础篇 - SELECT 语句详解

基础篇 - SELECT 语句详解 SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELECT 语句的用法. 二.实验准备 在正式开始本实验内容之前,需要先下载相关数据库表,搭建好一个名为mysql_shiyan 的数据库(有三张表:department,employee,project),并向其中插入数据. 具体操作如下,首先输入命令进入 /home/shiyanlou/Desktop 目录: cd /

从零基础入门JavaScript(1)

从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了java顺风车,改名为javascript 与此同时,     微软因此在自身的浏览器里,也推出了自己的脚本语言 jscript 1997年时候,  由ECMA(欧洲计算机制造商协会)出面,推出了一套javascript的规范,Ecmascript ,规范提出js由三部分组成 JS的组成: ECMAS