函数
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. 【转载】了解CSS/CSS3原生变量var

    文章转载自:鑫空间鑫生活(https://www.zhangxinxu.com/) 原文链接:http://www.zhangxinxu.com/wordpress/?p=5804 内容摘要: 在任何 ...

  2. springboot从入门到精通(一)

    springboot到底有什么好处?有什么优势?这个先不用看,我们只要知道它有很多优势,现在要做的事只有一件,那就是撸代码!撸完就知道有多少料! 首先,在案例中,我们会构建一个英雄列表应用.操作如下: ...

  3. Vue.js - Day1

    什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于We ...

  4. BZOJ3261: 最大异或和(可持久化trie树)

    题意 题目链接 Sol 设\(sum[i]\)表示\(1 - i\)的异或和 首先把每个询问的\(x \oplus sum[n]\)就变成了询问前缀最大值 可持久化Trie树维护前缀xor,建树的时候 ...

  5. StackTrack for debug

    System.Diagnostics.Debug.WriteLine("Serial port. {0},{1}", this.GetType().FullName, new Sy ...

  6. (C# 基础) 接口

    接口是表示一组函数成员,而不实现成员的引用类型.类和结构可以实现接口. 例如BCL声明了一个叫做IComparable的接口,包含了一个CompareTo方法, 但没有实现其方法,用“:”结尾. pu ...

  7. DirectX HLSL 内置函数

    Intrinsic Functions (DirectX HLSL) The following table lists the intrinsic functions available in HL ...

  8. Android自定义控件练手——波浪效果

    这一次要绘制出波浪效果,也是小白的我第一次还望轻喷.首先当然是展示效果图啦: 一.首先来说说实现思路. 想到波浪效果,当然我第一反应是用正余弦波来设计啦(也能通过贝塞尔曲线,这里我不提及这个方法但是在 ...

  9. 使用COCOStudio中各种资源

    UI Editor: 先把项目导出的json和资源文件放到TestGame项目的Resource目录中 1. 在HelloWorldScene.cpp顶部添加引用#include "coco ...

  10. ios两个app之间跳转,传值的实现

    两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的. 1.首先设置第一个APP的url地址 2.接着设置第二个AP ...