day30-python阶段性复习四
九、函数
函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字。
降低编程难度
代码重用
可以通过函数名在程序的不同地方多长执行,这通常叫函数调用(。)。
预定义函数
可以直接使用
自定义函数
用户自己编写
函数的定义和调用
-def函数名([参数列表])://定义
-函数名([参数名]) //调用
函数调用
#!/usr/bin/python
def fun():
    sth = raw_input("Please input something: ")
try:                                    
 #捕捉异常,如果有异常跳过执行 except处理
        if type(int(sth)) == type(1):
            print "%s is a number" %sth
    except:
        print "%s is not number" %sth
 fun()
函数参数
形式参数和实际参数
在定义函数是,函数名后面括号中的变量名称叫做”形式参数”,或形参
在调用函数时,函数名后面括号中的变量名称叫做”实际参数”,称为实参
#函数命名俩个英文单词,第二个单词首字母大写.
#!/usr/bin/ptyhon
import sys       模块
print sys.argv[1]   模块属性,传递参数,传递进去的字符串
def isNum(s):
    for i in s:
        if i in '0123456789a':
            pass
        else:
            print "%s is not a number" %s
            sys.exit()
    else:
         print "%s is a number" %s
isNum(sys.argv[1])
print sys.argv[1]  模块属性 传递参数, 传递进去的是字符串
ls /proc/ 查看pid
函数的默认参数
缺省参数(默认参数) (默认参数从右到左定义,不能从只定义左边形参)(实参从左到右定义)
def fun(x,y=100)
print x +y
打印系统所有的Pid
#!/usr/bin/ptyhon
import sys
import os   os模块  os.listdir读取目录,将文件名变为列表列出
def isNum(s):
    for i in s:
        if i in '':
            pass
        else:
            break
    else:
        print s
for i in os.listdir('/proc/'):
    isNum(i)
函数的变量
全局变量和局部变量
全局变量在脚步开头定义。
在局部可以print
要在局部函数使用操作参数,需要声明成全局变量 global x
局部变量在函数内局部,使用完立即销毁。局部变量在全局使用,也需要声明global
1 #!/usr/bin/python 2 def fun(): 3 x = 1 4 y = 1 5 print locals() 6 fun() 7 print locals() locals() 统计变量输出成字典
函数的返回值
函数被调用后会返回一个指定的值
函数调用后默认返回NONE
return返回值
返回值可以是任意类型
return执行后,函数终止
return与print区别
查找pid方法二
#!/usr/bin/ptyhon
import sys
import os
def isNum(s):
    for i in s:
        if i not in '':
            return False
    return True
for i in os.listdir('/proc/'):
   if isNum(i):      如果返回值是true,则执行下面条件
       print i
查找pid方法三
#!/usr/bin/ptyhon
import sys
import os
#print sys.argv[1]
def isNum(s):
    if s.isdigit():     s.isdigit()如果是数字返回true 如果不是返回False
        return True
    return False
for i in os.listdir('/proc/'):
   if isNum(i):
       print i
多类型传值
可以将元组和字典的数值传到函数
def fun(x,y,z):
print x+y+z
t1=(2,3,5)
fun(*t)  加*传递元组数值到函数
dic = {'x':1,'y':4,'z':5}
fun(**dic)  加**传递字典到函数,参数需要一一对应,k值和形参一致。
冗余参数
处理多余的参数
两种类型,传到元组或者字典里
def fun(x,*args,**kwargs): *args定义元组,**kwargs定义字典
单个字符传入元组,例如 1,4,‘a’
赋值传入字典 例如 x=1,y=2
 递归调用
#!/usr/bin/python
def factorial(n):
    sum=1
    for i in range(1,n+1):
        sum*=i
    return sum
print factorial(5)
递归的注意事项
必须有最后的默认结果
if n ==0
递归参数必须向默认结果收敛的:
factorial(n-1)
day30-python阶段性复习四的更多相关文章
- 【转】python 历险记(四)— python 中常用的 json 操作
		[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ... 
- Python并发复习1 - 多线程
		一.基本概念 程序: 指令集,静态, 进程: 当程序运行时,会创建进程,是操作系统资源分配的基本单位 线程: 进程的基本执行单元,每个进程至少包含一个线程,是任务调度和执行的基本单位 > 进程和 ... 
- 《笨办法学 Python(第四版)》高清PDF|百度网盘免费下载|Python编程
		<笨办法学 Python(第四版)>高清PDF|百度网盘免费下载|Python编程 提取码:jcl8 笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机 ... 
- Python 基础语法(四)
		Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ... 
- 初学 Python(十四)——生成器
		初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ... 
- Python第二十四天 binascii模块
		Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ... 
- Python/MySQL(四、MySQL数据库操作)
		Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ... 
- python学习第四讲,python基础语法之判断语句,循环语句
		目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ... 
- Python第十四天 序列化  pickle模块  cPickle模块  JSON模块  API的两种格式
		Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ... 
随机推荐
- Unity---资源管理中不同资源的路径获取方式
			1.首先需要先了解两个知识点: Unity内置的文件路径获取方式.windows的Directory.GetFiles文件获取方式: 1>Unity内置的文件路径获取方式,一下是官方解释:h ... 
- Axure 第一次交互 实现跳转页面
- libavcodec是一款LGPL自由软件编解码库,用于视频和音频数据的编解码工作
			http://zh.wikipedia.org/zh-cn/Libavcodec http://baike.baidu.com/view/856526.htm libavcodec是一款LGPL自由软 ... 
- linux权限管理之进程掩码
			进程掩码 mask umask ======================================================== 文件权限管理之: 进程umask进程 新建文件.目录的 ... 
- canvas学习之折线图
			接着上一张柱状图讲,我们是使用折线图: import {canvasPoint} from '../../assets/js/canvas';import {basicInfo,histogramMo ... 
- 微信小程序如何导入字体图标
			前提:我们已经拥有了从阿里图标库下载下来的一系列的字体图标文件1:找个其中的ttf格式的文件,然后打开https://transfonter.org/网站2:点击Add fonts按钮,加载ttf格式 ... 
- [LintCode] Serialize and Deserialize Binary Tree(二叉树的序列化和反序列化)
			描述 设计一个算法,并编写代码来序列化和反序列化二叉树.将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”. 如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉 ... 
- 终于可以从百度云上BOS读取数据到本地了
			终于可以从百度云上BOS读取数据到本地了 
- 5月17  利用AJAX查询数据库
			利用AJAX查询数据 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ... 
- QQ企业邮箱接口
			我推荐的这篇文章很好:http://wenku.baidu.com/link?url=KQIMyrECGb8GS_0fag4PRG64M8Z7wOLbsU1f3BhydXAyYJDC2JMHEuVcy ... 
