前情提要:
颱风都转弯不来的时刻,当然是继续开心码农学习日常了!
这次还是做基本练习中的串列、元组和字典方面的练习,但课本有给学习评量的题目,但是却没给解答啊......
所以只能自立自强,来一场作为新手特权的胡搞瞎搞吧...
学习评量的题目:
这次一共有两个,分别是:
1.使用串列['tom', 'mary', 'joe']建立元组,然后对应成绩元组,项目是85, 76和58,在显示学生、成绩总分和平均。
并让使用者输入学生姓名查询成绩。
2.将题目1.改用字典建立学习评量,将CH练习4.中的姓名为键,分数为值
既然得到题目了,那就进入小搞搞环节吧!
实作:
题目1.
lst1 = ['tom', 'mary', 'joe']t1 = tuple(lst1)t2 =(85, 76, 58)count1= str(input('请输入姓名:'))for i in t1: if i == count1: s = t1.index(count1) #print(t1[s]) print(t1[s], '的分数是: %d 分' % (t2[s]))
说明:
题目1.相对比较简单,就是设定变数后把题目要求的值给塞进去。
虽然应该有更快的一行完成(?),但目前继续回去打木人的我还不会......
然后算出输入的姓名在元组中的索引值,并当成参数呼叫回来。
执行结果:
至于题目2.,虽然有解出来但感觉似乎哪里怪怪的,总觉得应该有更好的解法...吧(?)
lst1 = ['tom', 'mary', 'joe']t1 = tuple(lst1)t2 =(85, 76, 58)s2 =len(t1)d1={t1[j]:t2[j] for j in range(s2)}print(d1)
说明:
基本上的程式码是和第一题大致一样,主要差别在下方加入字典d1的部分。
这边是先设一个s2变数取得t1的长度,主要的目的是为了取得写入字典时的迴圈执行的次数。
j 基本就是 i, 主要是取得索引值,不过因为再写的时候是直接沿用第一题的程式码,所以就改成j了!
执行结果:
题外话:
其实题目1有被我自己修改过。
原本课本上的是要输入学号来找学生姓名和成绩,但题目上并没有给学号啊......
虽然自己生也不是问题,但我选择无视...