homework(1)--for user log in

前提:

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

涉及到的知识点:

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‘, ‘123‘]
#该方法是将文本中的所有内容当作一个列表,每一行的内容则是列表中的每个元素,并且每个元素都是字符串的形式。
#关于seek()简单的提一下:
>>> f.readlines()
[‘wurui   asdf\n‘, ‘   asjdfk\tafsf\n‘, ‘  fas\t\tfas  \n‘, ‘    999666\n‘, ‘123‘]
>>> f.readlines()
[]
>>> f.seek(0)
0
>>> f.readlines()
[‘wurui   asdf\n‘, ‘   asjdfk\tafsf\n‘, ‘  fas\t\tfas  \n‘, ‘    999666\n‘, ‘123‘]

以上对文件的读取操作,如果读到了文件的最后一行,下次继续读取都会出现空字符串的现象;需要使用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语句下边的语句。

时间: 2024-11-03 01:39:59

homework(1)--for user log in的相关文章

部署HAproxy的TCP代理模式

场景:测试HAproxy服务的TCP代理服务,与nginx的TCP代理做性能对比部署过程:1.下载haproxy-1.8.0.zip,下载页面https://github.com/haproxy/haproxy/tree/v1.8.0 2.安装部署haproxyunzip haproxy-1.8.0.zipcd haproxy-1.8.0make TARGET=linux26 ARCH=X86_64 PREFIX=/home/homework/haproxymake install PREFIX

机器学习 —— 概率图模型(Homework: Exact Inference)

在前三周的作业中,我构造了概率图模型并调用第三方的求解器对器进行了求解,最终获得了每个随机变量的分布(有向图),最大后验分布(双向图).本周作业的主要内容就是自行编写概率图模型的求解器.实际上,从根本上来说求解器并不是必要的.其作用只是求取边缘分布或者MAP,在得到联合CPD后,寻找联合CPD的最大值即可获得MAP,对每个变量进行边缘分布求取即可获得边缘分布.但是,这种简单粗暴的方法效率极其低下,对于MAP求取而言,每次得到新的evidance时都要重新搜索CPD,对于单个变量分布而言,更是对每

homework做了些什么?

第一步:get_new_guid_uid_pairs_{$ymd} 参数是时间和100上的文件. 那么100上的文件是从哪里来的呢? 我们进入到100机器上,打开root权限下的cron,看到如下内容: ### add by kamilzhou for clickflow system8 * * * * /data/clickflow/hourly_data/hourlyGetLogDataStore.sh >> /data1/clickflow/hourly_data/get.log &am

HDU 1789 - Doing Homework again - [贪心+优先队列]

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1789 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem DescriptionIgnatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Eve

Homework 6 INF 552

Homework 6 INF 552,1. Supervised, Semi-Supervised, and Unsupervised Learning(a) Download the Breast Cancer Wisconsin (Diagnostic) Data Set from:https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Diagnostic%29. Download the data in htt

【题解】HDU Homework(倍增)

[题解]HDU Homework(倍增) 矩阵题一定要多多检查一下是否行列反了... 一百个递推项一定要存101个 说多了都是泪啊 一下午就做了这一道题因为实在是太菜了太久没写这种矩阵的题目... 设一个行向量\(e\),和一个增逛矩阵\(A\),他们咋定义的见我那篇讲线性递推博客 现在我们再预处理\(st\)矩阵数组,其中\(st_i=A^{2^i}\). 考虑这样一种做法,我们考虑让\(e\)总共有101个值,然后当第一个值被增逛为\(f_{q.n-100}\)时,暴力将\(e\)中的第\(

MSDS596 Homework 9

MSDS596 Homework 9 (Due in class on Nov 14) Fall 2017Notes. The lowest grade among all twelve homework will be dropped, so NO late submission will beaccepted. All homework assignment must be written on standard 8.5 by 11 paper and stapled together.Co

MSDS 596 Homework

MSDS 596 Homework 10 Due November 28 2017Notes. The lowest grade among all eleven homework will be dropped, so NO late submission will beaccepted. All homework assignment must be written on standard 8.5 by 11 paper and stapled together.Computer gener

【转】console.log 用法

转自http://www.cnblogs.com/ctriphire/p/4116207.html 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能大家对console.log会有一定的了解,心里难免会想调试的时候用alert不就行了,干嘛还要用console.log这么一长串的字符串来替代alert输出信息呢,下面我就介绍一些调试的入门技巧,让你爱上co