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 ...
随机推荐
- [C#]获取指定文件夹下的所有文件名(递归)
典型的递归方法: //定义一个list集合 List<String> list = new List<String>(); public void director(strin ...
- Mac Anaconda 安装
下载地址 https://www.anaconda.com/download/#macos 选择对应的python 版本 安装 一路下一步 安装后打开如下 呵呵,此处装完,我的python 环境又从3 ...
- vue2.0 axios交互
vue使用axios交互时候会出现的问题大致有三个: 1:本地调试跨域问题? 2:post请求,传参不成功,导致请求失败? 3:axios引用,在使用的组件里面引用 解决方案: 问题一:跨域? 解决本 ...
- (10)进程---Manager数据共享
Manager 能够实现进程之间的数据共享(dict list),但是必须上锁来确保数据的准确性, 队列则可以实现进程之间数据通信 from multiprocessing import Proce ...
- layui 下拉框不显示解决方法
添加以下代码 layui.use('form', function(){ var form = layui.form; form.render(); });
- 【转】 聚类算法-Kmeans算法的简单实现
1. 聚类与分类的区别: 首先要来了解的一个概念就是聚类,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西 ...
- appium自动化环境搭建(python语言开发)
简述 1.安装jdk,配置环境变量 2.安装AndroidSDK,配置环境变量 3.安装Python 4.安装Python集成开发环境PyCharm 5.安装node 6.安装appium服务端 7. ...
- Html Email 邮件html页编写指南
前言 写过邮件的html的童学应该都知道,邮件的html一般都用table来布局,为什么呢?原因是大多数的邮件客户端(比如Outlook和Gmail),会过滤HTML设置,让邮件面目全非. 经过多次的 ...
- python记录_day15 面向对象初识
一.面向过程和面向对象 1.面向过程 以我为中心,做一件事先干什么,在干什么,后干什么,有一套清楚完整的流程.核心是“过程”. 优点:将要解决的问题流程化, 编写相对简单 缺点:可扩展性差 2.面向对 ...
- bzoj3676: [Apio2014]回文串 pam
题意:字符串s.我们定义s的一个子串t的"出 现值"为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. 题解:pam板子题 //cnt数组表示该节点代表的 ...