函数
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. js去除重复项

    window.onload = function(){ var array = [12, 14,15,17,12,11,12,14,16] alert(del(array)); } function ...

  2. spring-boot学习之属性配置

    通过@value注解,将配置文件中的内容引入

  3. select标签使用 三目运算符

    <td> <select id="roleName" name="roleName" class="input" styl ...

  4. 基于Python的开源人脸识别库:离线识别率高达99.38%

    项目地址:https://github.com/ageitgey/face_recognition#face-recognition 本文的模型使用了C++工具箱dlib基于深度学习的最新人脸识别方法 ...

  5. Unity3d开发集成Google Admob广告增加收入

    在Unity游戏中植入广告是Unity 游戏产品增加收入的一种重要方式,常用的广告有谷歌Admob,百度ssp,腾讯广点通,unity公司的unityads等等,而使用的最多的应该属于谷歌Admob, ...

  6. 用Android studio进行 OpenCV 开发的第一个项目

    我的天! 折腾了好久终于搭建成功了第一个项目. 项目环境: Windows 7  家庭普通版  64位 Android studio 1.5.1 OpenCV-2.4.9-android-sdk 基于 ...

  7. Html编码(&#数字型)与解码小结 - 针对Puny Code(中文域名)的解码处理

    学习并了解到Html编码的知识,源于工作中的产品需求.如果一个URL里面包含Puny Code(不仅仅指中文,还可能是韩文等Unicode里非英文的国家文字,本文以含中文的URL为例),而且这个URL ...

  8. js关于cookie的各种方法

    //删除cookiedelCookie("GroupName");//s20是代表20秒//h是指小时,如12小时则是:h12//d是天数,30天则:d30setCookie(&q ...

  9. DIV命名规范

    DIV命名规范 企业DIV使用频率高的命名方法 网页内容类 --- 注释的写法: /* Footer */ 内容区/* End Footer */ 摘要: summary 箭头: arrow 商标:  ...

  10. Verilog八线 - 三线优先编码器设计(74LS148)

    百度百科_74LS148 if语句法 //8线-3线优先编码器设计(74LS148) // //EI | A7 A6 A5 A4 A3 A2 A1 A0 | Y2 Y1 Y0 GS EO //0 | ...