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的股票有哪些

  • 相关阅读:
    Redis "MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk"问题的解决
    素描
    python 标准库
    Python内置函数filter, map, reduce
    Python的lambda表达式
    python中super关键字的用法
    python一个注意的地方
    python中self,cls
    python中的实例方法、静态方法、类方法、类变量和实例变量
    python模块及包的导入
  • 原文地址:https://www.cnblogs.com/aaaajayheng1990/p/8873660.html
Copyright © 2011-2022 走看看