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()
人生苦短,及时行乐!
pthon入门之strip()和split()函数简单区分的更多相关文章
- python的strip和split函数
这两个函数都是string的类函数 1.strip是去掉字符串头尾的特定字符,分三个 aa=' bb=aa.rstrip(') cc=aa.lstrip(') dd=aa.strip(') print ...
- splice()、slice()、split()函数的区分
1.slice(数组) 用法:array.slice(start,end) 解释:该方法是对数组进行部分截取,并返回一个数组副本:参数start是截取的开始数组索引,end参数等于你要取的最后一个字符 ...
- strip()函数和 split()函数
一:python strip()函数介绍 函数原型:strip可以删除字符串的某些字符 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 ...
- python strip() 函数和 split() 函数的详解及实例
strip是删除的意思:split则是分割的意思.strip可以删除字符串的某些字符,split则是根据规定的字符将字符串进行分割. 1.Python strip()函数 介绍 函数原型 声明:s为字 ...
- Python进阶---python strip() split()函数实战(转)
先看一个例子: >>> ipaddr = 10.122.19.10 File "", line 1 ipaddr = 10.122.19.10 ^ SyntaxE ...
- 数据结构和算法(Golang实现)(2)简单入门Golang-包、变量和函数
包.变量和函数 一.举个例子 现在我们来建立一个完整的程序main.go: // Golang程序入口的包名必须为 main package main // import "golang&q ...
- 【SQL】sql版Split函数。用于拆分字符串为单列表格
功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移除空格子串和重复项.市面上类似的函数不算少,但大多都是在循环 ...
- js使用split函数按照多个字符对字符串进行分割的方法
这篇文章主要介绍了js使用split函数按照多个字符对字符串进行分割的方法,实例分析了split函数的使用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了js使用split函数按照多个 ...
- Python中split()函数的用法及实际使用示例
Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...
随机推荐
- P1996 约瑟夫问题
P1996 约瑟夫问题 广度优先搜索 我竟然寄几做对了 这个题用到了队列 下面详细解释: 我的代码: #include<iostream> #include<cstdio> # ...
- laravel中empty(),is_null() 以及isEmpty()
PHP中 empty() empty() 函数用于检查一个变量是否为空. if(empty($result->order)){ //操作 } is_null() is_null() 函数用于检测 ...
- Linux 查看系统负载
查看系统负 # 查看系统负载 命令:uptime :: up :, users, load average: 0.00, 0.00, 0.00 注:load average: 0.00, 0.00, ...
- Python爬虫——你们要的王者荣耀高清图
曾经144区的王者 学了计算机后 头发逐渐从李白变成了达摩 秀发有何用,变秃亦变强 (emmm徒弟说李白比达摩强,变秃不一定变强) 前言 前几天开了农药的安装包,发现农药是.Net实现的游戏 虽然游戏 ...
- [C++ Primer Plus] 第5章、循环和关系表达式(二)课后习题
1.编写一个要求用户输入两个整数的程序,将程序将计算并输出这两个整数之间(包括这两个整数)所有的整数的和.这里假设先输入较小的整数,例如如果用户输入的是2和9,则程序将指出2-9之间所有整数的和为44 ...
- webpack 几个基本打包扩展项的安装命令
网速比较慢的童鞋,装包时请准备好花生瓜子 webpack 本身只能打包 JavaScript 模块,但是它可以通过拓展打包比如静态资源文件.less.sass.typescript 等,还可以通过 b ...
- 王之泰201771010131《面向对象程序设计(java)》第四周学习总结
王之泰201771010131<面向对象程序设计(java)>第四周学习总结 第一部分:理论知识学习部分 第四章 1.类与对象的基础概念. a.类(class)是构造对象的模板或蓝图.由类 ...
- centos6.5下安装tomcat
linux在安装tomcat之前必须已安装jdk 已下载好tomcat 拖到centos系统的桌面 现在在桌面目录下 mv apache-tomcat-8.5.39.tar.gz /usr/local ...
- BluetoothGattCallback
/** * 用于实现 BluetoothGatt 的回调 */public abstract class BluetoothGattCallback { /** * GATT客户端连接或断开到远程的时 ...
- xlwt 写sheet xls 文件
import xlwtworkbook = xlwt.Workbook()#创建bookworksheet = workbook.add_sheet('My Sheet') #添加sheet#背景色的 ...