zoukankan      html  css  js  c++  java
  • day007-python函数之课后作业讲解

    作业一:

    需求:写函数,计算传入字符串中的【数字】、【字母】、【空格】以及【其他】的个数
     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 #先定义一个函数
     5 def func(args):
     6     #定义一个计算数字的变量
     7     digit_num = 0
     8     # 定义一个计算字母的变量
     9     al_num = 0
    10     # 定义一个计算空格的变量
    11     spance_num = 0
    12     # 定义一个计算其他的变量
    13     other_num = 0
    14 
    15     for i in args:
    16         if i.isdigit():  #判断是否为数字
    17             digit_num += 1
    18         elif i.isalpha():   #判断是否为字母
    19             al_num += 1
    20         elif i.isspace():  #判断是否为空格
    21             spance_num += 1
    22         else:     #判断是否为其他
    23             other_num += 1
    24     return ("您输入的字符串中包含" + str(digit_num) + "个数字,包含" + str(al_num) + "个字母,包含" + str(spance_num) +"个空格,包含" + str(other_num) + "个其他字符。")
    25 #提示用户输入字符串信息
    26 enter = input("请您输入字符串信息进行计算:")
    27 ret = func(enter)
    28 print(ret)
    View Code

     

    作业二:

    需求:写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5.
     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 def obj_len(arg):
     5     #在这里先对用户输入的内容进行判断,是否为字符串、列表、元组
     6     if isinstance(arg, str) or isinstance(arg, list) or isinstance(arg, tuple):
     7         if len(arg) > 5:
     8             return"您输入的内容长度大于5."
     9         else:
    10             return"您输入的内容长度小于5."
    11     return"您输入的内容不符合要求。"
    12 
    13 enter = "kljdsah"   #输入字符串
    14 #enter = [11,22,33]  输入列表
    15 #enter = (897,658,9879)  输入元组
    16 #enter = 123   输入的数字,输出结果为您输入的内容不符合要求。
    17 ret = obj_len(enter)
    18 print(ret)
    View Code

     

    作业三:

    需求:写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否包含有空内容。
    1 def has_space(args):
    2     for i in args:
    3         if i.isspace():
    4             return "您输入的内容中包含有空格!"
    5             break
    6     return args
    7 result = str(input("请输入检查的内容:"))
    8 ret = has_space(result)
    9 print(ret)
    View Code

     

    作业四:

    需求:写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
    1 def function4(args):
    2     if len(args) > 2:
    3         return args[0:2]  #采用切片的方式给用户返回前两个长度的内容
    4     return args
    5 result = [11,22,33]
    6 ret = function4(result)
    7 print(ret)
    View Code

     

    函数参数传递引用特例一:在ptyhon中,对于列表、字典以及集合,在传递函数参数时,实际是传递一个引用
    1 def func1(args):
    2      args.append(123)
    3 
    4 li = [11,22]
    5 func1(li)
    6 print(li)  ==》结果为[11,22,123]
    7 #说明:在内存中,已存在li = args = [11,22],函数中,args.append(123)
    8 #所以最终的返回的结果为[11,22,123]
    View Code

     

    函数参数传递引用特例一:一旦遇到等于号,就会在内存中新创建并重新指向这个内容
    1 def func2(args):
    2      args = 123
    3 
    4 li = [11,22,33,44]
    5 func2(li)
    6 print(li)  #结果为[11,22,33,44],不会受到args的影响,因为args已重新指向新的内容
    View Code

     

    作业五:

    需求:写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
     1 def function5(args):
     2     ret = []  #定义一个新的列表
     3     for i in range(len(args)):
     4         if i % 2 == 1:
     5             ret.append(args[i])
     6         else:
     7             pass
     8     return ret
     9 
    10 li = [11,22,33,44,55]
    11 result = function5(li)
    12 print(result)
    View Code

     

    作业六:

      需求:写函数,检查传入字典的每一个value的长度,如果大于2, 那么仅保留前两个长度的内容,并将其作为新内容返回给调用者

      方式一:创建一个变量,把遍历符合条件的内容返回

     1 def function6(args):
     2     ret = {}
     3     for key, value in args.items():
     4         if len(value) > 2:
     5             ret[key] = value[0:2]
     6         else:
     7             ret[key] = value
     8     return ret
     9 
    10 dic = {"k1":"vdah", "k2": [11,22,33], "k3": "qw"}
    11 
    12 result = function6(dic)
    13 print(result)
    View Code

      方式二:在原来的字典中修改值,并返回给调用者

     1 def function(args):
     2     for key, value in args.items():
     3         if len(value) > 2:
     4             args[key] = value[0:2]
     5         else:
     6             args[key] = value
     7 
     8 dic = {"k1":"vdah", "k2": [11,22,33], "k3": "qw"}
     9 function(dic)
    10 print(dic)  #打印原来的字典
    View Code

     

  • 相关阅读:
    FTP上传下载使用ASCII与binary的区别
    was日志报检测到cpu饥饿
    AIX的inittab配置文件解释
    启动和停止 IBM HTTP Server
    阿里云 centos7 设置python2 与 python3 并存
    股票---逢9必涨!华为男卖4套房炒股,2019年不能错过?
    看了电影,万箭穿心
    今天是来cnblog的第一天,值得纪念哈^v^
    函数
    集合( set )
  • 原文地址:https://www.cnblogs.com/june-L/p/11553325.html
Copyright © 2011-2022 走看看