九、函数

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

降低编程难度

代码重用

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

预定义函数

可以直接使用

自定义函数

用户自己编写

函数的定义和调用

-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. 第 6 章 存储 - 040 - docker managed volume

    docker managed volume 与 bind mount 在最大区别是不需要指定 mount 源,指明 mount point 就行了 通过 -v 告诉 docker 需要一个 data ...

  2. Java通过ftp上传文件

    首先,pom.xml添加引用 <dependency> <groupId>commons-net</groupId> <artifactId>commo ...

  3. 初探nginx负载均衡配置

    只简单说一下upstream的配置,如何进行负载均衡后续还需要多了解 1.另准备一个配置文件命名为nginx_test.conf 为了不污染原有的nginx.conf,提前复制一份配置文件做试验,然后 ...

  4. centos 安装npm node

    最近那vue全套造了个管理系统的轮子,发现node简直太好用了. elment-UI的出现就是不懂ui设计的后台工程师的福音~ 正好自己买的两个云服务器空闲着没用,就拿来试试看了 首先软件都安装在/u ...

  5. 单分子荧光原位杂交(smFISH)

    single-molecule RNA fluorescence in situ hybridization (RNA smFISH) 单分子荧光原位杂交(smFISH)是一种新的基因表达分析方法,能 ...

  6. English trip V1 - B 20. Likes and Dislikes 喜欢和不喜欢 Teacher:Sole Key:

    In this lesson you will learn to talk about likes and dislikes. 课上内容(Lesson) # talk about hobby Do y ...

  7. Node.js 知识(教程)

    JavaScript on the Server JavaScript was originally built for web browsers, but with Node.js we can u ...

  8. You Don't Know JS: Scope & Closures (第2章: Lexical Scope)

    2种主要的models for how scope work. 最普遍的是Lexical Scope. 另一种 Dynamic Scope.(在Appendix a中介绍.和Lexical Scope ...

  9. 以太坊 web3.js 文档翻译及说明

    这些天,为了录制以太坊DAPP开发实战课程,我准备把web3文档全部翻译一下(并做适当的补充),目前web3.js 0.20.x 版本 已经翻译完成,欢迎大家前往查阅. 这里还几个实用DEMO,供大家 ...

  10. 6 Django REST framework JWT 和登录功能实现

    JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证. 我们不再使用Session认证机制,而使用Json Web Token认证机制. Json web token ( ...