函数
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. 内存分配详解 malloc, new, HeapAlloc, VirtualAlloc,GlobalAlloc

    很多地方都会使用内存,内存使用过程中操作不当就容易崩溃,无法运行程序,上网Google学习一下,了解整理下他们之间的区别以及使用 ,获益匪浅 0x01 各自的定义和理解 (1)先看GlobalAllo ...

  2. deployment删除后,副本集未删除,解决之道

    在删除的body上加上,body.setPropagationPolicy("Foreground");就可以删除deployment的同时连同副本集一同删除.

  3. Windows和Linux执行Java代码的不同方式

    一.Windows 下编译并执行 Java 字节码文件(类文件) 1.编译 Hello.java 源码文件: java -d . Hello.java 2.执行 Hello.class 字节码文件: ...

  4. 【起航计划 011】2015 起航计划 Android APIDemo的魔鬼步伐 10 App->Activity->Reorder Activities 后退栈 Intent FLAG

    Reorder Activities 示例有四个相关的Activitives: ReorderOnLaunch, ReorderTwo,ReorderThree, ReorderFour.其中Reor ...

  5. Cocos2D-HTML5 Android项目编译

    首先要有 Eclipse 和 ADT.CDT.Android SDK.Android NDK.新建一个文件MoonWar_Apk.cmd,将以下代码拷贝其中,双击之即可. set EngineHome ...

  6. SPICE简史

    如今每一天都有不知其数的半导体芯片设计公司与设计验证工程师,在用着电路仿真软件SPICE.SPICE广泛应用在仿真模拟电路(例如运放Op Amp,能隙基准稳压电源Bandgap Reference,数 ...

  7. python实现各种排序

    1.冒泡排序: # -*- coding: utf-8 -*- def BubbleSort(a): n=len(a) for i in range(0,n-1): swapped=False for ...

  8. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  9. centos6.5_64bit-禅道安装及数据库操作

    linux一键安装包内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道. 从7.3版本开始,linux一键安装包分为32位和64位两个包,请大家根据操作系统的情况下载 ...

  10. K星异客

    http://baike.baidu.com/view/222058.htm 这部改编自基恩·布汝尔1995年出版的同名小说的电影在当年的十月档票房榜上称冠.本来这部电影的外星人主人公属意于威尔.史密 ...