开始学习python,开始记录。

第一个小程序:登陆系统

功能:1、通过文件名和密码导入用户名和密码~

2、用户输入用户名和密码

3、将用户输入的用户名进行比对,先判断用户名是否在黑名单里面,如果在黑名单里面就直接退出;如果不在黑名单里面就继续输入密码,然后将用户名和密码与正确的用户名密码匹配,匹配通过则显示登陆成功,匹配失败则提示重新输入密码,密码输入错误三次退出系统,锁定用户名,加入黑名单。

用到的知识点:1、文件读写操作。纪要:打开文件,只读用r,打开读且写入内容,用w+或者r+,w+是追加写,但是每次重新打开都会覆盖原来文件的内容。r+是直接在原来的文件                               内容后面追加。

       2、列表基本知识,字典基本知识

       3、导入模块,是输入的密码不可见

源码:

#Author:qcg
import getpass
info = open('/home/me/python-study/20170913/info.txt','r') #导入用户名密码
Blanklist=open('/home/me/python-study/20170913/blanklist.csv','r+')
#username = input("please input username:")
#passwd = input("please input your passqord:")
#创建用户名密码字典
for line in info:
user_list=line.split(',')
i=0
dic_usr={}
while i<len(user_list)/2 -1:
dic_usr[user_list[(2*i)]]=user_list[(2*i+1)]
i+=1
#print (dic_usr)
username = input("please input username:")
for line in Blanklist:
# print (line)
if username in line:
print("sorry,you are forbidden to logn in")
break
count = 0
while count<3:
#passwd = input("please input your password:")
   passwd = getpass.getpass("please input your password:")
if username in dic_usr and dic_usr[username]==passwd: #判断用户名是否在黑名单中,若不在则匹配用户名密码~
print("welcome to logn in")
break
else:
print("please try again~~~")
count+=1
else:
print ("you have try too manay times,byebye")
Blanklist.write(username)
Blanklist.write(',')
Blanklist.close()
info.close()

运行结果:

[root@lmdx6688 20170914]# python3.5 lognin5.py
please input username:123
please input your password:
please try again~~~
please input your password:
please try again~~~
please input your password:
please try again~~~
you have try too manay times,byebye

[root@lmdx6688 20170914]# python3.5 lognin5.py
please input username:qcg
please input your password:
welcome to logn in

python学习-python入门的更多相关文章

  1. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  2. Python学习从入门到放弃?我不允许!!!

    嗨,大家好 这里是汐仔 很多人都说学习python学习python,打开书本,三分钟,从入门到放弃. 这怎么可以!!!大家能选择python的原因可能是看它既简单,好入门,现在俨然是语言中的一匹黑马. ...

  3. 1 python学习——python环境配置

    1 python学习--python环境配置 要学习python语言,光看书看教程还是不好,得动手去写.当然,不管学习什么编程语言,最佳的方式还在于实践. 要实践,先得有一个Python解释器来解释执 ...

  4. Python学习---Python安装与基础1205

    1.0. 安装 1.1.1. 下载 官网下载地址:https://www.python.org/downloads/release/python-352/ 1.1.2. 配置环境变量 因为在安装的时候 ...

  5. Python学习---Python下[元组]的学习

    元组是不可变的, 用小括号()定义,而且一旦定义 ,不可变[类型是tuple] [元组看做一个整体,不可拆分,不可赋值,但可以全部重新赋值] 通过圆括号,用逗号分隔,常用在使语句或用户定义的函数能够安 ...

  6. python学习02python入门二

    学前须知:1.本文档有关内容均建立在python3.x版本上,python2.x已经成为历史,如有需要,文内会特别说明. 2.本文使用的编辑器多为架构在Windows上的pycharm,如需了解Lin ...

  7. Python学习--Python基础语法

    第一个Python程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗 ...

  8. Python学习---Python的异步IO[all]

    1.1.1. 前期环境准备和基础知识 安装: pip3 install aiohttp pip3 install grequests pip3 install wheel pip3 install s ...

  9. python学习---python基础一

    一.Python介绍 1.python出生与应用 python的创始人是吉多.范罗苏姆(龟叔).1989年圣诞在家闲着无聊,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 python崇尚的是 ...

随机推荐

  1. jmeter系列-如何实现像loadrunner一样,多个并发用户先通过登录初始化,然后做并发的接口性能压测

    自动转开发后,就很少关注性能测试方面的东西,最近在帮朋友做一个性能压测,由于朋友那边的公司比较小,环境比较简单,而且是对http服务进行的压测,所以最终 选用了jmeter来实现这个压测. 如下就是我 ...

  2. nginx配置二级目录,反向代理不同ip+端口

    场景描述: 通过二级目录(虚拟目录,应用程序)的方式访问同一ip+端口的不同应用,例如location是用户使用页面,location/admin/是管理页面,location部署在192.168.1 ...

  3. C#流程控制语句--跳转语句(break,continue,goto,return,)

    跳转语句:是程序运行到某一位置时,可以跳到程序中另一个代码的语句.循环控制语句. 跳转语句:break 1.用于退出包含在最内层的循环或者退出一个switch或loop语句,程序流将继续紧接着loop ...

  4. count性能

    表有主键列,count(1)的效率会稍微高于count(*),count(主键列)效率会高于count(1).表没有主键列,count(1)效率会高于count(*) count(1).count(* ...

  5. sql数据表中的值重新命名

    select u.id,u.name,u.sex, 2 (case u.sex 3 when 1 then '男' 4 when 2 then '女' 5 else '空的' 6 end 7 )性别 ...

  6. C++标准模板库(STL)之Priority_Queue

    1.Priority_Queue的常用用法 priority_queue:优先队列,底层是使用堆来实现的.优先队列中,队首元素一定是当前队列中优先级最高的哪一个. a (优先级3),b(优先级4),c ...

  7. 略解TCP乱序和丢包

    在使用基于TCP实现的各种组件的时候,我们经常会处理数据包.这数据包说来奇怪,从来不会丢失,也不会乱序,只会产生粘包.底层的机制是如何实现的呢?进来我们就来用简洁易懂的文字描述清楚. 在TCP数据包设 ...

  8. XML文档的简易增删查改

    dom4j解析一.利用dom4j操作元素节点 1.查询第一本书的书名,并输出到控制台 2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元 3.删除第二本书的作者节点二.利用d ...

  9. ldap 导出、导入ldif数据

    ldap 导出.导入ldif数据有如下方式: 1.dsadm(速度快,需要停止ldap实例) 2.dsconf(速度慢,需要保持ldap实例开启) windows导出.导入需要加上参数--unsecu ...

  10. Ceres Solver 入门稍微多一点

    其实ceres solver用了挺多的,可能是入门不精,有时候感觉感觉不理解代码上是怎么实现的,这次就通过ceres的官网仔细看了一些介绍,感觉对cpp了解更好了一些. 跟g2o的比较的话,感觉cer ...