九、函数

函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字。

降低编程难度

代码重用

可以通过函数名在程序的不同地方多长执行,这通常叫函数调用(。)。

预定义函数

可以直接使用

自定义函数

用户自己编写

函数的定义和调用

-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阶段性复习四的更多相关文章

  1. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

  2. Python并发复习1 - 多线程

    一.基本概念 程序: 指令集,静态, 进程: 当程序运行时,会创建进程,是操作系统资源分配的基本单位 线程: 进程的基本执行单元,每个进程至少包含一个线程,是任务调度和执行的基本单位 > 进程和 ...

  3. 《笨办法学 Python(第四版)》高清PDF|百度网盘免费下载|Python编程

    <笨办法学 Python(第四版)>高清PDF|百度网盘免费下载|Python编程 提取码:jcl8 笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机 ...

  4. Python 基础语法(四)

    Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...

  5. 初学 Python(十四)——生成器

    初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...

  6. Python第二十四天 binascii模块

    Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...

  7. Python/MySQL(四、MySQL数据库操作)

    Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ...

  8. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  9. Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式

    Python第十四天 序列化  pickle模块  cPickle模块  JSON模块  API的两种格式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Py ...

随机推荐

  1. Spark之standalone模式

    standalone hdfs:namenode是主节点进程,datanode是从节点进程 yarn:resourcemanager是主节点进程,nodemanager是从节点进程 hdfs和yarn ...

  2. axios写法

  3. icehouse版本中常用操作命令

    •Glance操作常用命令1,列出所有镜像.glance image-list 2,显示某个image的详细信息.glance image-show 某个image的ID. 3,获得命令的帮助.gla ...

  4. 安装xmlspy之后,链接及邮箱等都用这个软件打开,怎样取消?

    安装xmlspy之后,链接及邮箱等都用这个软件打开,怎样取消? 安装xmlspy之后,大部分的链接就会用这个软件打开,比较糟心.所以尝试很多的方法,终于解决了. (1)打开控制面板,找到默认程序: ( ...

  5. 《HTTP 权威指南》笔记:第十二章 基本认证体制

    导言 客户端可以通过网络来得到想要的信息,但是有一些信息并不能是对所有人都能看到的,因此必须有一种认证机制.服务器需要通过这种方式来了解用户身份,一旦服务器知道了用户的身份,就可以让用户能够访问请求的 ...

  6. every day a practice —— morning(3)

    "WeChat does not store any chat histories. They are stored only on users' phones, computers or ...

  7. pandas更换index,column名称

    1)仅换掉index名称 df.index = list 2)调整index时,后面的项目也要跟着调整: df.reindex(list) 注意如果list中出现了df中没有的index,后面的项目会 ...

  8. liunx权限管理之高级权限

    高级权限 suid,sgid,sticky ======================================================== 文件权限管理之:高级权限 问题1: 为什么 ...

  9. hadoop 企业应用案例--大众点评

    hadoop 企业应用案例--大众点评 http://f.dataguru.cn/thread-260531-1-1.html

  10. es的分词器analyzer

    analyzer   分词器使用的两个情形:  1,Index time analysis.  创建或者更新文档时,会对文档进行分词2,Search time analysis.  查询时,对查询语句 ...