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("输入不合法,请重新输入.")

 

posted @ 2018-09-13 21:41  人生不言弃  阅读(911)  评论(0编辑  收藏  举报