python-day1作业(感谢视频老师留的作业)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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作业(感谢视频老师留的作业)的主要内容,如果未能解决你的问题,请参考以下文章