zoukankan      html  css  js  c++  java
  • emmm......就当练习了系列11

    要求:下述所有代码画图以及分析代码执行流程
    1、以定义阶段为准,先画出名称空间的嵌套关系图

     

    2、然后找到调用函数的位置,写出函数调用时代码的执行过程,涉及到名字的查找时,参照1中画好的嵌套图,标明查找顺序,一层一层直到找到位置


    # ===================题目一===================
    input=333
    def func():
      input=444
    func()
    print(input)

     

    # ===================题目二===================
    def func():
      print(x)
    x=111

    func()

     


    # ===================题目三===================
    x=1
    def func():
      print(x)


    def foo():
      x=222
      func()

    foo()

     

    # ===================题目四===================
    input=111
    def f1():
      def f2():
        # input=333
        print(input)
      input=222

      f2()

    f1()

     

    # ===================题目五===================
    x=111
    def func():
    print(x) #
    x=222

    func()

     


    # ===================题目六===================
    x=111

    def foo():
      print(x,)

    def bar():
      print(x)

    foo()
    bar()

     

    # ===================题目七===================
    x=1
    def func2():
      func1()

    x=2
    def func1():
      print(x)

    x=3

    func2()

    分析思路:func2()调用函数,随后执行调用func1(),然后在局部查找x的局部名称空间,没找到,那么就需要去全局作用域查找,全局作用域有三个赋值,按照顺序逐一覆盖,最后取到x=3,输出结果为3

     

    # ===================题目八===================
    1、如下全局变量记录了当前登录用户,编写登录功能,一旦用户登录成功,则将全局变量赋值为当前登录的用户名
    login_user=None

    login_user = None
    def login():
    inp_user = input('用户名:').strip()
    inp_pwd = input('密码:').strip()
    if inp_user == 'lucky' and inp_pwd == '233':
    print("登录成功")
    global login_user
    login_user = inp_user
    else:
    print("登录失败")
    login()
    print(login_user)


    2、针对之前编写的查询余额的功能,添加额外的逻辑:如果用户没有登录,则先执行登录功能

     

    login_user = None


    def login():
    inp_user = input('请输入您的用户名:').strip()
    inp_pwd = input('请输入您的密码:').strip()
    if inp_user == 'lucky' and inp_pwd == '233':
    print("登录成功!")
    global login_user
    login_user = inp_user
    else:
    print("登录失败!")


    def balance(login_user):
    if login_user is None:
    print("请先登录哦~")
    login()
    else:
    return True


    while True:
    msg = balance(login_user)
    if msg:
    print("{}的余额是:{}".format(login_user, 88888888))
    break

     

     

  • 相关阅读:
    RH133读书 笔记(3)
    RH033读书笔记(16)-Lab 17 Installation and Administration Tools
    RH033读书笔记(15)-Lab 16 The Linux Filesystem
    RH033读书笔记(14)-Lab 15 Switching Users and Setting a Umask
    RH033读书笔记(13)-Lab 14 Network Clients
    RH033读书笔记(12)-Lab 13 Finding and Processing Files
    RH033读书笔记(11)-Lab 12 Configuring the bash Shell
    RH033读书笔记(10)-Lab 11 Process Control
    RH033读书笔记(9)-Lab 10 Understanding the Configuration Tools
    RH033读书笔记(8)-Lab 9 Using vim
  • 原文地址:https://www.cnblogs.com/lucky-cat233/p/12526698.html
Copyright © 2011-2022 走看看