zoukankan      html  css  js  c++  java
  • 铁乐学python_day09_作业

    练习题

    1、整理函数相关知识点,写博客
    2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,
    并将其作为新列表返回给调用者。
    def odd_index(l):
        lis = []
        for i in range(len(l)):
            # 通过range设定索引范围比通过元素找索引要好,因为相同元素返回的索引值会有误
            if i % 2 != 0:
                lis.append(l[i])
        return lis
    
    # 验证odd_index函数的使用正常不:
    li = [ i for i in range(20)]
    print(li)
    print(odd_index(li))
    tuple1 = ('a', 'b', 'c', 'b', 'c', 'd', 'e', 'f', 'g')
    print(odd_index(tuple1))
    
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
    ['b', 'b', 'd', 'f']
    
    # 利用切片会更简单
    # def odd_index(argv):
    #     return argv[1::2]
    
    
    3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    def len_5(l):
        return len(l) > 5
    
    4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,
    并将新内容返回给调用者。
    def len_2(l):
        if len(l) > 2:
            # 满足条件才返回内容,不满足的话就什么也不做,也就是None
            return l[:2]
    
    lis = [1, 2]
    print(len_2(lis))
    lis2 = [1, 2, 3, 4]
    print(len_2(lis2))
    
    None
    [1, 2]
    
    5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
    def count_n(s):
        num = 0
        alpha = 0
        blank = 0
        other = 0
        for i in s:
            if i.isdigit():
                num += 1
            elif i.isalpha():
                alpha += 1
            elif i == ' ':
                blank += 1
            else:
                other += 1
        result = '共有数字{}个,字母{}个,空格{}个,其他{}个'.format(num,alpha,blank,other)
        return(result)
    
    # 验证
    print(count_n('uy143 oifg87 90/+    '))
    
    共有数字7个,字母6个,空格6个,其他2个
    
    6、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容2,并返回结果。
    def blank_ex(l):
        li = []
        for i in l:
            if ' ' in str(i):
                li.append(i)
        return li
    
    #验证
    
    s = 'yiu dgh'
    li1 = [' 34s', 45, 'et']
    tuple1 = ( 'r t', 78, [ ])
    print(blank_ex(s))
    print(blank_ex(li1))
    print(blank_ex(tuple1))
    
    7、写函数,检查传入字典的每一个value的长度,如果大于2,
    那么仅保留前两个长度的内容,并将新内容返回给调用者。
    	dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    	PS:字典中的value只能是字符串或列表
    def dic_ex(d):
        for i in d:
            # 通过键来找到相应的值,可以直接重新赋值
            if len(d[i]) > 2:
                d[i] = d[i][:2]
        return d
    
    # 验证
    dic = {"k1": "v1v1", "k2": [11,22,33,44],}
    
    print(dic_ex(dic))
    
    {'k1': 'v1', 'k2': [11, 22]}
    
    
    8、写函数,接收两个数字参数,返回比较大的那个数字。
    def max_min(a, b):
        return a if a > b else b
    
    9、写函数,用户传入修改的文件名,与要修改的内容,
    执行函数,完成整个文件的批量修改操作(进阶)。
    
    10、写一个函数完成三次登陆功能,再写一个函数完成注册功能(进阶)
    # 定义注册函数
    def register(*args, **kwargs):
        while True:
            username = input('请输入用户名(Q/q返回首页):').strip()
            if username.upper() == 'Q':
                # 退出函数
                return
            with open('reg.txt', encoding='utf-8') as f1:
                for i in f1:
                    user = i.strip().split()
                    if username == user[0] or username == '':
                        print('己存在用户名,请重新注册:')
                        break
                # 在for循环读取完整个文件判断没有同名用户后才进行追加写入的操作
                else:
                    password = input('请输入密码:').strip()
                    # 扩展了一个密码不能为空和小于6位数的功能
                    if password =='' or len(password) < 6:
                        print('密码不能为空或小于6位,请重新注册。')
                        continue
                    with open('reg.txt', encoding='utf-8', mode='a') as f2:
                        f2.write('
    {}	{}'.format(username, password))
                        print('注册成功')
                        return
    
    # 定义一个登录函数
    def login(*args, **kwargs):
        count = 3
        while count != 0:
            username = input('请输入你的用户名:').strip()
            password = input('请输入你的密码:').strip()
            with open('reg.txt', encoding='utf-8') as f3:
                for i in f3:
                    user = i.strip().split()
                    if username == user[0] and password == user[1]:
                        print('登录成功')
                        # 登录成功退出登录函数
                        return
                else:
                    count -= 1
                    print('你的用户名或密码输入错误,请重新输入。你还有%d次机会。' % count)
        print('你的三次输入机会己用尽,请稍后再试。')
    
    
    明日默写。
    ①,return的作用。
    ②,传参的几种方法,每个都简单写一个代码。
    如,实参,按位置传参。
    def func(x,y):
    Pass
    func(‘a’,’b’)
    
  • 相关阅读:
    第一条博客
    (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义01--对象的含义01--属性和字段
    (原创)c#学习笔记06--函数06--委托
    (原创)c#学习笔记06--函数05--函数的重载
    (原创)c#学习笔记06--函数04--结构函数
    (原创)c#学习笔记06--函数03--main函数
    (原创)c#学习笔记06--函数02--变量的作用域02--参数和返回值与全局数据
    (原创)c#学习笔记06--函数02--变量的作用域01--其他结构中变量的作用域
    (原创)c#学习笔记06--函数01--定义和使用函数02--参数
    (原创)c#学习笔记06--函数01--定义和使用函数01--返回值
  • 原文地址:https://www.cnblogs.com/tielemao/p/8698553.html
Copyright © 2011-2022 走看看