欢迎光临
我们一直在努力

Python函数

一、函数

(函数是以字母、数字和下划线组成的字符串,但是不能以数字开头)

   函数是一段可以重复使用的代码,通过传递的参数返回不同的结果。例如:

语法:

        def 函数名称():

                代码块

                Return [代表式]

def hello():

print ('你好')

print ('今天过的开心吗?')

hello()

hello()

hello()

hello()

hello()

1.无参函数

语法:[变量]=函数名称()

示例1:使用无参函数实现两数相加并输出二者之和。

代码如下:

vim def1.py

def add():

op1=10

op2=20

rt=op1+op2

print (op1,'+',op2,'=',rt)

return

add()

把上面的代码进行修改,用return返回结果值:

def add():

op1=10

op2=20

rt=op1+op2

return rt

i = add()

print ('结果是:',i)

示例2:输出九九乘法表

代码如下:

vim def2.py

def nine():

op1 = (1,2,3,4,5,6,7,8,9)

op2 = (1,2,3,4,5,6,7,8,9)

for i in op1:

for j in op2:

if j<=i:

print (j,'*',i,'=',j*i,end=' ')

print('')

return

nine()

使用函数时经常会犯一些错误,总结如下:

  • 函数的定义要先于函数的调用,否则会出错。
  • 数体的代码是一个整体,要注意缩进。
  • 定义函数时要使用冒号,但调用时不可以使用冒号。
  • 示例3:定义并调用函数,实现用户登录功能:

    vim def3.py

    user={}

    def newuser():

    prompt1 = 'login desired: '

    while True:

    name = input(prompt1)

    if name in user:

    prompt1 ='name taken,try another: '

    continue

    else:

    break

    pwd = input('password:' )

    user[name] = pwd

    def olduser():

    name = input('login' )

    pwd = input('password:' )

    password = user.get(name)

    if password == pwd:

    print ('welcome back',name)

    else:

    print ('login incorrect')

    def showmenu():

    prompt = '''

    (N)ew User Login

    (E)ntering User Login

    (Q)uit

    Enter choice:'''

    while True:

    choice = input(prompt).strip()[0].lower()

    print ('\\nYou picked : [%s]' % choice)

    if choice not in 'neq':

    print ('invalid option.try again')

    else:

    if choice=='n':

    newuser()

    elif choice=='e':

    olduser()

    else:

    print ('quit')

    break

    if __name__=='__main__':

    showmenu()

    2.带参函数

    语法:

            def 函数名称 (形式参数列表):

                      代码块

                      return [表达式]

    带参函数的调用语法:

              [变量] = 函数名称(实际参数列表)

    示例4:定义并调用带参函数完成两数相加的运算:(也叫位置参数)

    vim def4.py

    def add(x,y):

    return x+y

    print (add(1,2))

    示例5:使用位置参数方式或关键字参数方式调用带参函数:

    vim def4.py

    def aa(x,y):

    print (x,y)

    aa(10,6)

    aa(6,10)

    vim def4.py

    def aa(x,y):

    print (x,y)

    aa(x=10,y=6)

    aa(y=6,x=10)

    示例6:编码实现计算器功能:

    vim def5.py

    def operator(op1,op2,opFu):

    if opFu not in '+-*/':

    return -1

    if opFu == '+':

    result = op1+op2

    elif opFu == '-':

    result = op1-op2

    elif opFu == '*':

    result = op1*op2

    elif opFu == '/':

    if op2 == 0:

    print ('错误,除数不能为 0! /n')

    result = None

    else:

    result = op1 / op2

    return result

    def convert(op):

    flag = True

    for ch in op:

    if ch not in '1234567890':

    flag = False

    break

    if flag == True:

    return int(op)

    else:

    return None

    if __name__ == '__main__':

    str1 = '请输入第 1 个数:\\n'

    strFu = '请输入一个算术运算符:\\n'

    str2 = '请输入第 2 个数:\\n'

    while True:

    print ('需要退出程序,请输入字母 q')

    opp1 = input(str1)

    ch = opp1.strip()[0].lower()

    if ch =='q':

    break

    op1 = convert(opp1)

    if op1 == None:

    print ('输入错误,请输入整数!/n')

    continue

    while True:

    opFu= input(strFu)

    if opFu in '+-*/':

    break

    else:

    print ('运算符输入错误')

    continue

    while True:

    op2 = convert(input(str2))

    if op2 == None:

    print ("输入错误,请输入整数!\\n")

    continue

    else:

    break

    result = operator(op1,op2,opFu)

    if result != None:

    print ("计算%d %s %d = %d\\n" %(op1,opFu,op2,result) )

    print ('程序退出了')

    二、变量作用域

             作用域是指变量在程序中的应用范围,而变量声明的位置决定它的作用域。Python按作用域区分有局部变量和全局变量。

            (在同一个程序中,全局变量和局部变量同名时,局部变量具有更高的优先级。)

            全局变量:是指在一个模块中最高级别的变量有全局作用域,除非被删除,否则存货到程序运行结束,所有函数都能访问全局变量。

            局部变量:是指定义在函数内的变量有局部作用域,依赖于定义变量的函数现阶段是否处于活动状态。调用函数时,局部变量产生,暂时存在。一旦函数执行完,局部变量将会被释放

    示例7:使用函数实现年龄的输出:

    vim def6.py

    def addAge(age):

    age +=1

    print ('addAge(): _age=%d age=%d' %(_age,age))

    return age

    _age = int(input('输入年龄: \\n'))

    rt = addAge(_age)

    print ('main(): _age =%d ' %_age)

    print ('main(): rt=%d' %rt)

    三、lambda函数

    Lambda函数的作用时创建匿名函数,是一种声明函数的特殊方式。

    语法:

             lambda params:expr

    示例7:编写一个普通函数和一个lambda函数:

    vim def7.py

    def sum1(x,y):

    return x+y

    sum2 = lambda x,y : x+y

    print (sum1(3,4))

    print (sum2(3,4))

    四、内建函数

            内建函数是自动加载的,Python的解释器可以识别。它不需要导入模块,不必做任何的操作,不需要引用就可以调用。

    1.abs() 函数

      abs()函数能够返回一个数字的绝对值,即正数。

    语法:abs(x)

    2.bool()函数

     bool()函数返回值是True或False,它是Boolean(布尔值)的简写。

    语法: bool( [ x ] )

    3.float()函数

     float()函数用于转换数据为float类型。

    语法:float([ x ])

    4.int() 

    (注意:不能为字符串)

    Int()函数可以将数据转换为整数。

    语法: int([ x [,base]])

    5.range()

    range()函数可以生成一个迭代对象。

    语法:range([start],stop[,step])

    (1)第一个参数 start 表示起始值,是可选参数,默认值是 0。

    (2)第二个参数 stop 表示终止值。

    (3)第三个参数表示步长,是可选参数,可以是正数或负数,默认值是 1。

    6.sum()函数

    sum()函数可以对列表中元素求和。

    语法:sum(x[,start])

    7.max()函数

      max()函数可以返回列表、元组或字符串中最大的元素。

    语法:max(x)

    8.min()函数

    min()函数返回列表、元组、或字符串中最小的元组。

    语法:min(x)

    9.dir()函数

    dir()函数是可以返回关于任何值的相关信息,它可以用于任何对象,包括字符串、数字、函数、模块、对象和类。当想要快速查找帮助信息时非常有用。

    语法:dir([ object ])

    10.eval()函数

    eval()函数可以计算表达式的值。

    语法:eval(expression [,globals [,locals]])

    11.len()函数

     len()函数可以返回一个对象的长度。

    语法:len(s)

    赞(0)
    未经允许不得转载:171主机测评 » Python函数
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址