python-day1作业(感谢视频老师留的作业)
__author__ = 'zht'
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
#努力学习每一天
'''
#尝试次数计数器
tries = 0
#定义尝试用户 计数器
tries_user = 0
#定义用户锁定标记
account_flag = 0
'''
第一层循环where 计数器小于3执行
'''
while tries <3:
#打开user_list文件和user_lock文件,
user_list = open('user_list.txt','r')
user_lock = open('user_lock.txt','r')
#要求用户输入用户名和密码
user_name = input("请输入用户名:")
user_pass = input("请输入密码:")
#for _user_lock 循环读取user_lock文件,
for _user_lock in user_lock.readlines():
# _user_block= _user_lock循环的值.strip()默认去除行首和行位空格split()以当前行空格为分割下标
_user_block = _user_lock.strip().split()
#if判断 如果输入的用户名user_name=_user_block
if user_name == _user_block[0]:
#打印这个用户账户已经被锁定。
print("这个账号已经被锁定")
#用户锁定标记等于1
account_flag = 1
#计数器等于4,
tries = 4
#break跳出循环,传值where,tries = 4停止循环
break
#if判断用户锁定标记如果等于0就往下执行
if account_flag == 0:
#for循环 _user_name读取user_list.readlines()用户文件
for _user_name in user_list.readlines():
#_user等于_user_name.strip().split()循环出的当前行首尾去除空格,并以当前行里的空格区分下标
_user = _user_name.strip().split()
#if判断用户输入user_name如果等于循环出的行_user[0]下标1,输入的密码user_pass并且等于_user[1]继续执行
if user_name == _user[0] and user_pass == _user[1]:
#提示登录成功。
print("欢迎{name}登录业务系统终端".format(name=user_name))
# print("welcome to login...,",user_name)
#计数器等于4符合条件,break跳出循环,传值where,tries = 4停止循环
tries = 4
break
#或者 输入的用户名正确,并且密码不正确,
elif user_name == _user[0] and user_pass != _user[1]:
#提示您输入的密码错误。
print("您输入的用户名或密码错误!")
#尝试用户计数器加1
tries_user +=1
#跳出本次循环
break
else:
#否则不符合以上条件的提示您输入的用户或者密码错误
print("您输入的用户名或密码错误!")
#尝试用户计数器+1
tries +=1
#if判断,如果计数器小于4
if tries < 4:
#提示你还剩下几次机会,3-去用户计数的数字。等于结果
print("u have",3-tries,"chances left!\n")
#if判断如果洪湖尝试次数等于3,
if tries_user == 3:
#打开用户锁定文件,追加
user_lock = open('user_list.txt','a')
#把用户输入的用户名追加到锁定文件并且换行。
user_lock.write(user_name+"\n")
#关闭锁定文件
user_lock.close()
#提示你已经尝试多次,账户以及被锁定
print("lots of atempts, ur account has been locked.")
#关闭用户文件
user_list.close()
#关闭用户锁定文件。
user_lock.close()
'''
1、运行程序,首先程序会提示用户输入用户名和密码,输入完后!会到user_lock查看有没有刚才书输入的用户名,如果有,
会提示“这个账号已经被锁定”如果没有继续往下执行。
2、这时候,程序执行读取user_list这个文件,看看里面有没有和用户输入相匹配的用户和密码。如果有,欢迎登陆,
如果用户名或者密码不对,提示用户输入的用户名或者密码错误。如果什么都不输入,或者用户名错误,也会提示用户名或密码错误。
3、登陆程序会给3次机会。如果登陆用户名不正确或者密码不正确,会把这个用户添加到user_lock这个里面。下次登陆
会被提示已多订。
'''
'''#本脚本涉及的几个关键知识:
#################################################################################
1、Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)
以下实例展示了strip()函数的使用方法:
#!/usr/bin/python3 str = "*****this is string example....wow!!!*****"
print (str.strip( '*' ))
以上实例输出结果如下:
this is string example....wow!!!
#################################################################################
2、split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
语法
split()方法语法:
str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。
返回值
返回分割后的字符串列表。
实例
以下实例展示了split()函数的使用方法:
#!/usr/bin/python3 str = "this is string example....wow!!!"
print (str.split( ))
print (str.split('i',1))
print (str.split('w'))
以上实例输出结果如下:
['this', 'is', 'string', 'example....wow!!!']
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']
#################################################################################
3、python文件打开
打开和关闭文件
到现在为止,已经学习了读取和写入标准输入和输出。现在,我们学习如何使用文件实际数据。 Python提供了基本的功能和必要的默认操作文件的方法。您可以使用一个 file 对象来做大部分的文件操作。 open 函数 在读取或写入一个文件之前,你必须使用 Python 内置open()函数来打开它。 该函数创建一个文件对象,这将被用来调用与它相关的其他支持方式。 语法 file object = open(file_name [, access_mode][, buffering])
下面是参数的详细信息:
file_name: 文件名(file_name )参数是包含您要访问的文件名的字符串值。 access_mode: access_mode指定该文件已被打开,即读,写,追加等方式。可能值的完整列表,在表中如下。 这是可选的参数,默认文件访问模式是读(r)。
buffering: 如果该缓冲值被设置为0,则表示不使用缓冲。如果该缓冲值是1,则在访问一个文件进行时行缓冲。 如果指定缓冲值大于1的整数,缓冲使用所指示的缓冲器大小进行。如果是负数,缓冲区大小是系统默认的(默认行为)。 这里是打开一个文件不同模式的列表 -
模式 描述
r 打开一个文件为只读。文件指针被放置在文件的开头。这是默认模式。
rb 打开一个文件只能以二进制格式读取。文件指针被放置在文件的开头。这是默认模式。
r+ 打开用于读和写文件。文件指针置于该文件的开头。
rb+ 打开用于读取和写入二进制格式的文件。文件指针置于该文件的开头。
w 打开一个文件只写。如果文件存在覆盖该文件。如果该文件不存在,则创建写入新文件。
wb 打开一个文件只能以二进制格式写入。如果文件存在覆盖该文件。如果该文件不存在,则创建写入新文件。
w+ 打开文件为写入和读取模式。如果文件存在覆盖现有文件。如果该文件不存在,创建用于读写操作的新文件。
wb+ 打开用于以二进制格式写入和读出文件。如果文件存在覆盖现有文件。如果该文件不存在,创建用于读写操作的新文件。
a 打开用于追加的文件。文件指针是在文件是否存在该文件的末尾。也就是说,该文件是在追加模式。如果该文件不存在,它会创建一个用于写入的新文件。
ab 打开文件用于二进制格式追加。文件指针是在文件是否存在该文件的末尾。也就是说,文件是在追加模式。 如果该文件不存在,它会创建一个用于写入的新文件。
a+ 打开文件为追加和读取方式。文件指针是在文件是否存在该文件的末尾。该文件以追加模式打开。如果该文件不存在,它将创建用于读写操作的新文件。
ab+ 打开一个文件以附加和二进制格式读取模式。如果该文件存在文件指针在该文件的末尾。该文件以追加模式打开。如果该文件不存在,它将创建读写操作的新文件。
file 对象属性 一旦文件被打开,则就会有一个文件对象,你就可以得到有关该文件的各种信息。 这里是一个文件对象相关的所有属性的列表:
属性 描述
file.closed
如果文件被关闭返回true,否则为false
file.mode
返回文件打开访问模式
file.name
返回文件名
注:软空间属性未在Python3.x中支持
示例 #!/usr/bin/python3 # Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name) # Close opened file
fo.close()
#################################################################################
4、还有一种format
比如定义了这样一个变量 user_name = input("请输入用户名:")
输出的时候可以用 { 这里面可以随便输入 } 最后前面中括号里面输入的要等于之前上面的变量名。 这里format前面有个点哦。 .format(name=user_name)
例子:
print("欢迎{name}登录业务系统终端".format(name=user_name)) '''
python-day1作业(感谢视频老师留的作业)的更多相关文章
- python day1 python介绍,安装及运算符
目录 python day1 1. 不同编程语言的对比 2. 为什么学python? 3. python的种类 4. python的安装(windows系统) 5. 导入模块或包 6. pyc文件 7 ...
- python第六十八天--第十二周作业
主题: 需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下讲师视图 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节上课纪录对应多条 ...
- python-haproxy作业讲解视频总结
刚看完瞎驴的haproxy配置文件的作业讲解视频: 总结: 1.用户输入的字符串数据类型转换其他数据类型 1.1 eval('用户输入的数据') 1.2 json.loads('用户输入的数据') 2 ...
- python打印表格式数据,留出正确的空格和段落星号或注释
python打印表格式数据,留出正确的空格,格式化打出 代码如下: def printPicnic(itemsDict,leftWidth,rightWidth): print('PICNIC ITE ...
- Python Flask搭建一个视频网站实战视频教程
点击了解更多Python课程>>> Python Flask搭建一个视频网站实战视频教程 第1章 课程介绍 第2章 预备开发环境 第3章 项目分析.建立目录及模型规划 第4章 建立前 ...
- Python flask 构建微电影视频网站☝☝☝
Python flask 构建微电影视频网站☝☝☝ 1.安装数据库连接依赖包 pip install flask-sqlalchemy 2.创建movie数据库 在CentOS虚拟机,进入MaridD ...
- Python flask 构建微电影视频网站✍✍✍
Python flask 构建微电影视频网站 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...
- 基于股票大数据分析的Python入门实战(视频教学版)的精彩插图汇总
在我写的这本书,<基于股票大数据分析的Python入门实战(视频教学版)>里,用能吸引人的股票案例,带领大家入门Python的语法,数据分析和机器学习. 京东链接是这个:https://i ...
- Python OpenCV图片转视频 工具贴(三)
Python OpenCV图片转视频 粘贴即用,注意使用时最好把自己的文件按照数字顺序命名.按照引导输入操作. # 一键傻瓜式引导图片串成视频 # 注意使用前最好把文件命名为数字顺序格式 import ...
随机推荐
- Synchronized之二:synchronized的实现原理
Java提供了synchronized关键字来支持内在锁.Synchronized关键字可以放在方法的前面.对象的前面.类的前面. 当线程调用同步方法时,它自动获得这个方法所在对象的内在锁,并且方法返 ...
- Angular 2 ViewChild & ViewChildren
一.ViewChild ViewChild 是属性装饰器,用来从模板视图中获取匹配的元素.视图查询在 ngAfterViewInit 钩子函数调用前完成,因此在 ngAfterViewInit 钩子函 ...
- 当在hive中show table …
当在hive中show table 时如果报以下错时 FAILED: Error in metadata: javax.jdo.JDODataStoreException: Error(s) were ...
- NFS原理详解
NFS原理详解 摘自:http://atong.blog.51cto.com/2393905/1343950 2013-12-23 12:17:31 标签:linux NFS nfs原理详解 nfs搭 ...
- Java集合Set、Map、HashSet、HashMap、TreeSet、TreeMap等
1.Set和Map的关系: Set代表一种集合元素无序.不可重复的集合,Map代表一种由多个key-value对组成的集合. Set的集合继承体系: Map关系集合 Map集合的key特征:所有key ...
- deb包制作
制作deb包 方法一:checkinstall checkinstall的原理就是将make install的内容放到一个临时目录然后打包,只要能执行make install就能创建deb包,如果代码 ...
- git从远程仓库gitLab上拉取指定分支到本地仓库
例如:将gitLab 上的dev分支拉取到本地 1>与远程仓库建立连接:git remote add origin XXXXX.git 2>使用git branch 查看本地是否具有dev ...
- Android权限之三共享UID和签名
http://blog.csdn.net/a345017062/article/details/6236263 共享UID 安装在设备中的每一个Android包文件(.apk)都会被分配到一个属于自己 ...
- 关于fiddler抓取HTTPS请求443的问题
1.环境:fiddler4.IOS10.3以上 2.需求:使用fiddler抓取IOS上的https请求 3.解决方案 步骤一:设置fiddler 步骤二:手机端安装证书 手机设置代理,打开手机浏览器 ...
- Nginx 最新版源码编译安装 包含常用模块作用及所需依赖
第一部分 Nginx最新版源码编译安装 1. 使用的模块 模块1:http_rewrite_module 基于正则匹配来实现重定向.依赖PCRE库,见依赖1 模块2:http_gzip_module ...