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

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

def func(obj):
    return obj[1::2]

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

def func(obj):
    return len(obj)>5:

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

def func(lst):
    if len(lst) > 2:
        return lst[:2]

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

def func(str):
    num = 0
    alpha = 0
    space = 0
    other = 0
    for i in str:
        if i.isalpha():
            alpha+=1
        elif i.isdigit():
            num+=1
        elif i == ' ':
            space+=1
        else:
            other+=1
    return num,alpha,space,other

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

def func(x,y):
    return x if x>y else y

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

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func(dic):
    for key in dic:
        if len(dic[key]) > 2:
            dic[key]=dic[key][:2]
    return dic

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

lst = [11,22,33]
def func(lst):
    if type(lst) != list:
        print('异常')
    dic = dict()
    for num,key in enumerate(lst):
        dic[num]=key
    return dic
print(func(lst))

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


def func(name,gender,age,edu):
    with open('student_msg',w) as f:
        f.write(name+'_'+gender+'_'+age+'_'+edu+'\n')
name = input('Name:').strip()
gender = input('Gender:').strip()
age = input('Age:').strip()
edu = input('Edu:').strip()
func(name,gender,age,edu)

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

def func(name,gender,age,edu):
    with open('student_msg',w) as f:
        f.write(name+'_'+gender+'_'+age+'_'+edu+'\n')
while True:
    Action = input('是否要退出').upper()
    if Action == 'Q':break
    name = input('Name:').strip()
    gender = input('Gender:').strip()
    gender = '男' if gender == '' else '女'
    age = input('Age:').strip()
    edu = input('Edu:').strip()
    func(name,gender,age,edu)

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

import os

def func(filename,old,new):
    with open(filename,'r') as f1, \
        open(filename+'_tmp','w') as f2:
        for line in f1:
            line = line.replace(old,new)
            f2.write(line)
    os.rename(filename+'_tmp',filename)

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

def regist(username,password):
    with open('user_info','r') as f:
        for line in f:
            if line == '': continue
            user_info_username = line.split('_')[0]
            if username == user_info_username:
                return False
        else:
            f.write(username+'_'+password+'\n')
        reutnr True
name ,password = input('Username').strip(),input('Password').strip()
regist(name,password)

def login(username,password):
    with open('user_info','r') as f:
        for line in f:
            if line.strip() == username+'_'+password
                return True
        else:
            return False
for i in range(2:-1:-1):
    ret = login(input('Username,'),input('Password:'))
    if ret:
        print('登陆成功')
    else:
        print('用户名或密码错误,还有%s次机会'%i)

明日默写。

①,return的作用。

②,传参的几种方法,每个都简单写一个代码。

如,实参,按位置传参。

def func(x,y):
    Pass
func(‘a’,’b’)

Day9作业及默写的更多相关文章

  1. Day29作业及默写

    作业: 1\ 默写 黏包协议 2\ 上传大文件(文件\视频\图片) 3\ 和你的同桌调通 从你的计算机上传一个视频到你同桌的电脑上 4\ 进阶 : 带上登录 Server #Server #!/usr ...

  2. Day20作业及默写

    1.请使用C3算法计算出链接图中的继承顺序-Link 一 graph BT id1[A]-->id2[B] id2[B]-->id6[F] id6[F]-->id7[G] id1[A ...

  3. Day11作业及默写

    1.写函数,传入n个数,返回字典{'max':最大值,'min':最小值} 例如:min_max(2,5,7,8,4) 返回:{'max':8,'min':2}(此题用到max(),min()内置函数 ...

  4. Day10作业及默写

    1,继续整理函数相关知识点,写博客. 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*number): sum=0 for num in number: sum+=nu ...

  5. Day14作业及默写

    1.整理今天所学内容,整理知识点,整理博客. pass 2.画好流程图. pass 3.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出): pass 4.用map来处理字符串列表,把列 ...

  6. Day13作业及默写

    1. 整理今天的博客,写课上代码,整理流程图. 博客链接--博客园 2. 写一个函数完成三次登陆功能: 用户的用户名密码从一个文件register中取出. register文件包含多个用户名,密码,用 ...

  7. Day8作业及默写

    1,有如下文件,a1.txt,里面的内容为: 老男孩是最好的培训机构, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: 将原文件全部读出来并打印. with ...

  8. Day7作业及默写

    1. 判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数. 例如: 153 = 1**3 + 5**3 + 3**3 InputNu ...

  9. Day6作业及默写

    1.使⽤循环打印以下效果: 1: * ** *** **** ***** for num in range(1,6): print('*' * num) 2: ***** **** *** ** * ...

随机推荐

  1. 漏洞复现——bash远程解析命令执行漏洞

    漏洞描述:Bash脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令,在一些cgi脚本中,数据是通过环境变量来传递的,这样就会形成该漏洞 漏洞原理:bash通过以函数名作为环境变量名,以“( ...

  2. 第一阶段——站立会议总结DAY07

    未做,有一些作业比较赶,所以,先搁置了它.

  3. windows下进程间通信与线程间通信

    进程间通信: 1.文件映射(Memory-Mapped Files) 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待.因此,进程不必使用文件I/ ...

  4. 在spring中,C3P0的一些配置(部分)

    <!-- c3p0连接池配置 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPoo ...

  5. python中类的概念

    在Python中,所有数据类型都可以视为对象,也可以自定义对象.自定义的对象即面向对象中的类(Class)的概念. class Student(object): def __init__(self, ...

  6. Python装饰器--decorator

    装饰器 装饰器实质是一个函数,其作用就是在不改动其它函数代码的情况下,增加一些功能.如果我们需要打印函数调用前后日志,可以这么做 def log(func): print('%s is running ...

  7. Farm Irrigation(非常有意思的并查集)

    Farm Irrigation Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Tot ...

  8. 【转】大型Vuex项目 ,使用module后, 如何调用其他模块的 属性值和方法

    Vuex 允许我们把 store 分 module(模块).每一个模块包含各自的状态.mutation.action 和 getter. 那么问题来了, 模块化+命名空间之后, 数据都是相对独立的, ...

  9. 【转】在使用实体框架(Entity Framework)的应用中加入审计信息(Audit trail)跟踪数据的变动

    在一些比较重要的业务系统中,通常会要求系统跟踪数据记录的变动情况.系统要记录什么时间,什么人,对那些信息进行了变动. 比较简单的实现方式是在每个表中加入两个字段CreatedBy和CreatedAt, ...

  10. 大量的QT控件及示例发放

    QT属性控件项目https://github.com/lexxmark/QtnProperty 比特币交易软件https://github.com/JulyIGHOR/QtBitcoinTrader ...