Python函数部分(1)
之前,我们编代码时程序遵循的原则是:根据逻辑从上至下实现功能,其往往用一大段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处。这种方式虽然可以应付一般性的问题,但不能解决大多数问题,于是就有了函数这个知识点,函数最大的优点:增强代码的复用性和可读性。
1.函数定义
在python中,函数有五大要点,分别是def、函数名、函数体、参数、返回值,以及函数名后的括号和括号后的冒号。
定义:
def func(a):
# 函数体
return a
def关键字开头,空格后接函数名称和圆括号,最后还有一个":"冒号,def是固定不变的,空格是为了将def关键字和函数名分开,函数名只能包含字符串、下划线和数字且不能以数字开头,括号时必须加的。
注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数的下面一行。以增强代码的可读性。
调用:就是函数名再加上括号。
2.函数的返回值
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。例如:
def func():
a = 'hello'
b = 'world'
c = a + " " + b d = func()
print(d
执行结果
我们只要在函数的最后面加上一个return,return后面写上你要返回的值就可以啦。
def func():
a = 'hello'
b = 'world'
c = a + " " + b
return c
d = func()
print(d)
执行结果
return关键字的作用
return是一个关键字,return后面的值称作返回值。返回值分为三种情况,分别是没有返回值,返回一个值,返回多个值。
没有返回值,不写return的情况下,会默认返回一个None如上面的第一个例子;只写return,后面不跟其它内容,也会返回None。----重要方法遇到return,结束整个函数。
def func():
print("hello")
return
print("world")
f = func()
print(f)
执行结果:
返回一个值,即在return后面写上要返回的值。
def func():
a = 'hello'
return a
f = func()
print(f) # 结果:hello
返回多个值,返回的多个值会被组织成元组返回。
def func1():
return 1, 2, 3, 4
def func2():
return 1, 'a', [2, 'b']
f = func1()
print(f)
f2 = func2()
print(f2)
执行结果:
3.函数的参数
# 计算x的n次方
def power(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
x, n = map(int, input().split())
print(power(x, n))
我们告诉power函数要计算的对象是谁,这个过程就叫做传递参数,简称传参,我们调用函数传递的x,n和定义函数时的x,n就是参数。
实参和形参,我们调用power函数时传递的x,n被称为实际参数,因为这个是实际的要交给函数的内容,简称实参。定义函数时的x,n;只是变量名字,被称为形式参数,因为在定义时它只是一个形式,表示这里有 一 个参数,简称形参。
位置参数:
站在实参角度:
1.按照位置传值
def func(x,y): # 此时x=10,y=20
if x > y:
a = x
else:
a = y
return a
f = func(10, 20)
print(f)
2.按照关键字传值
def func(x,y): # 此时x=20,y=10
if x > y:
a = x
else:
a = y
return a
f = func(y = 10, x = 20)
print(f)
3.位置、关键字形式混着用-----正确用法:位置参数必须在关键字参数的前面;对于一个形参只能赋值一次。
def func(x,y): # 此时x=10,y=20
if x > y:
a = x
else:
a = y
return a
f = func(10, y = 20)
print(f)
站在形参的角度:位置参数必须传值。
默认参数
1.使用方法:将变化较小的之设定成默认参数。
2.默认参数的定义
def func(name,sex='male'):
print(name, sex)
func('parker')
func('小红', 'female')
3.参数陷阱:默认参数是一个可变数据类型。
动态参数:
*args : 接收的是按照位置传参的值,组织成一个元组。
**kwargs : 接收的是按照关键字传参的值,组织成一个字典。
def sum(*args):
n =
for i in args:
n += i
return n print(sum(, ))
print(sum(, , ))
print(sum(, , , ))
def func(**kwargs):
print(kwargs)
func(a=1, b=2, c=3)
func(a=1, b=2)
func(a=1)
参数总结:
Python函数部分(1)的更多相关文章
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- Python函数作用域的查找顺序
函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...
- Python函数讲解
Python函数
- Python函数信息
Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- Python开发【第四章】:Python函数剖析
一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...
- Python函数解析
对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...
- Python函数1
Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...
- python函数传参是传值还是传引用?
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
随机推荐
- 基于STM32F1的局域网通信模块W5500驱动
目录 说明 W5500 W5500.c 使用方法 说明 需要调整的内容为W5500.h中关于IP地址.端口号.子网掩码.网关等参数 W5500 #ifndef _W5500_H_ #define _W ...
- Pycharm工具导入requests包(python新手)
在学习使用python的过程中选择了工具Pycharm,但是如下代码: ,起初导包一直报错,解决办法:File->Setting 点击右上角+号,打开搜素对话框 搜素需要的导包,并加入即可解决此 ...
- GMM与EM共舞
GMM,即高斯混合模型(Gaussian Mixture Model),简单地讲,就是将多个高斯模型混合起来,作为一个新的模型,这样就可以综合运用多模型的表达能力.EM,指的是均值最大化算法(expe ...
- java学习笔记01-环境配置
需要先下载java的jdk,jdk是java的开发工具包,jre是java的运行环境,jdk里面都会带有jre的. 打开www.java.com,点击免费下载就行.之后默认安装就行了 1.设置JAVA ...
- vCenter Server 6 Standard
准备环境和工具: 三台 ESXi 6.0主机: 准备一台Windows Server 2008 R2系统的虚拟机: VMware-VIM-all-6.0.0.iso 软件下载地址 链接: https: ...
- Beta 冲刺(4/7)
目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(4/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 整理博客 ppt模板 接下来的计划 做好机动. ...
- 解决tomcat端口被占用:Port 8005 required by Tomcat v7.0 Server at localhost is already in use
问题提示8005端口被占用 首先:在cmd下,输入 netstat -ano|findstr 8005 (什么端口号被占用就输入什么端口号),回车 再输入 taskkill /pid 20 ...
- python数据类型小测试
# 1. 有两个列表,其中一个列表a,每一项映射到另一个列表b每一项,先对a排序,要求b的中映射关系位置保持不变,给b也按照排序, (b的8对应a的[1,2], 7对应[3,4] ... ) a = ...
- SQL 性能优化 总结
SQL 性能优化 总结 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving ...
- python输入
(程序是如何输入输出的) 先了解一个概念,什么是函数? 简单来说,函数就是封装了一些功能,到时候只需要写一个函数名字,就可以使用这些功能 input函数,它是输入函数,它可以将用户输入的内容当做“字符 ...