• 我的python菜鸟之路12


    --------------------------函数相关练习题及知识点补充---------------------------

    • 加密练习题

      #注册时输入n(不区分大小写)即可完成注册
      def funs(a):
          import hashlib
          obj = hashlib.md5('hjafsdkada'.encode('utf-8'))
          obj.update(a.encode('utf-8'))
          result = obj.hexdigest()
          return(result)
      user_list = []
      def register():
      
          print('*******用户注册*********')
          while True:
              user = input('请输入注册用户名:')
              if user.lower() == 'n':
                  return
              pwd =input('请输入注册密码:')
              if pwd.lower()=="n":
                  return
              temp = {'username':user,'password':funs(pwd)}
              user_list.append(temp)
      
      def login():
          print("*******用户登录*********")
          login_name =input('输入登录用户名:')
          login_pwd =input('输入登录密码:')
          for item in user_list:
              if login_name == item['username'] and funs(login_pwd) == item['password']:
                  return True
      register()
      
      result=login()
      if result:
          print('登录成功')
      else:
          print('登录失败')
      
      
    • 不显示密码登录

      import getpass
      pwd = getpass.getpass('请输入密码')
      print(pwd) 
      
    • 函数闭包

      #练习1
      funs_list = []
      for i in range(10):
          funs_list.append(lambda x:x+i)
      #此时因为函数并未执行,所以在列表中的是九个纯函数,但此时i的值为9
      for j in range(0,len(funs_list)):
          result = funs_list[j](j)
          print(result)
      #输出结果为:9 10 11 12...........
      
      #练习2
      funs_list = []
      for i in range(10):
          funs_list.append(lambda x:x+i)
          #此时i的值为9
      for i in range(0,len(funs_list)):#此时for循环时使i从0开始,便修改了原来为9的i
          result = funs_list[i](i)
          print(result)
      #输出结果为:0 2 4 6 8 12...........
      
      #练习3
      def f1():
          print('f1')
          return f3() #此处先把f3函数执行后,再返回f3函数的返回值即None
      def f2():
          print('f2')
          return f1
      def f3():
          print('f3')
      func = f2()
      result = func()
      print(result
      
    • 函数注意事项

      def func():
          print('dvge')
      v1 = func() #此处会执行print,v1是接受返回值并执行函数不要弄混了
      print(v1)
      
    • 函数的嵌套

      def func(name):
          v = lambda x:x + name # 注意:此处为函数嵌套函数
          return v 
      v1 = func("杨子列")
      v2 = func("扬子鳄")
      v3 = v1('金角')
      v4 = v2 ('银角')
      print(v1,v2,v3,v4)
      
  • 相关阅读:
    我把 Spring Boot Banner 换成了美女背景后……
    玩大发了,Tomcat 8.5 升级有坑…
    10 分钟快速上手 Shiro 新手教程
    为什么 HashMap 的加载因子是0.75?
    图解 Spring 循环依赖,写得太好了!
    单点登录的实现原理是什么?怎么实现?
    Maven三种仓库详解
    为什么 wait,notify,notifyAll 在 Object 类定义而不是 Thread 类?
    我们公司用了6 年的分布式锁,很是厉害!
    Google 开源的依赖注入库,比 Spring 更小更快!
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/13232862.html
Copyright © 2020-2023  润新知