从零学习Python—基础知识(while与列表、字典)

Python publisher01 37℃ 0评论

昨天我们只是简单的讲了一下break和continue的用法和实例,有朋友私信我,说我变了:写的太小,不够看啊。

先谢谢这位朋友的捧场。一.因为这里我们是从零讲起,就要站在小白的角度,不可过于追求速度。二.今天要把列表和字典一块讲,它们的用法有相同之处,让大家对比着学习,印象深刻。昨天要一块讲了,我担心篇幅太长,会打击小白们的学习的信心。

言归正传,我们先来看看while与列表的用法:

# 将普通会员添加到超级会员
member = ['av','bv','cv']
super_members = []
while member:
zxc = member.pop()
super_members.append(zxc)
print(zxc)
print(super_members)

代码如图所示,这是一个将一般会员添加到超级会员的简单代码

解读:先创造两个列表,一个是一般会员,一个是超级会员(为空),这里while  member 指的是 member 中列表元素不为空的条件,执行下面的程序,由于会员信息还需要调用,不能彻底删除,所以用到pop.() 语句,将删除的列表元素保存在临时变量中,在将临时变量的值添加到超级会员的空列表中(这条代码不能掉,临时变量会被后面的值覆盖),这样就能将一般会员添加到超级会员中了。

如果将 print(zxc) 放在顶头,脱离 while 循环,但只会得到最后一个元素值,这就验证了我们之前的想法,即——临时变量会被不断的覆盖。 

但在绝大多数的情况下,我们都是要将特定的元素转移也可以叫删除,上个例子我们用到了pop(),那是因为元素我们还需要调用,下面我们再来看个例子,我们用到remove(),来彻底的删除元素,如图:

# while和remove()的用法
name = ['av','bv','cv','kj','hg']
while 'av' in name:
name.remove('av')
print(name)

有没有同学会有疑问:为什么我们不用 del 呢?

那是因为我们要做到指定删除,删除我们知道的元素,如果我们既知道元素所处在位置,又知道元素是什么,我们也可以用del 来进行删除。

这里我就不用del删除了,用法一样,大家自己摸索,其实大部分我们用的都是remove()和pop(),要删除什么我们大多时候都是知道的,但要知道它在列表中的位置却不常知道。

下在我们看看while和字典的一些简单用法,比如刚刚过去的暑假,老师要统计每个学生的成绩,我们就按照这个思路写一写:

#使用while写成绩单
transcript = {}
while True:
name = input('what is your name ')
point = input('how many marks did you get ')
transcript[name] = point
if input('To exit ? ') == 'exit':
break
print(transcript)

代码及结果如上图所示。

代码比较简单,先建一个空的字典,然后使用while语句,让其循环的执行下面的代码,分别输入姓名和分数,将分数保存在对应的值里面,再用if语句,看是否需要退出。整个代码的思路就是这样。

唯一美中不足的就是一个学生怎么只有一门学科,所以,这就要用到字典里面的字典了,我们就以两门学科为例,其它的都类似:

transcript = {}
while True:
name = input('what is your name ')
abcd = {}
transcript[name] = abcd
while True:
name_0 = input('which subject ')
point_0 = input('what is the score ')
abcd[name_0] = point_0
if input('To exit') == 'exit':
break
if input('To exit') == 'exit':
break
print(transcript)

代码和结果如上所示,思路和之前的思路一模一样,只是一层套一层,最终打印的结果就是我们想要的结果了。

写代码如同彻砖,没有下层基石,何来上层的炫丽。大多数人高估了现在,低估了未来,脚踏实地,不要为外界的浮燥扰乱了你现在学习的心。

你或许想:《去原作者写文章的地方

转载请注明:Python量化投资 » 从零学习Python—基础知识(while与列表、字典)

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址