九、函数

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

降低编程难度

代码重用

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

预定义函数

可以直接使用

自定义函数

用户自己编写

函数的定义和调用

-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. php 建站 多域名配置 自定义重定向

    1. 申请一个域名 , 当多个域名使用. 比如 申请一个顶级域名为 .com 后缀的一级域名 :mine.com, 一般允许绑定四五个二级域名,比如 www.mine.com  . mine.mine ...

  2. java基础题集

    1.什么是java虚拟机?为什么java被称作是“平台无关的编程语言”? java虚拟机是一个可以执行java字节码的虚拟机进程.java源文件被编译成能被java虚拟机执行的字节码文件. java被 ...

  3. 动态规划-子数组乘积小于k的总个数 Subarray Product Less Than K

    2018-09-01 23:02:46 问题求解: 问题求解: 最开始的时候,一眼看过去就是一条 dp 嘛,保存每个数字结尾的长度和,最后求和就好,至于长度如何求,本题中需要用滑动窗口来维护. 很好的 ...

  4. 2017-2018-2 20165327 实验三《敏捷开发与XP实践》实验报告

    2017-2018-2 20165327 实验三<敏捷开发与XP实践>实验报告 实验三 <敏捷开发与XP实践> 一.实验报告封面 课程:Java程序设计 班级:1653 姓名: ...

  5. 解决IIS7虚拟目录出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题

    今天在windows 7笔记本上搭建一个ASP.NET网络平台,启动IIS 7 时候出现错误: 错误摘要HTTP 错误 500.19 - Internal Server Error无法访问请求的页面, ...

  6. Spring Boot之logback日志最佳实践

    一.Spring Boot日志介绍 Spring Boot对所有内部日志记录使用了Commons Logging,但是底层日志实现是开放的.为Java Util日志记录.Log4J2和Logback提 ...

  7. 20170706xlVBA汇总历时对阵数据

    Public Sub GatherFilesData() Application.ScreenUpdating = False Application.DisplayAlerts = False Ap ...

  8. 参考hadoop

    参考hadoop http://blog.itpub.net/26613085/

  9. Pytorch的Reproducibility(可复现性)

    对于Pytorch的结果复现,在不同版本的pytorch或者不同的硬件平台之间,不能够保证结果是完全一致的,即使在CPU和GPU上采用相同的随机数种子. 关于torch.backend.cudnn.b ...

  10. XML注释与取消注释快捷键

    IntelliJ IDEA和eclipse中编辑Java文件时,注释和取消注释的快捷键都是: "CTRL + / " 编辑xml文件时, 注释:CTRL + SHIFT + / 取 ...