作者回复: 后面调用了+=1的数学运算,如果不赋值0,字典的值无法参与数学运算
作者回复: 集合是序列之一,它的特点就是无序且不重复,因为前面介绍了大量的基本数据类型和序列的操作,集合就没在视频里为大家演示,可以参考中文文档:http://www.pythondoc.com/pythontutorial3/datastructures.html#tut-sets
使用集合要注意一点,集合没有切片操作,如set_type[0] 会报TypeError: 'set' object does not support indexing 错误。
作者回复: elif 和 else 了解一下?
两个if是独立的语句,但是从程序片段来看,明显是希望他们有关联,不知道我猜的是否对哈
另外这段程序片段想做什么事情我并没有读懂,它的逻辑也需要再优化一下
作者回复: 是的,也有在线绘制思维导图的工具
作者回复: 次序不同必然执行结果不同,对于我们初学程序,可以通过print()打印中间过程来了解程序运行过程
作者回复: 很细心, 首先set 和 dict 一样属于映射关系, 另外set的特点就是“不按顺序存储”,这也是这种结构和序列最主要的区别,set带来的好处也很明显,要比序列读取的速度更快
作者回复: 你好,列表推导式的第一个i是变量名
作者回复: d_k = ('z','x','c','v')
d_v = range(1,5)
print(dict(zip(d_k,d_v)))
作者回复: 这个错误提示很明确,在+=两边出现了不同的类型 set 和 int 它不支持这种操作。那为什么无法支持呢?我们可以把x += 1拆解成 x=x+1 这样的形式,其实不支持的操作是加号“+”;
因为在python里,加号有两个功能,如果被用作算数运算符,就可以在整数、浮点数等数字之间做算术运算了,前提是两边都是数字。另一个用途是做字符串连接,当+两边类型不一致,计算机就不知道该如何处理了,所以报了错。
上面这条语句,看看是否需要对cz_num 用int() float()这类数学函数强制转换一下再进行运算呢?
作者回复: 第一个问题,是的从zodiac_name依次取值
第二个问题,在python中如果不对变量赋值是无法使用的,所以不存在初始值问题,但字典可以为空
作者回复: generator类型叫做生成器对象,这种对象要用list()取出全部内容,即list(name_array) 或者使用name_array.__next__()方法取出每一个元素,且仅能取出一次。具体请参考25节 函数的迭代器与生成器