pthon入门之strip()和split()函数简单区分

小白,分享记录学习新感悟

路飞的第一次作业写一个登录的程序,作业的升级需求中有个锁文件的需求,大致上如果用户数错了密码三次将用户写到黑名单上,下次登录锁定:

ok基本的要求写完,我们上代码

username=['seven','alex']
password=['','']
print('------welcome--------')
count=0 #读入文件
user_lock=[]
f=open('aaa_lock','r+')
f.seek(0) #光标移动到开头
for line in f.readlines():
# user_lock.append(line.strip()) #开始写了 line.split x改为 line.strip
user_lock=line.split()
print(user_lock) _username = input('username:') while count<3:
_password = input('password:')
print(user_lock)
print(_username)
if _username in user_lock:
print('用户被锁定')
break else:
if _username in username:
if _username=='seven'and _password=='':
print('-----登录成功-----')
break
if _username=='alex'and _password=='':
print('-----登录成功!-----')
break
else:
count += 1
count_remain=3-count
print('密码错误请重新输入,剩余机会',str(count_remain),'次')
if count==3:
print('账号已被锁定')
f=open('aaa_lock','a')
f.write(_username+'\n')
f.close()
else:
print('用户不存在')

代码还不够完善,见谅

第一次调试的时候发现了问题,无论我怎么锁定用户,其用户判断代码总是出错误,

#读入文件
user_lock=[]
f=open('aaa_lock','r+')
f.seek(0) #光标移动到开头
for line in f.readlines():
user_lock.append(line.strip()) #开始写了 line.split x改为 line.strip print(user_lock) #判断是否锁定的程序
_password = input('password:') if _username in user_lock:
print('用户被锁定')
break

然后我在判断用户是否被锁定下面打印了两个变量:

 _password = input('password:')
print(user_lock)
print(_username)

结果如下:

[['alex']]

'alex'

这显然是变量user_lock多了一个内列表,怎么回事呢?

我们看上面的文件操作

user_lock=[]
f=open('aaa_lock','r+')
f.seek(0)
for line in f.readlines():
user_lock.append(line.split()) #开始写了 line.split x改为 line.strip print(user_lock)

问题出现在

 user_lock.append(line.split())  
下面举出一个实例说明 split()和strip()对于字符的处理不同
print('用户不存在')
print('用户不存在'.split())
print('用户不存在'.strip())
用户不存在
['用户不存在']
用户不存在

我们看到split()是划分了到了一个小列表中去了,strip()是去掉了字符的左右空格,其还是一个字符串哦

之所以我会出现大列表套小列表的情况是因为我用了append(),它也是将一个个元素加入到一个新的当前列表中来,

下面我们改善一下。

#读入文件
user_lock=[]
f=open('aaa_lock','r+')
f.seek(0)
for line in f.readlines():
user_lock=line.split()
print(user_lock)

这次我们还用split(),但是把append去掉就可以啦!

也可以把split()替换成strip()--->user_lock=append(line.strip()

人生苦短,及时行乐!


上一篇:sieve的objective-c实现


下一篇:python join和split和strip用法