Function

function1.py

# Functions是可以重复使用的程序片段。通过调用Calling函数,就可以重复使用
# len range 都是内置函数
# 函数用来构建不同块 通过def来定义


def say_hello():   #这个函数没有参数
    #该块属于这一函数
    print('hello world')
#函数结束
print('Done')

say_hello()
say_hello()

function_param.py

#参数在定义函数的圆括号中指定 通过(,)进行分隔
#定义函数时给定的名称叫形参Parameters 
#调用函数时提供给函数的值叫实参Arguments


def print_max(a,b):   #a,b为形参
    if a > b:
        print(a, 'is maximum')
    elif a == b:
        print(a, 'is equal to', b)
    else:
        print(b, 'is maximum')

#直接传递字面值
print_max(3,4)  

#以参数形式传递
#x y为实参
x = 5
y = 7
print_max(x,y)

function_local.py

# 在函数内部声明变量时,它不会与函数外部的同名变量产生关系
# 它的作用域Scope仅在函数内部

x = 50
def func(x):
    print('global x is', x)
    x = 2
    print('change local x to', x)

func(x)
print('global x is still', x)

function_global.py

# 要想定义一个global变量必须要使用global关键字

x = 50
def func():
    global x #定义此处的x为global变量 global x,y,z
    
    print('global x is', x)
    x = 2
    print('change global x to', x)

func()
print('Now global x is', x)

function_default.py

# 为函数提供默认值
# 通过(=)来为参数指定默认参数值
# 默认参数值是不可变的,即字面值常量

def say(message='Hi',times=1):
    print(message * times)

say()
say('Hello\t')
say('Hello\t',5)

#只有位于参数列表末尾的参数才能被赋予参数值,即在参数列表中
#有默认参数值的参数不能在没有默认参数值的参数前面  因为值是按照参数位置依次分配的
#example:
#def func(a,b=5) right
#def func(a=5,b) wrong


#如果你定义的函数没有形参 但是你调用的时候传递了实参那也会报错

function_keyword.py

# 如果函数有很多参数,但你只希望对其中的一些进行指定,
# 那么可以通过命名而不是位置来指定参数


def func(a, b=5, c=10):
    print('a is', a, 'and b is', b, 'and c is', c)

func(3,7)
func(25,c=24)
func(c=50,a=100)
func(a=50)

#一定要指定a的值 不管是通过命名还是通过位置指定 否则会报错

function_varargs.py

# 定义的函数里的参数变量是可变的
# 通过(*)实现

# 声明一个诸如*param的星号参数时,从此处开始到结束的所有位置参数parameters
# 将被汇集成一个param的元组Tuple

# 声明一个诸如**param的双星号参数时,从此处开始到结束的所有关键字参数
# 都被汇集成一个param的字典Dictionary

def total(a=5, *numbers, **phonebook):
    print('a', a)
    
    #遍历元组中所有项目
    for single_item in numbers:
        print('single_item', single_item)
    
    #遍历字典中所有项目
    for first_part,second_part in phonebook.items():
        print(first_part,second_part)

total(10,15,21,aa=1,bb=2,cc=4)
print(total(10,15,21,aa=1,bb=2,cc=4))   #这里的None是怎么回事?
#下面已经解释了函数默认return的就是None 

***function_return.py

def maximum(x, y):
    if x > y:
        return x
    elif x == y:
        return 'The numbers are equal'
    else:
        return y

print(maximum(2,3))
print(maximum(2,2))
print(maximum(-5,-2))


# return 默认返回的值是None
# 每一个函数在其末尾隐含了一句 return None
# pass可以不使用return语句 它用于指示一个没有内容的语句块

function_docString.py

def print_max(x,y):
    # 下面是该函数的文档字符串DocString
    # 第一行以大写字母开头,以句号结束。阐述这个函数的作用。
    # 第二行是空行。
    # 第三行开始是详细的解释说明
    # 在文档中出现中文会报错 这一问题还没解决
    '''Prints the maximum of two number.
    
        The two values must be integers.'''
    
    x = int(x)
    y = int(y)
    
    if x > y:
        print(x, 'is maximum')
    else:
        print(y, 'is maximum')
        
print_max(3,5)
print(print_max.__doc__)
help(print_max)


# 函数的__doc__属性可以获取文档字符串内容。
# 因为Python所有的东西都是可以视作一个对象 

function_dir.py

# dir()函数能够返回由对象所定义的名称列表 
# 如果对象是一个模块 则会包含模块内的函数 类 变量
# dir()函数返回参数模块的名称列表
# 如果没有参数 则返回当前模块的名称列表


import sys
# 给出sys模块的属性名称
print(dir(sys))

# 给出当前模块的属性名称
print(dir())

a = 5
print(dir())

del a
print(dir())


# dir()能对任何对象工作   dir(str)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容