开发者学堂课程【Python 入门 2020年版:字典的练习2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10317
字典的练习2
目录:
一、代码演示
二、代码讲解
一、代码演示
persons =[
{' name ':' zhangsan ',' age ':18},
{' name':' lisi ',' age ':20},
{'name ':' wangwu ',' age ':19},
{' name':' jerry ',' age ':21}
]
#让用户输入姓名,如果姓名已经存在,提示用户;如果姓名不存在,继续输入年龄,并存入列表里 name= input ("请输入您的姓名:")
for person in persons :
#if name in person :# in 运算符,如果直接用在字典上,是用来判断 key 是否存在,而不是 value
if person [' name ']== x :
print (‘您输入的名字存在')
break
else :
# print ('您输入的名字不存在')
#创建一个新的字典 new _ person
new _ person ={' name ': x }
y = int ( input ('请输入您的年龄:'))
new _ person [' age']= y
#把这个新的数据存储到 persons 列表里
persons . append ( new _ person )
print ('用户添加成功')
print(persons)
二、代码讲解
//让用户输入姓名,如果姓名已经存在,提示用户;如果姓名不存在,继续输入年龄,并存入列表里 ,进入列表,可以看到列表放的是字典,每个元素都是字典。
让用户输入姓名 input (请输入您的这个姓名)有了名字之后,接下来要做的工作,并不是直接让用户输入年龄。
//先判断用户名是否存在,比如现在用户输入 wangwu,如果存在的话,告诉用户已经存在的,再换个名字,必须要遍历 process,把每一个的名字都拿出来,
代码如下:
for person in persons
//在列表里边拿出所有元素一个个打印,除了 person。person 是遍历字典,输入 zahngsan,把每个都打印出来。
//Name in person,告诉用户:您输入的名字存在
//有问题, in运算符如果直接用在字典上,是用来判断 key 是否存在,而不是 value 。
//现在判断张三,是 value存在。
//正确的代码:
if person [' name ']== x :
print (‘您输入的名字存在')
//输入 zhangsan,告诉用户输入的名字存在,如果名字不存在,两种方法,一种是 break,一种是 for else。
代码如下
if person [' name ']== x :
print (‘您输入的名字存在')
break
else :
//输入 Jack是不存在。如果名字存在的话,告诉:您输入的名字已经存在,如果不存在请输入这个,您的这个性别,年龄。
//如果不存在,年龄二十九岁,数据中有 name 是 Jack,ID是29,接下来把它存到列表中,创建一个新的字典,把这个新字典添加到 persons 里。
//新添加的人名,应该有一个属性,它对应的值是 X的姓名,接下来,再输入这个年龄,假如没有输入年龄时,把新人的 age属性等于 y。如果用户名不存在,就说明是一个新人,创建一个 person,把名字给它设置进来,在接收到年龄属性,再把年龄设置进来,然后,把新的数据存储到 process 列表里。
//用户添加成功,逻辑就是先输入用户,判断是否存在,如果存在告诉存在,这个用户就失败了。
如果不存在的时候,在输入这个年龄,然后,再把创建一个新的字典,把姓名和年龄都添加进来,把它加到 process 里。
//运行列表,输入 zhangsan,没有被重新加进来,但是如果再来个 Jack,20岁,则输出全部。