Python练习题详解之字典的内置方法(小白友好)

Python练习题详解之字典的内置方法(小白友好)

你好!欢迎来到Python练习题详解系列。为了让小白(也就是我本人)更好的理解代码,打好编程基础,我决定仔细地解说一些练习题。欢迎阅读!

首先,我们来看看字典的各种内置方法~

1. fromkeys()

fromkeys()方法用于创建并返回一个新的字典,它有两个参数:第一个参数是字典的键;第二个参数是可选的,是传入键对应的值。如果不能提供,那么默认是None。

如图,fromkeys()方法并不会把'one', 'two', 'three'分别赋值给 1、2 和 3,因为fromkeys()把('one', 'two', 'three')当成一个值了。

2. keys()、values()、items()

keys()用于返回字典中的键 key

values()用于返回字典中的所有值 value

items()用于返回字典中的所有的键和值 key + value

举个栗子:

3. get(),clear()

get()方法提供了更宽松的方式去访问字典项获取对应的值,第一个参数是一个key,当key不存在的时候,get()方法并不会报错,只是默默地返回了一个None,表示啥也没找到, 如果希望找不到数据时返回指定的值,那么可以在第二个参数设置对应的默认返回值:

如果不知道一个键是否在字典中,也可以使用成员资格操作符(in或not in)来判断。

如果需要清空一个字典,则使用clear()方法:

4. copy()

copy和赋值不一样,copy是一个浅拷贝,只拷贝表面的内容,而赋值是完完全全一样的。如下面例子所示:

5. pop()和popitem()

pop()是给定键弹出对应的值,而popitem()是弹出一个随机的项,没有顺序,因为字典是没有顺序的。

弹出来之后原来字典里的项就会消失啦。

如图:

6. setdefault()

这个关键字和get() 有点像,但是如果他找不到对应的key,不像gets一样返回一个none,而是自动把它添加进去。

7.update()

update可以用来替换旧的value,如图所示:

题目:

又到了紧张刺激的动手环节!

这次我们的要求是用函数实现一个登录的系统,run出来的结果如下:

part1:

part2:

part3:

思路:如果要用到函数的形式来写,那么我们可以把一个指令作为一个函数,初步构想应该是有3个函数,最下面的可以调用上面两个函数。

那么最下面的函数应该是print出前面的三行字,分别是新建用户,登录账号和退出程序。在最下面的函数中,让用户输入指令,如果指令为1,调用1对应的函数,如果为2,调用2对应的函数,如果为3,可以直接结束程序。

为什么要把print三行字的函数放在最后呢,因为函数调用的过程是从下往上寻找,如果交换了位置,就会报错啦。

那么现在来到了我们的前面两个函数,第一个我们就做一个新建账户的函数,在这个函数中,我们首先用成员资格操作符来判断是否有重复的用户名,语法为:如果用户输入的用户名 in 我们的字典,那么我们要说,这个用户名已经被注册了。如果没有重复的,那么我们就让用户输入密码,然后把这个用户名和密码塞进我们的字典里面。可以用到我们的set default语法,活学活用啦~

第二个函数呢,我们来做一个登录函数,

当用户输入的用户名在我们的字典里(又用到成员资格操作符啦),我们就让用户输入密码。然后我们开始判断密码正不正确,怎么判断呢?我们看看这个password 是不是等于 字典.get(用户名),如果等于,那就说登录成功,如果不等于,那就要重新输入密码啦。

而当用户名不在字典里,我们就让用户重新输入用户名,重新开始判断

所以这里会用到分支和循环~会是一个很有趣的过程。

需要注意的是,如果在一个函数里想要结束函数,虽然后面还有代码但是你不想再继续运行,这时你就可以直接用 return这条语句来结束函数。

答案:

晚安~~ 小羊小兔也该休息啦~ 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值