前提:

  根据文本中的已有用户和密码,实现登陆的交互;在用户输入用户名后,会有一个检测用户是否被锁定的环节;如果用户三次密码输入错误,则该用户则会被添加到锁定文件中,无法登陆。

涉及到的知识点:

1.python对于文件的操作

f = open("lock","r+")

关于内建函数open()
open(name[, mode[, buffering]])
mode的常用值包括:'r'读文件(默认);'w'写文件(如果文件存在则截断之,如果文件不存在则自动创建文件);
'a'追加(在文件的末行追加字符)。在打开二进制文件的时候,要以二进制模式打开文件,把'b'添加到mode值,
这样可以增强可移植性。(在不区分二进制文件和文本文件的系统上,附加'b'仍然时有用的,它可以起到文档的目的。)
可选的buffering参数指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;{这一块需要实验进行测试,暂时未完全明白}
模式'r+','w+'和'a+'打开文件以便更新(同时读写)。注意'w+'会截断文件。
在区分文本文件和二进制文件的系统上,在模式中附加'b'会以二进制模式打开文件;在不区分的系统上,添加'b'没有效果。

#读取文件的几种方式:

>>> f = open("lock","r+")
>>> f.read()
'wurui asdf\n asjdfk\tafsf\n fas\t\tfas \n 999666\n\t '
>>> f.read()
''
#文件读取完毕之后,再次读取就是空字符串,输出的是一个大的字符串。
>>> f.readline()
'wurui asdf\n'
#输出的是文本中一行的内容,以\n为一个字符串的结尾,如果持续执行该命令,会依次输出文本中的每一行的内容,当读到最后,则输出为空。
>>> f.readlines()
['wurui asdf\n', ' asjdfk\tafsf\n', ' fas\t\tfas \n', ' 999666\n', '']
#该方法是将文本中的所有内容当作一个列表,每一行的内容则是列表中的每个元素,并且每个元素都是字符串的形式。
#关于seek()简单的提一下:
>>> f.readlines()
['wurui asdf\n', ' asjdfk\tafsf\n', ' fas\t\tfas \n', ' 999666\n', '']
>>> f.readlines()
[]
>>> f.seek(0)
0
>>> f.readlines()
['wurui asdf\n', ' asjdfk\tafsf\n', ' fas\t\tfas \n', ' 999666\n', '']

以上对文件的读取操作,如果读到了文件的最后一行,下次继续读取都会出现空字符串的现象;需要使用f.close()方法,然后重新读取文件(或者直接使用f.seek(0)也可以直接重新读取文件 )。并且程序中 每次对文件操作完成之后,都需要试用f.close()关闭文件,以释放内存。

方便起见,python中出现了如下便捷操作:

>>> with open('workfile', 'r') as f:
... read_data = f.read()
>>> f.closed
True
#该方法省去了f.closed(), 并且比try...finally更短。

2.字符串的定性处理

  此处要考虑的是如何将一个读取出来的字符串,进行去除 \n和 空格的处理,并生成一个列表。

string.strip(self, chars=None)

作用:将字符串进行指定的切除;

使用说明:返回删除前导和尾随字符的字符串的副本,若chars未指定,则默认为空格/或回车(去除两端空格部分)。

返回字符串中的单词列表,使用sep作为分隔符字符串。如果给出maxsplit,则至多拆分maxsplit次(因此,列表中将最多有maxsplit+1个元素)。如果没有指定maxsplit或为-1,那么分割的数量没有限制(进行所有可能的分割)。[若想切除\n则要指定chars]

split(self, sep=None, maxsplit=-1)

作用:将字符串分割,然后分割后的各个部分作为字符串所生成的列表元素。

使用说明:sep指定分割对象。如果sep未指定,则连续的空格被视为一个单一的分隔符,分割后的各列表元素则将自动切除空格(不包括\t和\n)。

3. for ...  else 语句

  程序运行时,如果for循环体内,并没有执行到break,exit(),return或异常语句, 则继续执行 else中的语句; 如果没有else语句,则不管for循环是否正常执行完循环体,都会执行for语句下边的语句。

home_work--用户登陆的更多相关文章

  1. IOS开发之记录用户登陆状态

    上一篇博客中提到了用CoreData来进行数据的持久化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户的登 ...

  2. 使用Struts框架,实现用户登陆功能

    前言:本篇文章是本人这周学习的一个小结,在自我总结的同时,希望也能够给其他同学带来一点帮助.本文主要知识是参照书本上的知识点以及网上其他博客文章,在上机操练后的所得,具体源码主要来自http://bl ...

  3. Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)

    紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令     简介      ...

  4. [PHP] - Laravel - 用户登陆中间件

    前言 Laravel 4中,可以使用Route::filter,而在Laravel 5中,没有了filter.php文件,官方建议使用中间件做. 下面是用户登陆的测试例子,涉及到的一些方法和使用,先参 ...

  5. [转]mvc3 使用session来存储类来存储用户登陆信息

    mvc3 使用session来存储类来存储用户登陆信息 2013-08-26 09:48:56|  分类: NET开发 |举报 |字号 订阅   项目之前的登陆机制是这样的:用户登陆后初始化一个类,类 ...

  6. PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/p ...

  7. Redis & Python/Django 简单用户登陆

    一.Redis key相关操作: 1.del key [key..] 删除一个或多个key,如果不存在则忽略 2.keys pattern keys模式匹配,符合glob风格通配符,glob风格的通配 ...

  8. 记录一次centos6.4版本的VSFTP本地用户登陆的配置

    其实vsftp是一个非常常用而且简单的服务,但是假如服务不是你配置的前者没有留下参考档案,的确是件头疼的事儿,特此记录下. 首先是vsftp的安装当然安装有源码的编译和yum等 这里我选择rpm包的y ...

  9. java的web项目中使用cookie保存用户登陆信息

    本文转自:http://lever0066.iteye.com/blog/1735963 最近在编写论坛系统的实现,其中就涉及到用户登陆后保持会话直到浏览器关闭,同时可以使用cookie保存登陆信息以 ...

  10. Data Base sqlServer sa用户登陆失败的解决办法

    sqlserver sa用户登陆失败的解决办法 如下图以此模仿: 1.右键-属性 2.找到安全: 3.勾选如图: 4.sa用户密码重置: 5.服务重启:

随机推荐

  1. HDU1312——Red and Black(DFS)

    Red and Black Problem DescriptionThere is a rectangular room, covered with square tiles. Each tile i ...

  2. P102、面试题14:调整数组顺序使奇数位于偶数前面

    题目:输入一个整数数组,实现一个函数来调整该数组中数字的属性怒,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 思路:其实就是用快速排序法的第一轮排序,从左右夹逼,左边遇到偶数,停下来, ...

  3. strlen的C/C+++实现

    2013-07-05 11:36:05 小结: 本函数给出了几种strlen的实现,有ugly implementation,也有good implementation.并参考标准库中的impleme ...

  4. javascript 简单的计算器

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...

  5. poj1151Atlantis(离散化+扫描线)

    http://poj.org/problem?id=1151 http://www.cnblogs.com/kane0526/archive/2013/02/26/2934214.html这篇博客写的 ...

  6. BZOJ2870: 最长道路tree

    题解: 子树分治的做法可以戳这里:http://blog.csdn.net/iamzky/article/details/41120733 可是码量... 这里介绍另一种好写又快的方法. 我们还是一颗 ...

  7. I.MX6 PMU MMPF0100 driver porting

    /************************************************************************** * I.MX6 MMPF0100 driver ...

  8. 在 Azure 中使用公用 IP 创建多 NIC VM

    Russ Slaten  2014年 11 月 18日下午 4点 我们最近宣布了支持具有多个网络接口控制器 (NIC) 的虚拟机 (VM).我仍在努力了解此功能适用的所有新场景,但首先,我希望亲自测试 ...

  9. 手把手教你WEB套打程序开发

    WEB套打可选方案不多,理想的更少,利用免费控件Lodop+JavaScript实现精确套打,算是较为经典的选择.这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是“空手套”式的开 ...

  10. 上传文件出错:org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly

    最近做一个web项目中有上传文件的功能,已经写出并在本地和部署到服务器上测试了好几个文件上传都没问题(我用的是tomcat).后来又上传了一个700多K的文件(前边的都是不足600K的,并且这个wor ...