zoukankan      html  css  js  c++  java
  • 老男孩Python全栈学习 S9 日常作业 008

    1、有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合

    pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    linuxs={'wupeiqi','oldboy','gangdan'}

    1. 求出即报名python又报名linux课程的学员名字集合

    2. 求出所有报名的学生名字集合

    3. 求出只报名python课程的学员名字

    4. 求出没有同时这两门课程的学员名字集合

    # 1. 求出即报名python又报名linux课程的学员名字集合
    print(pythons & linuxs)
    
    # 2. 求出所有报名的学生名字集合
    print(pythons | linuxs)
    
    # 3. 求出只报名python课程的学员名字
    print(pythons - linuxs)
    
    # 4. 求出没有同时这两门课程的学员名字集合
    print(pythons ^ linuxs)
    View Code

    2、有列表l=['a','b',1,'a','a']

    1、去重,得到新列表,且新列表无需保持列表原来的顺序

    2、去重,得到新列表,且新列表需要保持原来的顺序

    # 第一题答案
    l = set(l)
    
    # 第二题答案
    List = []
    for i in l:
        if i in List:
            continue
        else:
            List.append(i)
    l = List
    View Code

    3、有如下文件.db.txt,请去除文件中重复的行

    我也不知道要写什么
    反正要有重复的行
    那就这行吧
    那就这行吧
    完毕
    import os
    with open('db.txt','r',encoding='utf-8') as read_f,
        open('db1.txt','w',encoding='utf-8') as write_f:
        li = []
        for line in read_f.readlines():
            if line not in li:
                li.append(line)
                write_f.write(line)
    os.remove('db.txt')
    os.rename('db1.txt','db.txt')
    答案1
    import os
    with open('db.txt','r',encoding='utf-8') as read_f:
        li = []
        for i in read_f:
            if i not in li:
                li.append(i)
    with open('db.txt','w',encoding='utf-8') as write_f:
        for i in li:
            write_f.write(i)
    答案2

    4、有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序

    l=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'egon','age':20,'sex':'female'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
    ]
    List = []
    for i in l:
        if i not in List:
            List.append(i)
    View Code

    5、文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数

    apple 10 3
    tesla 100000 1
    mac 3000 2
    lenovo 30000 3
    chicken 10 3

    with open('a.txt',encoding='utf-8') as read_f:
        num1 = 0
        num2 = 0
        money = 0
        for line in read_f.readlines():
            num1 = int(line.split(' ')[1])
            num2 = int(line.split(' ')[2])
            money += num1*num2
        print(money)
    View Code

    6、修改文件内容,把文件a.txt中的alex都替换成SB

    SB 18
    Eva 20
    KID 21
    kidd 22
    SB 38
    with open('a.txt') as file:
        List = []
        for i in file.readlines():
            List.append(i)
    with open('a.txt','w') as file:
        for i in List:
            if 'alex' in i:
                file.write(i.replace('alex','SB'))
            else:
                file.write(i)
    View Code

    7、有如下文件,a1.txt

    老男孩是最好的学校,
    全心全意为学生服务,
    只为学生未来,不为牟利。
    我说的都是真的。哈哈

    分别完成以下的功能:

    a,将原文件全部读出来并打印。

    b,在原文件后面追加一行内容:信不信由你,反正我信了。

    c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。

    d,将原文件全部清空,换成下面的内容:

    每天坚持一点,
    每天努力一点,
    每天多思考一点,
    慢慢你会发现,
    你的进步越来越大。
    View Code

    e,将原文件内容全部读取出来,并在‘我说的都是真的。哈哈’这一行的前面加一行,‘你们就信吧~’然后将更改之后的新内容,写入到一个新文件:a1.txt。

     

    with open('a1.txt','r',encoding='utf-8') as F1:
        print(F1.read())
    答案a
    with open('a1.txt','a',encoding='utf-8') as f1:
        f1.write('
    信不信由你,反正我信了。')
    答案b
    with open('a1.txt','r',encoding='utf-8') as f1:
        print(f1.read())
        print('信不信由你,反正我信了。')
    答案c
    with open('a1.txt','w',encoding='utf-8') as f1:
        f1.write('''每天坚持一点,
    每天努力一点,
    每天多思考一点,
    慢慢你会发现,
    你的进步越来越大。''')
    答案d
    from os import remove,rename
    with open('a1.txt','r',encoding='utf-8') as f1,
        open('a1.txt.tmp','a',encoding='utf-8') as f2:
        for i in f1.readlines():
            new_line = i.replace('我说的都是真的。哈哈','你们就信吧~
    我说的都是真的。哈哈')
            f2.write(new_line)
    remove('a1.txt')
    rename('a1.txt.tmp','a1.txt')
    答案e

    8、有如下文件,t1.txt

    葫芦娃,葫芦娃,
    一根藤上七个瓜
    风吹雨打,都不怕,
    啦啦啦啦。
    我可以算命,而且算的特别准:

    分别完成下面的功能:

    a、以r+的模式打开原文件,判断原文件是否可读,是否可写。

    b、以r的模式打开原文件,利用for循环遍历文件句柄。

    c、以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析b,与c 有什么区别?深入理解文件句柄与 readlines()结果的区别。

    d、以r模式读取‘葫芦娃,’前四个字符。

    e、以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。

    f、以r模式打开文件,从‘风吹雨打.....’开始读取,一直读到最后。

    g、以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。

    h、截取原文件,截取内容:‘葫芦娃,葫芦娃,’

    file = open('t1.txt','r+',encoding='utf-8')
    print(file.readable())
    print(file.writable())
    file.close()
    答案a
    with open('t1.txt','r',encoding='utf-8') as f1:
        for i in f1:
            print(i,end='')
    答案b
    with open('t1.txt','r',encoding='utf-8') as f1:
        for i in f1.readlines():
            print(i,end='')
    # readlines与直接读取句柄内容或者read的区别在于。readlines以迭代的方式读取文件,读一行显示一行,而read会直接将整个文件缓存到内存中,再进行操作。
    答案c
    with open('t1.txt','r',encoding=',utf-8') as f1:
        print(f1.readline(4))
    答案d
    with open('t1.txt','r',encoding=',utf-8') as f1:
        print(f1.readline().strip())
    答案e
    f = open("t1.txt",mode='r',encoding="utf-8")
    for i in f:
        if i.startswith("风吹雨打"):
            print(i,end='')
            print(f.read())
    f.flush()
    f.close()
    答案g
    f = open("t1.txt",mode='r+',encoding="utf-8")
    f.seek(24)
    f.truncate()
    f.seek(0)
    s = f.read()
    print(s)
    f.close()
    答案h
  • 相关阅读:
    Unity3d-反编译C#和提取资源
    让年轻程序员少走弯路的14个忠告
    Objective-C的陷阱与缺陷
    Android中处理Touch Icon的方案
    常用的Java代码汇总
    cocos2dx游戏资源加密之XXTEA
    9种常见的Android开发错误及解决方案
    Linux 系统常用命令汇总(三) 用户和用户组管理
    Linux 系统常用命令汇总(四) 程序和资源管理
    Linux 系统常用命令汇总(二) vi 文本编辑
  • 原文地址:https://www.cnblogs.com/guge-94/p/10575019.html
Copyright © 2011-2022 走看看