博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记(十)
阅读量:3937 次
发布时间:2019-05-23

本文共 3874 字,大约阅读时间需要 12 分钟。

tip:可以先学数据结构和算法

返回值     将函数中运算的结果通过return关键字“扔”出来 

没有返回值的情况:

def func():    print('---')x=func()print(x)'''---None'''
def add(a,b):    result = a+b    #print(result)    return result#print(result)  NameError: name 'result' is not defined

函数体中的print仅限于在控制台上出现,告诉你一下,但不能把结果拿出来

扔到哪去了?  用变量去接return的返回值

def add(a,b):    result = a+b    print(result)    return 'aaa',100x = add(2,6)print(x)x,y = add(2,6)print(x,y)'''8('aaa', 100)aaa 100'''

return返回值

1.return后面可以是一个参数,接收的时候x=add(1,2)

2.return后面也可以是多个参数,会将多个参数先放在一个元组中,将元组作为整体返回

3.接收的时候也可以是多个,return 'hello','world'    x,y=('hello','world')  --->x='hello'  y='world'

4.没有返回值,接收到的是None

函数嵌套调用    嵌套函数扔出来即闭包   闭包传函数作参数即为装饰器

def a():    print('aaa')def b():    #调用函数a    a()    print('bbb')#调用bb()'''aaabbb'''

报错,用global解决,局部变量变为全局变量

局部变量:函数内部声明的变量。仅限于在该函数体里内部使用,出了函数体就不能用了

全局变量:函数外部声明的变量。所有函数都可以访问

全局变量是可变的,不需要加global声明,直接对其操作。

name='月月'def func():    s='abcd'    s+='X'    print(s,name)#print(s) NameError: name 's' is not defineddef func1():    #print(s)   访问不到其他函数内部的值    print(name)   #name+='会玩吉他'  函数内部的变量可以随便修改赋值,全局变量不能在函数体中修改def func2():    name='小月月' #局部变量与全局变量同名,优先用内部变量    print(name)func2()func1()'''小月月月月'''
name='月月'def func():    print(name)def func1():    global name  # 不修改全局变量,只是获取打印,不用声明。要修改全局变量则要申明    print(name)    name+='会玩吉他'    print('修改后的name',name)func1()func()  #全局的name已经被func1改了'''小月月月月修改后的name 月月会玩吉他月月会玩吉他'''

如果全局变量是可变的,则在函数体中修改的时候不需要加global

name='月月'list1 = [1,3,5,6]def func():    name='蕊蕊'    print(name)    print(list1)def func1():    global name    print(name)    name += '真漂亮'    #修改列表    list1.append(8)    print(list1)func1()func()'''月月[1, 3, 5, 6, 8]蕊蕊[1, 3, 5, 6, 8]'''
name='月月'def func():    name='蕊蕊'    print(name) #函数体自己的name    global  name    print(name)func()#不用在自己的局部里起一个和全局一样的名,局部变量name改成name1问题解决'''SyntaxError: name 'name' is used prior to global declaration'''

函数嵌套使用练习:

'''商品加入购物车判断用户是否登录,如果登录,成功加入购物车,否则提示登录之后添加成功True  失败False结构:def add_shoppingcart(goods):    passdef login(username,password):    pass自己写的def login(username,password):    if username=='admin' and password=='123':        print('登录成功!')        return True    else:        print('登录失败!')        return Falsedef add_shoppingcart(goods):    if islogin==True:        print(goods,'添加购物车成功')    else:        print('请登录')islogin=False #用于判断用户是否登录变量,默认未登录# uname=input('用户名')pwd=input('密码')islogin=login(uname,pwd)commodit=input('添加商品')add_shoppingcart(commodit)'''#老师写的def add_shoppingcart(goods):    global islogin    if islogin:        if goods:            print(goods, '添加购物车成功')        else:            print('没有添加商品')    else:        print('请登录')        answer = input('是否登录用户?yes/no')        if answer=='yes':            uname = input('用户名')            pwd = input('密码')            islogin=login(uname,pwd)  #函数体里尝试把外部变量改变            #在一个函数中可以调用令一个函数            print(islogin)        else:            print('未登录,不能添加商品')def login(username,password):    if username=='admin' and password=='123':        #print('登录成功!')  没有意义,改变不了登录状态        return True    else:        #print('登录失败!')        return Falseislogin=False #用于判断用户是否登录变量,默认未登录uname=input('用户名')pwd=input('密码')islogin=login(uname,pwd)commodit=input('添加商品')add_shoppingcart(commodit)
'''用户登录输入用户名输入密码输入验证码--->封装成一个函数'''import randomdef generate_checkcode(n):    s='1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'    code=''    for i in range(n):        ran = random.randint(0,len(s))        code+=s[ran]    return codedef login():    usrname = input('输入用户名')    password = input('输入密码')    #得到一个验证码    code = generate_checkcode(4) #函数间的调用    print('验证码是:',code)    code1 = input('请输入验证码')    if code.lower()==code1.lower():        #print('验证码正确')        if usrname=='admin' and password=='123':            print('登录成功')        else:            print('用户名或密码有误')    else:        print('验证码输入有误')#调用函数login()'''输入用户名1输入密码1验证码是: mN0R请输入验证码mn0r用户名或密码有误'''

 

 

 

 

 

 

 

 

 

 

 

 

转载地址:http://pzegn.baihongyu.com/

你可能感兴趣的文章
研发主管的烦恼:周一早晨延迟的项目会议
查看>>
研发主管的烦恼:难以执行的绩效考核
查看>>
精益Scrum(五)
查看>>
精益Scrum(六)
查看>>
精益Scrum(七)
查看>>
软件测试管理—如何写好软件测试计划书
查看>>
解读一名软件测试经理所需要具备的能力
查看>>
有效的软件测试度量
查看>>
软件评测和测试国家现行标准
查看>>
理解测试策略
查看>>
机器学习界大牛林达华推荐的书籍
查看>>
path变量备份
查看>>
Lesson2.2 & 2.3 Maya command reference & quick help
查看>>
lesson 2.4 - Converting MEL Commands to Python
查看>>
Lesson3.2 variables
查看>>
3.4.2 - Operators & 3.4.3 division and truncation
查看>>
3.6 - Maya Commands: setAttr
查看>>
3.7.1 - Strings
查看>>
3.7.4 - Indexing and Slicing Strings
查看>>
3.7.5 - Modifying Strings
查看>>