Python tutorial阅读之函数的定义与使用

函数的定义

Python 使用关键字def定义函数,格式与C语言类似,但是没有返回类型,参数也不需要设置类型。

def add(a, b):
    """这是函数的文档字符串"""
    return a + b

def append(data):
    data.append(a) #如果data为可变对象时候,例如List、Dict,则会改变实参的值
    

函数调用 会为函数局部变量生成一个新的符号表。确切的说,所有函数中的变量赋值都是将值存储在局部符号表。变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表。因此,全局变量不能在函数中直接赋值(除非用 global 语句命名),尽管他们可以被引用。

Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值‘来传递对象。

参数

默认参数: 为参数设定默认值,调用函数时,如果没有值即使用默认值。

def login(username,password = "123"):
    """登录函数"""
    pass

login("admin")
login("admin","password")

def f(a, L=[]):
    L.append(a)
    return L

print(f(1))
print(f(2))
print(f(3))
# 输出结果
[1]
[1, 2]
[1, 2, 3]

>>> def f(x = []):
...     x.append(1)
...     print(id(x))
...
>>> f()
140693834878408
>>> f()
140693834878408
>>> f()
140693834878408
>>>

关键字参数调用:即指定形式key = value来调用函数,关键字参数应该在位置参数后面。

def parrot(voltage, state=‘a stiff‘, action=‘voom‘, type=‘Norwegian Blue‘):
    print("-- This parrot wouldn‘t", action, end=‘ ‘)
    print("if you put", voltage, "volts through it.")
    print("-- Lovely plumage, the", type)
    print("-- It‘s", state, "!")

# 以下调用均是错误的
parrot()                     # 必须参数没有
parrot(voltage=5.0, ‘dead‘)  # 关键字参数必须在位置参数之后
parrot(110, voltage=220)     # **任何参数都不可以多次赋值**
parrot(actor=‘John Cleese‘)  # 不存在该参数名

原文地址:https://www.cnblogs.com/xmxj0707/p/8448404.html

时间: 2024-11-14 12:30:48

Python tutorial阅读之函数的定义与使用的相关文章

【Python】Java程序员学习Python(五)— 函数的定义和使用

不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍,方法的目的还是重用和封装 一.方法的定义 方法的定义使用关键词def来定义,定义格式如下: def 方法名(参数定义): 方法体 方法名:方法名的规范同变量名规范一样 参数定义:比较复杂,后面会进行讲解 冒号:这个类似于Java的{},必不可少 方法体:方法实现的功能在此定义即可 简单的例子: #定

Python开发基础 day5 函数的定义与使用

#coding:utf-8: # x='你' # u'hello' # print(x.encode('gbk')) # print(b'\xc4\xe3') # y=b'\xc4\xe3' # print(y.decode('gbk')) # x='你' #unicode.encode('utf-8') y=u'你' print repr(y) # while True: # msg=input('>>: ') # # # print(len(msg)) # # res=len(msg) #

Python tutorial阅读之使用 Python 解释器

配置环境变量后,一般可以直接通过Python或指定Python版本号来调用Python. Python 解释器有些操作类似 Unix shell:当使用终端设备(tty)作为标准输入调用时,它交互的解释并执行命令:当使用文件名参数或以文件作为标准输入调用时,它读取文件并将文件作为 脚本 执行. Python -m 模块名 [arg] ... #可以直接执行模块,类似于直接读取文件并作为脚本执行 1 python -c command [arg] ... #直接执行命令 2 python -c "

Python tutorial阅读之基本数据结构

list API 作用 等价操作 list.append(x) 把一个元素添加到结尾 a[len(a):] = [x] list.extend(L) 把一个列表的元素添加到另一个列表 a[len(a):] = L list.insert(i,x) 把一个元素插入到节点i之前 ... list.remove(x) 删除列表中指定的元素x,每次只会删除最靠前的那个 ... list.pop(i) 删除指定位置的元素,并返回,如果没有,则删除最后一个 ... list.clear() 删除所有的元素

Python tutorial阅读之Python基本运算与基本变量

将 Python 当做计算器 除法运算 用/表示除法运算时,一般得到的是浮点数,如果我们需要得到整数,可以用运算符// 余数计算 % 幂乘方 系统内置变量_ 内置变量_,存储了最近的结果.如图 字符串 符串可以由 + 操作符连接(粘到一起),可以由 * 表示重复,并且相邻的两个字符串文本自动连接在一起. 错误用法: x = "123" y = "456" x y #错误,SyntaxError: invalid syntax x + y #正确 x "12

Python 函数的定义与调用

Python函数如果要调用必先定义 在定义阶段,Python只检查函数的语法是否正确不进行调用 函数的定义与变量的定义类似,没有事先定义变量,而直接引用变量,会报错没有事先定义函数,而直接调用,就相当于在引用一个不存在的变量名 在调用阶段才会执行函数,示例如下: #定义阶段 def foo(): print('from foo') bar() def bar(): print('from bar') #调用阶段 foo()

python的operator.itemgetter('click')用于定义获取'click'项的函数

b = operator.itemgetter(1)  定义函数b,用于获取传入list的第1域的值 可以将b用于sort函数的key.作为排序的依据. adn_app_data_map是个字典 for key, app_arr in adn_app_data_map.items(): app_arr.sort(key=operator.itemgetter('click'), reverse=True) app_arr = app_arr[:3] keys = key.split('#') c

Python基础笔记:函数:调用函数、定义函数、函数的参数、递归函数

一.定义一个求二元一次方程的根的函数 #Sublime Text import math def ee(a,b,c): delta=b*b-4*a*c if delta<0: return 'null' else: m=math.sqrt(delta) nx=(-b+m)/2/a ny=(-b-m)/2/a return nx,ny #python解释器 >>> from hello import ee #声明调用py文件中所定义的函数ee >>> ee(1,0,

python入门(五)函数的定义

python中函数的定义以def开头,后面跟函数定义的名称和())'括号中定义参数' 以冒号开始,并且进行缩放,return结束如: def hello (ming): print ming return 传递参数: ming=[1,2,3]ming="ok"如上所示,变量是没有类型的,可以为list可以为str参数分为 必备参数 关键字参数 默认参数 不定长参数 必备参数: def hello (ming): print ming return 调用函数 hello(): 那么会报错