您的位置:首页 > 编程语言 > Python开发

Python:笔记(2)——函数

2017-12-04 01:42 204 查看

Python:笔记(2)——函数

Python函数

函数是什么

  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

  函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

模块

说明:

  模块是一系列相关的函数和变量。模块是一个由函数组成的工具箱,用于编写其他程序。因此模块通常没有main()函数

  模块中涉及到了命名空间的概念。实际上就是给模块中的函数增加了一个前缀,以免导入多个模块使用时出现同名函数,产生二义性

导入模块:

1 import div #创建一个新的命名空间。并在该命名空间中执行.py文件相关的所有语句
2 import div as foo #使用不同的名称导入模块
3 from div import funcation1 #将具体的定义加载到当前命名空间
4 from div import * #将模块的所有内容加载到当前命名空间  


使用模块的功能:

1 div.funcation1() #命名空间为默认的模块名 div
2 foo.funcation1() #命名空间为自定义的 foo
3 funcation1() #已加入到当前命名空间,不需要加前缀
4 funcation1() #已加入到当前命名空间,不需要加前缀


查看模块的内容:

import string
dir(string)


PY内置函数

内置函数
abs()divmod()input()open()staticmethod()
all()enumerate()int()ord()str()
any()eval()isinstance()pow()sum()
basestring()execfile()issubclass()print()super()
bin()file()iter()property()tuple()
bool()filter()len()range()type()
bytearray()float()list()raw_input()unichr()
callable()format()locals()reduce()unicode()
chr()frozenset()long()reload()vars()
classmethod()getattr()map()repr()xrange()
cmp()globals()max()reversed()zip()
compile()hasattr()memoryview()round()__import__()
complex()hash()min()set()
delattr()help()next()setattr()
dict()hex()object()slice()
dir()id()oct()sorted()exec 内置表达式

自定义函数

语法

def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]


函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

函数的参数

#coding=utf-8
def getPow(x=1):  指定默认值
"获得X的平方"
y=x*x
return  y

print getPow(5)
print getPow()


说明:

  1.如果函数定义中存在带有默认值的参数,其后续参数都是必须给定默认值

  2.Python不支持按值传递,所有参数传递都是引用传递。引用传递会出现形参修改无法影响到实参的问题!

  3.不定长参数:加了星号(*)的变量名会存放所有未命名的变量参数。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print "输出: "
print arg1
for var in vartuple:
print var
return;

# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );


关键字参数

#coding=utf-8
name ="Jack"
def getName():
print name

def setName(new_name):
global name
name=new_name

setName(new_name='Bob')
getName()


说明:

  所谓关键字参数就是,以param=value的形式传递数据。有两个好处:增强可读性关键字顺序无关紧要

全局变量

什么是全局变量

  在函数外面声明的变量成为全局变量,在程序中的任何函数或代码段都可以读取它。但是,在函数中给全局变量重复赋值时需要特别注意

一个错误的示例

#coding=utf-8
name ="Jack"
def getName():
print name

def setName(new_name):
name=new_name

getName()
setName('Bob')
getName()

输出结果:

  Jack
  Jack

说明:问题在于Python将函数内部的变量name视为局部变量,因此修改的并非全局变量name。

使用Global 访问全局变量

#coding=utf-8
name ="Jack"
def getName():
print name

def setName(new_name):
global name
name=new_name

getName()
setName('Bob')
getName()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: