空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
type 和 isinstance
isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
运算符
/ 实数,// 整除。
** 幂
x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
注:id() 函数用于获取对象内存地址。
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
字符串
字符串不能改变,向一个索引位置赋值,比如word[0] = 'm’会导致错误。
元组
元组与列表类似,但不可修改,但可以包含可变元素比如列表(修改列表元组会改变)、变量(修改变量元组不会改变)
pass
没有实际含义 占位符
迭代器、生成器
还没弄的太明白
函数:
函数必须先定义后调用,但函数调用函数不用遵循该法则
关于参数:
类型属于对象,变量是没有类型的
a=[1,2,3]
a="Runoob"
[1,2,3] 是 List 类型,“Runoob” 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是指向 List 类型对象,也可以是指向 String 类型对象。
其中strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
遍历
for k,v in dict.items():
enumerate()
待更新。。。。。