函数
def func1():定义函数
'''testing1'''#函数的说明
print("in the func1")#定义过程
return 0 #得到函数的执行结果。还是程序的结束
过程就是没有返回值的'函数'

def func2():
'''testing2'''
print('in the func2')
x=func1()
y=func2()

print('from func1 return is %s'%x)
print('from func2 return is %s'%y)

import time
def logger():
time_format='%Y-%m-%d %X'# 定义时间格式年 月 日 时秒
time_current=time.strftime(time_format)#引用上面时间格式
with open('a.txt','a+') as f:#打开一个文件,以二进制追加的方式获取文件描述符f
f.write('%s end action\n' %time_current) #给文件里写一段字符串

def test1():
print('in the test1')

logger()

def test2():
print('in the test2')

logger()

def test3():
print('in the test3')

logger()
test1()
test2()
test3()

'''函数的好处1、重复利用,减少重复代码
2、保持一致性
3、可扩展性'''

# def test1():
print('in the test1')

def test2():
print('in the test2')
return 0 #return 0返回值得意义要根据返回值的结果做出不同的操作
def test4():
print('in the test4')
return 1
def test3():
print('in the test3')
return 1,'hello',['电脑','打印机'],{'天气':'晴天'}#可以返回任何东西
def test5():
print('in the test5')
return test2

x=test1()
y=test2()
z=test3()
o=test4()
p=test5()
print(x)#返回的是none
print(y)#返回的是0
print(z)#返回的是元祖
print(o)#返回的是1
print(p)#返回的是test2函数的内存地址

def test(x,y):#x,y是实参
print(x)
print(y)
test(1,7)# 位置调用
# =test(x=1,y=7)#与实参对应1、2是形参 定义两个值1传给x,2传给y

#默认参数
def test(x,y=1)
print(x)
print(y)
test(1,3)#默认参数特点:调用函数时,默认参数非必须传递
#用途1 默认安装至
# 2、连接数据库默认端口号

#参数组
def test(*args):#*args接受N个位置参数,把他转换成元祖的形式
print(args)
test(1,2,3,4,5,6)
test(*[1,2,4,6,8,])#args=tuple([1,2,4,6,8])

def test1(x,*args):
print(x)
print(args)

test1(1,2,3,4,5,6,7)

#**kwargs:接收关键字参数,把N个关键字参数,转换成字典的方式
def test2(**kwargs):
print(kwargs)
test2(name='dream',age=18,)
test2(**{'name':'dream','age':18})

def test2(name,age,**kwargs):#参数组一定要放在**kwargs之前
print(name)
print(age)
print(kwargs)
test2(name='dream',age=18,)
test2(**{'name':'dream','age':18})

def test4(name,age=18,**kwargs):#参数组一定要放在**kwargs之前
print(name)
print(age)
print(kwargs)
test4('dream',33,hobby='tesla',gender='m')

#作用域,字符串,数字不能局部该全局

school='oldboy edu.'#变量用于全局
def change_name(name):
#global school #复杂程序不能使用
school='Mage.linux'#
print('before change',name,school)
name='Dream zhao'#变量仅用于这个函数
age=28
print("after change",name,school)
print('school',school)
name="alex"
change_name(name)
print(name,school)

name=['Tom','Jack','Rain']#列表、字典、集合变量用于全局
def change_name():
name[0]='Jim'#列表、字典、集合可以在局部改全局
name.append("dream")#列表、字典、集合可以追加
print('inside func',name)

change_name()
print(name)

学习Pytbon第九天,函数1 过程和参数的更多相关文章

  1. python学习第二十九天函数局部变量如何改变外部变量

    python函数局部变量如何改变外部变量,之前我说过,局部变量是没办法改变外部变量的,除非局部变量找不到,去外部找,输出变量,使用关键词global 使变量改变外部变量. 1,使用关键词global ...

  2. python学习笔记12(函数三): 参数类型、递归、lambda函数

    一.函数参数的类型 之前我们接触到的那种函数参数定义和传递方式叫做位置参数,即参数是通过位置进行匹配的,从左到右,依次进行匹配,这个对参数的位置和个数都有严格的要求.而在Python中还有一种是通过参 ...

  3. python学习笔记11(函数二): 参数的传递、变量的作用域

    一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...

  4. 2017寒假零基础学习Python系列之函数之 定义默认参数

    在定义函数时,可以有默认参数例如Python自带的函数int(),其实就是两个参数,我们既可以传一个参数,又可以传两个参数 int(') >>>123 int(',8) 83 int ...

  5. python学习(十一)函数、作用域、参数

    定义和调用函数 在这里函数的定义和调用和一般的语句没什么不一样,感觉函数也是对象 #!/usr/bin/python def times(x, y):                # 定义函数    ...

  6. c++学习笔记5(函数的缺省参数)

    例: void func(int x1,int x2=2,int x3=3){} func (10)//等效于func (10,2,3) func (10,8)//等效于func (10,8,3) f ...

  7. CoffeeScript学习(3)—— 函数

    CoffeeScript函数 如果大家有看我之前关于ES6的箭头函数的话,这一篇也不会很难理解.我们这一次可以说一下,关于两者的一些细微差别. 基本 在CoffeeScript中,任何函数都是用箭头函 ...

  8. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  9. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

随机推荐

  1. 链表例题2:链表的倒数第k个节点是多少

    解题思想: 1.创建一个结点类(为后面实现链表做基础) 2.创建一个查询倒数元素的方法 3.使用快慢指针的思想(主要的部分) 图中的表示的是查询倒数第k个结点的操作: 创建一个快慢指针后pre(慢指针 ...

  2. 跨平台图表控件TeeChart使用教程:导入XML数据

    TeeChart的最新版中包含了一个自动加载XML数据的新组件.这个组件的名字叫做TTeeXMLSource,用户可以在TeeXML.pas unit中找到这个组件. 加载XML图表所需的最小属性是& ...

  3. 使用uwsgi启动django项目

    在 manage.py 同级目录 创建 uwsgi.ini 文件 ,内容如下: [uwsgi] # 对外提供 http 服务的端口 http = :18123 #the local unix sock ...

  4. Cordova各个插件使用介绍系列(八)—$cordovaCamera筛选手机图库图片并显示

    原文档请看http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/ionic%E5%9B%BE%E7%89%87%E4%B8%8A%E4%B ...

  5. 小程序里打开app的实现过程

    之前开发过类似得需求,也踩了一些小坑,在这里和大家分享下,毕竟这样的需求也不在少数,基本上产品后期都会有这样的需求: 官方说明 因为需要用户主动触发才能打开 APP,所以该功能不由 API 来调用,需 ...

  6. 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)(转)

    这篇文章给大家介绍关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)的相关资料,还给大家收集些关于MySQL会出现中文乱码原因常见的几点,小伙伴快来看看吧   最近两天做项目总是被乱码问题困 ...

  7. php 调用微信虚拟支付

    摘要:小游戏对接微信虚拟支付,需要自己的后台调用微信的虚拟支付接口,微信的文档实在烂,总结走过的坑. 1.报错{errcode:90007,errmsg:invalid openid} 无效的open ...

  8. ubuntu linux 使用命令行安装 google chrome

    原帖地址: https://www.cyberciti.biz/faq/how-to-install-google-chrome-in-ubuntu-linux-12-xx-13-xx/ $ wget ...

  9. mm_struct简要解析

    http://blog.chinaunix.net/uid-20729583-id-1884615.html struct mm_struct {    /*        指向线性区对象的链表头   ...

  10. 静态库是.o文件的集合与弱符号

    静态库是.o文件的集合. 静态库与弱符号的概念相关联. 在生成库文件时,不做强符号检查.