Python在列表之间移动元素(67)

for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中元素。要在遍历列表的同时对其进行修改,可使用while循环。通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。

假设有一个列表,其中包含新注册但还未验证的网站用户;验证这些用户后,如何将他们移到另一个已验证用户列表中呢?一种办法是使用一个while循环,在验证用户的同时将其从未验证用户列表中提取出来,再将其加入到另一个已验证用户列表中。

大大的图

图片发自简书App

我的图

图片发自简书App

我们首先创建了一个未验证用户列表unconfirmed_users,其中包含丽丽、小明和大胖,还创建了一个空列表confirmed_users,用于存储已验证的用户。while循环将不断运行,直到列表unconfirmed_users变成空的。在这个循环中,函数pop()以每次一个的方式从列表unconfirmed_users末尾删除未验证的用户,并把删除值赋值到变量current_user。将验证用户以首字母大写的形式打印出来。把变量current_user值以append()方式加入到列表confirmed_users末尾。

完善了已验证用户列表confirmed_users之后,用for循环把里面的值打印出来。

这里面有一个有意思的事情是title(),upper(),lower()这样的函数奈何不了汉字。汉字不像字母,没有大小写。比如,把title()改成lower()结果还是不变

图片发自简书App

用户验证以后就是用户登录,简化起见,只使用用户名登录。用户输入用户名,用if语句与列表中已验证的用户名进行比较,如果一致,则欢迎用户登录。如果不一致,请用户重新检查用户名

图片发自简书App

图片发自简书App

好像随机输入的中文变量不能与列表中元素进行比较,这个程序无论我怎么输入中文,都执行的else语句。而且我试了一下让程序自行输出中文,会乱码

图片发自简书App

但是如果把整个程序改成英文的,就那非常通畅的执行

图片发自简书App
图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容