九、函数

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

降低编程难度

代码重用

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

预定义函数

可以直接使用

自定义函数

用户自己编写

函数的定义和调用

-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. 《剑指offer》第四十三题(从1到n整数中1出现的次数)

    // 面试题43:从1到n整数中1出现的次数 // 题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如 // 输入12,从1到12这些整数中包含1 的数字有1,10,11和12 ...

  2. Python数据分析-Day2-Pandas模块

    1.pandas简介 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标 ...

  3. 雷林鹏分享:服务器上的 XML

    服务器上的 XML XML 文件是类似 HTML 文件的纯文本文件. XML 能够通过标准的 Web 服务器轻松地存储和生成. 在服务器上存储 XML 文件 XML 文件在 Internet 服务器上 ...

  4. Kali安装nessus

    下载 在官方网站下载对应的 Nessus 版本:http://www.tenable.com/products/nessus/select-your-operating-system 这里选择 Kal ...

  5. linux文件系统(一)

    linux的文件系统以及文件类型一.linux 文件系统: 根文件系统(rootfs) rootfilesystem /etc,/usr,/var,/home,/dev 系统自我运行必须用到的路径:( ...

  6. Windows搭建Express环境

    1. 以管理员身份运行cmd 2. cmd进入要配置项目的文件夹 3. nmp init 4. 使用default配置——一直回车 5. nmp install --save express //np ...

  7. 漏洞复现——bash远程解析命令执行漏洞

    漏洞描述:Bash脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令,在一些cgi脚本中,数据是通过环境变量来传递的,这样就会形成该漏洞 漏洞原理:bash通过以函数名作为环境变量名,以“( ...

  8. 函数和函数模版在一个。cpp中的情况!(除了左移和右移,其他的不要用友元函数!!!)

    // 友元函数和运算符重载的碰撞.cpp : 定义控制台应用程序的入口点. // #include <iostream> using namespace std; template < ...

  9. 动态BT跳转

    METHOD eh_onzobject_id_link. ***定义 DATA : lv_crmt_object_guid TYPE crmt_object_guid, lv_index TYPE i ...

  10. SpringBoot热部署:spring-boot-devtools在Idea中热部署方法

    1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.sprin ...