zoukankan      html  css  js  c++  java
  • python基础作业第九天

    1,整理函数相关知识点,写博客。

    函数:

    • 函数是组织好的,可以被重复使用的,实现单一或者相关联功能的代码块.
    • 函数能提高应用的模块性,和代码的重复利用率.python提供了很多内置函数,但你也可以自己创建函数,这被叫在用户自定义函数.

    函数的定义:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
    • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

     

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

    def shuju(li):
        lst=[]
        for c in range(len(li)):
            if c%2!=0:
                lst.append(li[c])
        return lst

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

    def long(long):
        if len(long)>5:
            return True
        else:
            return False
    print(long("aaaaaaaa"))

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

    def long(long):
        if len(long)>2:
            return long[0:2]

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

    def ceshi(shuru):
        shuzi,zimu,kongge,qita=0,0,0,0
        for i in shuru :
            if i.isdigit():
                shuzi +=1
            elif i.isalpha():
                zimu +=1
            elif i==" ":
                kongge +=1
            else:
                 qita +=1
        return "你输入的共有"+str(shuzi)+"个数字",str(zimu)+"个字母",str(kongge)+"个空格","其它的个数是"+str(qita)
    print(ceshi("qwer1234    我不是字母啊"))

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

    def bidaxiao(a,b):
        if type(a)==int and type(b)==int:
            if a>b:
                return a
            elif a<b:
                return b
        else:
            return "只能输入数字,请重新输入"
    print(bidaxiao(2,2))

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

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

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

    def hanshu(i):
        dict={}
        for k,v in i.items():
            if type(v)==list or type(v)==str:
                if len(v)>2:
                    dict[k]=v[0:2]
        return dict
    print(hanshu({"k1": "v1v1", "k2": [11,22,33,44]}))

     

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

    def hanshu(i):
        dict={}
        num=0
        for c in i:
            dict[num]=c
            num +=1
        return dict
    print(hanshu([11,22,33]))

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

    def hanshu(name,age,sex,xueli):
        s=open('student_msg',mode="w",encoding='utf-8')
        s.write('姓名:%s,年龄:%s,性别:%s,学历:%s' %(name,age,sex,xueli))
        return s
    print(hanshu("张三",18,"",1))

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

    def hanshu():
        while 1 :
            i = input('任意键录入学生信息系统(Q键退出)')
            if i.upper()=="Q":
                break
            else:
                name=input('请输入姓名:')
                age=input('请输入年龄:')
                xueli=input('请输入学历:')
                sex=input("请输入性别;")
                if sex=="":
                    s=open('student_msg1',mode="a+",encoding='utf-8')
                    s.write('姓名:%s,年龄:%s,学历:%s,性别:男' %(name,age,xueli))
                else:
                    s = open('student_msg1', mode="a+", encoding='utf-8')
                    s.write('姓名:%s,年龄:%s,学历:%s, 性别:%s' % (name, age, xueli,sex))
    
        return s
    print(hanshu())

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

    def xiugai(a,b,c):
        import os
        with open("a",mode="r",encoding="utf-8") as f1,
             open("a1",mode='w',encoding='utf-8') as f2:
            for line in f1:
                new_line=line.replace(b,c)
                f2.write(new_line)
        os.remove("a")
        os.rename("a1","a")
    print(xiugai("a","an","1"))

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

    def login():
        for i in range(3):
            name=input("请输入用户名:")
            password=input("请输入密码:")
            if name in dic.keys():
                if dic[name]== password:
                    print("登录成功")
                    return True
                else:
                    print("用户名或密码错误,你还有%s次输入机会" % (2-i))
            else:
                print("用户不存在")
        return False
    #s=login()
    #print(s)
    #注册
    dic={"白白":123456,"张张":456789,"丽丽":112233,"小梅":445566}
    def register():
        while 1:
            username = input('请输入用户名:')
            if username.upper() == "Q":
                return False
            if username in dic.keys():
                print("用户名已存在,请重新输入.")
            else:
                break
        while 1:
            password = input("请输入6位由字母和数字组成的密码:")
            if password.upper() == "Q":
                return False
            if len(password) == 6:
                if password.isalnum() :
                    psw = input("请再次确认你的密码:")
                    if password == psw:
                        dic[username] = password
                        return True
                    else:
                        print("密码不一致")
                else:
                    print("密码中包含不合法字符.")
            else :
                print("密码长度不合法")
    #print(register())
    #*****菜单
    dic={"白白":123456,"张张":456789,"丽丽":112233,"小梅":445566}
    while 1:
        choice=input("请选择:1.注册,2.登录,3.退出: ")
        if choice == "1":
            result1=register()
            if result1 :
                result12=login()
            else:
                break
        elif choice == "2":
            result1=login()
            break
        elif choice == "3":
            print("退出成功")
            break
        else:
            print("输入不合法,请重新输入.")
  • 相关阅读:
    MYSQL 数据库管理
    maven初学总结
    解决问题的思路
    java泛型综述
    几种不常用的排序算法
    创新思维
    Django从入门到放弃
    KlayGE 4.0中Deferred Rendering的改进(二):拥挤的GBuffer
    用Android NDK r6编译boost 1.47
    glloader移植到了Android
  • 原文地址:https://www.cnblogs.com/zhoushibin-1/p/9643328.html
Copyright © 2011-2022 走看看