疑问一:
(2018-03-27)今天学习python中的字典,做练习题的时候,出现了这个错误,如下:
检查过程:
1. 先检查代码,并没有发现有什么错误。
2. 检查标点符号,是否有中英文输错,发现也都是正确的。
3. 最后实在看不出什么错误,把错误提示百度了一下,才发现了原来是缩进问题。
if语句不应该缩进
总结:
刚开始了解python的时候,看网上教程或者是电子书都有提示到python缩进格式的严格,现在遇到这个问题,记录起来,提醒自己。
疑问二:
(2018-03-27)依然是上面的练习题:
检查过程:
1. 发生疑问一的时候,一开始以为代码问题,所以就把value这个变量取掉,改用了keys()这个方法,后面发现是缩进问题,修改了缩进,把变量value改回来了,就忘记改回items()方法
2. 查看了前面的运行结果,发现并没有出现这个问题,再一次检查了代码,才发现方法用错,修改方法之后就正常了。
总结:
虽然把修改过来了,预期结果也如自己想要的输出,但是使用了这个keys()这个方法,为什么会把字典中的keys拆分呢?现在还不清楚,后续了解清楚,将回来解决这个问题。留下这个问题继续学习。
备注:(后续修改)
当然,如果有了解这个的同学也可以指教指教,欢迎留言,谢谢!
疑问三:
(2018-3-27)使用set()函数时,原计划是想把调查表中的用户喜欢的语言不重复的打印出来,得到了圈红框中的结果,跟预期想要的带的结果不一样。
检查过程:
1. 首先先通过结果了解一下,输出的结果是字符集,乱序,通过java这个结果返回了jav,说明确实有去重了。
2. 接下来研究为什么是字符集呢,一开始并没有对set()函数有太多的了解,仅以为是去重功能,所以上网搜索了相关资料,了解到了set()函数的其它用法,网上有很多资料,这里着重解释一下为什么是字符集(当然这是我自己的理解,不一定正确,仅供参考)。
3. 用for语句循环了字典中的值,先不分析set(),只是打印value,那么就是把字典中的每一个值打印出来。
4. 借用别人总结的描述:
set()创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
使用set()对得到的字典中的每一个值(字符串)创建成一个无序的不重复的元素集。
5. 接下来分析,为什么set(invertigator.value()),能得到我想要的结果,invertigator.value()先得到了字典中的语言列表,然后通过set()得到一个去重的集合,最后通过for遍历展示出来。
总结:
使用各种函数,可以事先了解,对于错误可以慢慢分析。
参考:
百度知道
python编程:从入门到实践(1)