栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python,查人代码;“到底还差哪些人呢(疑问)?”

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python,查人代码;“到底还差哪些人呢(疑问)?”

目录

壹:问题回溯

贰:思路分析

叁:代码实现

肆:对代码的分析

伍:运行截图

陆:写在最后的话


壹:问题回溯

        “在日常生活中,大家有没有遇到过这样的问题呢——考勤时,总有几位同学不在,但是我们不知道他们是谁(抓狂)。Emm……这确实是个令人伤脑经的问题,不过,我相信,在你看完这篇博文后,你会有所启发。”


贰:思路分析

        好的,接下来让我们来分析一下怎么解决这个问题。

  1. 问题场景:考勤。“那么,自然而然地,会有花名册与签到表;通过比对考勤表与签到表,我们得知是谁缺勤。”
  2. 那么,我们如何通过编写代码来实现我们的上述思路呢?
  3. 将花名册与签到表存放到指定文件夹;将花名册与签到表导入到代码中(此处,思考一下代码复用的问题);比对两个文本中的内容;输出结果。

        大概的思路就是这样。

        但是啊,我们不能仅仅满足于解决问题,我们更应该思考如何更好地解决问题。


叁:代码实现

        我们先来浏览一下代码。

# -*- coding: utf-8 -*-

# Created by Violet. All rights reserved!

'''

说明:

1 相关文件直接存放在D盘('D:')。

2 用 ".txt格式" 存放数据,一行存放一个名字。

3 先导入 "花名册",再导入 "签到表"(文件名可 DIY)。

'''

#%%
# 调用函数库。

import os

#%%
# 定义,导入文本的函数。

def get():

    file_name = input("导入,花名册/签到表:")

    path = os.path.join('D:/', file_name + ".txt")   

    Lis = list()

    with open(path, encoding = 'utf-8') as Nam:

        for line in Nam:

            Lis.append(line)

    return Lis

#%%
# Body.

Lis1 = get(); Lis2 = get()

whos = []

for x in Lis1:
    
    if x in Lis2:
        
        pass
    
    else:
        
        whos.append(x)

else:

    for y in whos:
        
        print('')
        
        print(y, end = '')

#%%
# To be continued.

肆:对代码的分析

        来,让我们分析一下这段代码。

  1. 细心的你想必已经发现,在代码的书写开始前,我们有一段“说明”。在代码的编写过程中,附上说明,好处是有很多的哦——提高代码的可读性,使读者能更好地理解代码的逻辑架构;一定程度上,方便我们简化代码(面面俱到,是一种解决方案;“精确制导”,也是哦);方便我们后期对代码进行维护(毕竟,有时候,自己之前写的代码,我们,,Emm…不一定能认出来)。
  2. 然后,在代码的编写过程中,我们发现:“导入,花名册文本,与,签到表文本,的代码很类似(不能说完全相同吧,只能说是一模一样了)。”然后啊,我们就想,能不能偷懒呢?将这一段代码封装成函数,然后,就可以偷懒了。“但,如果封装成函数,我们怎么解决调用函数时,存在的差异性问题(什么时候该输入什么)呢?”哎哎,在说明里提示读者操作步骤就好啦(懒惰)。
  3. 编写调用文本的代码时,我们推荐使用“with open() as Nam:”的方法,为什么呢?因为啊,该语句会在合适的时候自己关掉我们打开的文件(如果不关掉文件,可能会有些意料之外的情况发生),这贴心的设计对懒人直接不要太友好。
  4. 但是啊,使用“with open() as Nam:”这一语句,我们需要在括号里键入完整的文件地址(如,“D:files花名册.ttf”),这很麻烦,不是吗?所以,我们用"path"来表示路径,然后,在"os库"的一个小功能“os.path.join()”与“input()”的组合使用下,实现了文件路径的键入。
  5. 接下来到了比对花名册与签到表的环节,注意,我们要用花名册里的数据去遍历(意思是,我们对签到表里数据的“for循环遍历”要放在最里层),这样我们才能筛选出缺勤人员的名单(Emm…或者你可以想想,如果我们反过来遍历,会出现什么情况呢?)。
  6. 最后,输出缺勤人员名单。

伍:运行截图


陆:写在最后的话

……

《“第一顺位”理论》

1 要做的事情有很多,手足无措了。这样吗?“让我们一件事一件事来做,可好?”

2 来,我们先把要做的事情一件一件地列在便利贴上,然后,确定这些待办事项的优先级。

3 然后:“一段时间里,心无旁骛地做一件事。”

4 告诉自己——罗马城不是一天建成的。为自己打气。

5 嗯?乏了吗?给自己一个微笑吧。“微笑是疲惫者的休息,是沮丧者的白天,是悲伤者的阳光,是大自然的最佳营养。”

6 告诉自己:“我虽然走得慢,但是我不往回走。”

……

《了不起的小狐狸:用力生活,用力爱》:“你很棒!你很聪明!你一定可以做好这件事的!”

……

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/883102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号