前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python练习题-day9

python练习题-day9

作者头像
郭耀华
发布2019-10-23 14:33:19
5900
发布2019-10-23 14:33:19
举报
文章被收录于专栏:郭耀华‘s Blog郭耀华‘s Blog

2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

代码语言:javascript
复制
def dan_index(itter):
    li=[]
    for i in range(len(itter)):
        if i%2==1:
            li.append(itter[i])
    return li

3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

代码语言:javascript
复制
def len_itter(itt):
    count=0
    for i in itt:
        count+=1
    if count>5:
        return "{}长度大于5".format(itt)
    else:
        return "%s 长度小于5"%itt
print(len_itter([3489,34,"hello","myfu","good",78]))

4、写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。

代码语言:javascript
复制
def it_len(itt):
    if len(itt)>2:
        return itt[:2]

5、写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。

代码语言:javascript
复制
def str_count(st):
    s=0
    b=0
    n=0
    for i in st:
        if i.isdigit():
            n+=1
        if i.isalpha():
            s+=1
        if i.isspace():
            b+=1
    return "%s有%s个数字%s字母%s空格"%(st,n,s,b)

6、写函数,接收两个数字参数,返回比较大的那个数字。

代码语言:javascript
复制
def num_cam(a,b):
    if a>b:
        return a
    else:
        return b

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

dic = {"k1": "v1v1", "k2": [11,22,33,44]}

PS:字典中的value只能是字符串或列表

代码语言:javascript
复制
def dic_filter(dic):
    for i,j in dic.items():
        if len(j)>2:
            j=j[:2]
            dic.update({i:j})
    return dic
print(dic_filter( {"k1": "v1v1", "k2": [11,22,33,44]}))

8、写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

代码语言:javascript
复制
#方法一
def list_trans(li):
    dic={}
    for i,j in enumerate(li):
        dic.setdefault(i,j)
    return dic
print(list_trans([11,22,33]))
#方法二
def list_trans(li):
    dic={}
    for i in range(len(li)):
        dic.setdefault(i,li[i])
    return dic
print(list_trans([11,22,33]))

9、写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

代码语言:javascript
复制
def stu_add(name,gender,age,education):
    with open("stu_info.txt","r+",encoding="utf-8") as f2:
        data=f2.readline()
        f2.write("\n%s  %s  %s  %s"%(name,gender,age,education))

10、对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

代码语言:javascript
复制
def stu_add():
    with open ("stu_info.txt","r+",encoding="utf-8") as f1:
        while True:
            stu_add=input("请输入用户信息(以空格隔开q或Q退出):").strip()
            if len(stu_add.split())==3:
                name,age,education=stu_add.split()
                f1.read()
                f1.write("\n%s  male  %s  %s"%(name,age,education))
                continue
            if len(stu_add.split())==4:
                name,gender,age,education=stu_add.split()
                f1.read()
                f1.write("\n%s  %s  %s  %s"%(name,gender,age,education))
                continue
            if stu_add.upper()=="Q":
                exit("谢谢使用,正在退出")

11、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。

代码语言:javascript
复制
def file_modify(filename,contant):
    import os
    contant_new = input("请输入修改后的内容:")
    with open(filename,encoding="utf-8")as f1,open("filename_new","w",encoding="utf-8") as f2:
        for i in f1:
            new_i=i.replace(contant,contant_new)
            f2.write(new_i)
    os.remove(filename)
    os.rename("filename_new",filename)

12、写一个函数完成三次登陆功能,再写一个函数完成注册功能(升级题)

代码语言:javascript
复制
def user_register():
    while True:
        uname=input("请输入注册名:")
        pwd=input("请输入注册密码:")
        pwd_2=input("请确认密码:")
        li=[]
        with open("info_database","r+",encoding="utf-8") as f1:
            data=f1.read()
            data_dic=eval(data)
            for i in data_dic.keys():
                li.append(i)
            if uname in li:
                print("用户名已存在,请重新输入")
                continue
            if pwd==pwd_2:
                print("注册成功")
                data_dic.setdefault(uname,pwd)
                f1.seek(0)
                f1.write(str(data_dic))
                break
            else:
                print("密码不一致请重新输入")
                continue
def login():
    count=0
    while count<3:
        username=input("请输入用户名:").strip()
        password=input("请输入密码:").strip()
        with open("info_database",encoding="utf-8")as f2:
            data=f2.read()
            dic_data=eval(data)
            for i in dic_data.keys():
                if username==i and password==dic_data[i]:
                    print("登录成功")
                    exit()
                else:
                    print("用户名或密码有误还有%s次机会"%(2-count))
                    count+=1
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-01-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档