zoukankan      html  css  js  c++  java
  • 第三章 函数练习题

    1. 编码问题 

      1. 请说明python2 与python3中的默认编码是什么?
        python2 默认编码是ascii码  python3 默认编码是utf-8
         
      2. 为什么会出现中文乱码?你能列举出现乱码的情况有哪几种? 
      3. 如何进行编码转换?
        gbk>>> decode解码 >>>unicode
        unicode>>>encode编码>>>gbk
         
      4. #-*-coding:utf-8-*- 的作用是什么?

        文件头  申明编码
      5. 解释py2 bytes vs py3 bytes的区别

        1. 文件处理 

          1. r和rb的区别是什么?
            r是读取文件
            rb是二进制的形式读取文件
             
          2. 解释一下以下三个参数的分别作用
            f_name  文件名
            r 读取方式
            encoding  编码方式

        函数基础:

        1. 写函数,计算传入数字参数的和。(动态传参)
          # 写函数,计算传入数字参数的和。(动态传参)
          def func(x,7):
              return x+7
        2. 写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作
          # 写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作
          def func():
              name = input('要修改的文件名:')
              content = input('要修改的内容:')
              content1 = input('修改成:')
              new_name = name+'.new'
          
              import os
              f = open(name,'r')
              f_new = open(new_name,'w')
          
              for item in f:
                  if content in item:
                      new_item = item.replace(content,content1)
                  else:
                      new_item = item
                  f_new.write(new_item)
              f.close()
              f_new.close()
              os.rename(new_name,name)
          func()
          View Code
        3. 写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
          # 写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
          def func(*args):
              n = 0
              for i in args:
                  if i == ' ':
                      n += 1
              print('有%s个空'%n)
          
          func(*[1,2,' ',3,4])
          View Code
        4. 写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

          # 写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
          
          dic = {'k1':"v1v1",'k2':[11,22,33,44]}
          def func(dic):
              for item in dic:
                  if len(dic[item]) >2:
                      dic[item] = dic[item][:2]
              return dic
          
          f = func(dic)
          print(f)
          View Code
        5. 解释闭包的概念

          def func():
              n = 10
          
              def func1():
                  print('在fun1中打印n',n)
              return func1
          
          f = func()
          f()

        函数进阶:

        1. 写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组
          1. 例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃A’)]
            # 写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组
            # 例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃A’)]
            def  func():
                tu2 = ['J', 'Q', 'K', 'A']
                lis = []
            
                for i in range(2, 11):
                    lis.append(i)
            
                lis = lis + tu2
                data = ['红桃','黑桃','方块','梅花']
                lis1 = []
            
                for i in lis:
                    for item in data:
                        lis1.append((item,i))
            
                return  lis1
            
            print(func())
            View Code
        2. 写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}

           1 # 写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
           2 def min_max(*args):
           3     ole_max = args[0]
           4     old_min = args[0]
           5     for i in args:
           6         if i > ole_max:
           7             ole_max = i
           8         elif i < old_min:
           9             old_min = i
          10     return {'max':ole_max,'min':old_min}
          11 
          12 
          13 
          14 print(min_max(3,4,5,6,18,7,1,-9,2,9))
          View Code
        3. 写函数,专门计算图形的面积

          • 其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积
          • 调用函数area(‘圆形’,圆半径) 返回圆的面积
          • 调用函数area(‘正方形’,边长) 返回正方形的面积
          • 调用函数area(‘长方形’,长,宽) 返回长方形的面积
             1 # 写函数,专门计算图形的面积
             2 #
             3 # 其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积
             4 # 调用函数area(‘圆形’,圆半径) 返回圆的面积
             5 # 调用函数area(‘正方形’,边长) 返回正方形的面积
             6 # 调用函数area(‘长方形’,长,宽) 返回长方形的面积
             7 def area():
             8     def circle(r):
             9         print(3.14*r**2)
            10     def square(s):
            11         print(s*s)
            12     def rectangle(x,y):
            13         print(x*y)
            14 
            15 
            16     name = input('name:')
            17     if name == '圆形':
            18         r = int(input('r:'))
            19         circle(r)
            20     if name == '正方形':
            21         s = int(input('s:'))
            22         square(s)
            23     if name == '长方形':
            24         x = int(input('x:'))
            25         y = int(input('y:'))
            26         rectangle(x,y)
            27 area()
            View Code
        4. 写函数,传入一个参数n,返回n的阶乘

          # 写函数,传入一个参数n,返回n的阶乘
          def  cal(n):
              res = 1
              for i in range(n,0,-1):
                  res = res*i
              return res
          print(cal(6))
        5. 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码

           1 # 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码
           2 #
           3 verify  = False
           4 
           5 
           6 def loging(choice):
           7     def iner():
           8         global verify
           9         if verify == False:
          10             name = input('name:')
          11             password = input('password')
          12 
          13             f = open('data','r')
          14             da = eval(f.read())
          15             if name in da:
          16                 if password == da[name]:
          17                     verify = True
          18 
          19         if verify == True:
          20             choice()
          21     return iner
          22 @loging
          23 def func():
          24     print('---func---')
          25 @loging
          26 def func1():
          27     print('----func1----')
          28 @loging
          29 def func2():
          30     print('-----func2----')
          31 
          32 
          33 
          34 
          35 func()
          36 func2()
          View Code

        生成器和迭代器

        1. 生成器和迭代器的区别?
        2. 生成器有几种方式获取value?
        3. 通过生成器写一个日志调用方法, 支持以下功能

          • 根据指令向屏幕输出日志
          • 根据指令向文件输出日志
          • 根据指令同时向文件&屏幕输出日志
          • 以上日志格式如下

          • 代码结构如下

        内置函数

        1. 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb

        2. 用filter函数处理数字列表,将列表中所有的偶数筛选出来

        3. 如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格

          计算购买每支股票的总价

          用filter过滤出,单价大于100的股票有哪些

  • 相关阅读:
    MVC ORM 架构
    Kubernetes 第八章 Pod 控制器
    Kubernetes 第七章 Configure Liveness and Readiness Probes
    Kubernetes 第六章 pod 资源对象
    Kubernetes 第五章 YAML
    Kubernetes 核心组件
    Kubernetes 架构原理
    Kubernetes 第四章 kubectl
    Kubernetes 第三章 kubeadm
    yum 配置及yum 源配置
  • 原文地址:https://www.cnblogs.com/aaaajayheng1990/p/8873660.html
Copyright © 2011-2022 走看看