第一个python程序-判断登陆用户名和密码是否正确
#setencoding=utf-8
#用户名和密码输入正确,则登陆成功
#用户名正确密码错误,只再输入密码,有3次机会
#错误3次,则把用户名放入lock中
import os,sys
#存放用户名和密码的文件是E:\python\user.txt
accounts_file = 'E:\\python\\user.txt'
#被锁的用户要写入此文件
lock_file = 'E:\\python\\lock.txt'
#先读出来放内存中,免得每次输入用户后进行判断都要打开文件
user =file(accounts_file)
account_list=user.readlines()
user.close()
#控制是否退出while大循环的标识
loginSucess =False
#这里用的大while循环,所以用户名输不对,就会一直输,如果想限制用户名输入次数,那么while改成for
while True:
#raw_input是一个内置函数,获取用户输入,与用户建立交互
#strip()是忽略空格
username = raw_input('username:').strip()
#先判断用户名是否存在,用户名如果存在才继续,如果不存在,直接跳出循环,结束
if len(username)!=0:
#用户名如果不为空的时候,判断是不是存在
for i in account_list:
#i读到的是一行,而一行有2列,第1列就是索引为0的才是用户名,第二列索引为1的是密码
#split()方法是分隔符,默认是空格,
i = i.split()
if username==i[0]:#用户名正确
#用户名正确的时候,只给3次输入密码的机会
for x in range(3):
password = raw_input('password:').strip()
if password==i[1]:
loginSucess=True#如果为True的时候,直接走上上级for下的if,欢迎完就退出
break
#如果密码错误 #如果匹配正确或循环中有break就退出,,else不执行
else:
print '%s ,你已经输入错误密码3次了,going to lock ' %username
l = file(lock_file,'a')
l.write(username+'\n')
l.close()
view = file(lock_file)
print view.read() if loginSucess is True:
print '登陆成功,welcome to my system!!!'
break #登陆成功就直接跳出while大循环
elif loginSucess is False: #这种是用户名输入错误,它的节点在用户不为空的条件之下 ,这里不能用break,不能跳出while大循环,因为我要你一直输,直到成功
print '用户名输入错误,请重新输入。'
else: #用户名也正确,输入密码不正确3次
print '%s,sorry ,输入密码3次错误你已被锁' % username
break
else:#用户名输入为空的时候
continue
第一个python程序-判断登陆用户名和密码是否正确的更多相关文章
- js判断登陆用户名及密码是否为空的简单实例
js判断登陆用户名及密码是否为空的简单实例 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <script type="text/javascript ...
- python简介、第一个python程序、变量、字符编码、用户交互程序、if...else、while、for
也愿大家永葆初心-- 已识乾坤大,犹怜草木青. 一.python简介 首先,我们普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算 ...
- 我的第一个Python程序
#我的第一个Python程序 def is_valid_date(strdate): #判断是否是一个有效的日期字符串 try: #判断是否是时间格式 if ":" in strd ...
- 第一个python程序
一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...
- 3.第一个python程序
学习任何一门语言的第一步,首先要写个'hello world',这算是程序员的一个传统.但在写之前,还有注意几个问题. 首先,python是一门脚本语言,而脚本语言的特点就是:我们写的代码会先由解释器 ...
- python入门(4)第一个python程序
python入门(4)第一个python程序 在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果.现在,试试输入100+200,看看计算结果是不是300: ...
- python笔记:#002#第一个python程序
第一个 Python 程序 目标 第一个 HelloPython 程序 Python 2.x 与 3.x 版本简介 执行 Python 程序的三种方式 解释器 -- python / python ...
- 2.第一个python 程序
第一个python程序 一..python程序的编写步骤 1.创建 xxx.py文件(文件名不要中文) 文件名要以py为扩展名,因为导入的时候其他扩展名会报错.如果不导入的情况可以不限制扩展名. 2 ...
- python基础学习(一) 第一个python程序
1. 使用python/python3解释器的方式 按照惯例,我们都是以Hello world作为一门程序语言的开始,进行如下的操作: 在桌面上新建一个hello-python文件夹 进入hello- ...
随机推荐
- lecture5-对象识别与卷积神经网络
Hinton第五课 突然不知道object recognition 该翻译成对象识别好,还是目标识别好,还是物体识别好,但是鉴于范围性,还是翻译成对象识别吧.这一课附带了两个论文<Convolu ...
- leetcode - 位运算题目汇总(上)
最近在看位运算的知识,十分感叹于位运算的博大精深,正好leetcode有 Bit Manipulation 的专题,正好拿来练练手. Subsets 给出一个由不同的数字组成的数组,枚举它的子数组(子 ...
- 设置svg图片大小
background-image: url(/resources/img/liveSupport/tx_1.svg); background-size: 16px 16px; width: 16px; ...
- HoloLens开发手记 - Vuforia开发概述 Vuforia development overview
关于Vuforia,开发AR应用的人基本都会熟悉.之前我也写过一篇关于Vuforia开发的博客:Vuforia AR SDK入门 今天这篇博客则主要是谈谈HoloLens使用Vuforia开发混合现实 ...
- 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能
以往的Android开发有一个头疼的且拖慢速度的问题,就是你每改一行代码要想看到结果必须要编译运行到手机或者模拟器上,而且需要从头(可能是登录界面)一直点击到你修改的界面为止.开发一个完整的Andro ...
- 用 Linux自带的logrotate 来管理日志
大家可能都有管理日志的需要,比如定时压缩日志,或者当日志超过一定大小时就自动分裂成两个文件等.最近就接到这样一个小任务.我们的程序用的是C语言,用log4cpp的library来实现日志记录.但是问题 ...
- .net 估计要死在你手里了
最近不太爽,想换工作,上这些知名的招聘网站,一搜 .net 心凉了一截,很少有大公司用.net,工资也不是很高. 不用我多说什么,想必很多人应该有类似经历,只是打了牙往肚子里咽. 来两副图: 最近用滴 ...
- [转]Windows 8.1删除这台电脑中视频/文档/下载等六个文件夹的方法
Windows 8.1 已将“计算机”正式更名为“这台电脑”,当我们双击打开“这台电脑”后,也会很明显得发现另外一些变化:Windows 8.1 默认将视频.图片.文档.下载.音乐.桌面等常用文件夹 ...
- BroadcastReceiver之SD的挂载监听
首先,新建一个类,继承于BroadcastReceiver,然后去配置Manifest.xml这就不用说了, 注意配置Manifest.xml时候的一些细节 必须加上<data android: ...
- oracle 10g编程
一.概述 1.sql语言特点 sql语言采用集合操作方式,对数据的处理是成组进行的,而不是一条一条处理,听过使用集合操作方式,可以家加快数据的处理速度. 执行sql语句时每次只能发送并处理一条语句.如 ...