同样只列出一些特别值得注意,以及和java/c/c++有瞩目不同的地方
1.基本类型:元组和列表
- tuple 元组不可变 mytuple=(123,) //mytuple=(123)时会被认成int,很坑。
- List 列表可变 mylist=[12,3,4,’a’,(123,345,678),b]
- mylist[-2][-1] = ‘a’ 是不被允许的操作 但是如果mytuple=(12,3,4,’a’,[123,345,678],b),mytuple[-2][-1]=’a’ 是被允许的操作
- 对列表截取变量:mylist=mylist[1:] 砍头 ** mylist=mylist[:-1] 去尾
2.有关变量的命名和类型
1)比如常用的++a,在pyhton是正的正a,和a++,++a,a=a+1没关系
2)python中相同数据的赋值,会共享同一片地址空间
import sys
sys.getrefcount(value)可以查引用计数,用del可以减1引用计数,至0释放。
可以用id(value)查看地址来验证
3.字符串
str=’123456’
str[1] >>2
str[1:4] >>2345
str[::-1] >>’654321’ /从-1开始输出
4.一些运算规则
python2:除法向复杂的数据类型靠拢 // 5 / 2 和 5.0 / 2是不一样的
python3:除法一律精确到浮点数
其他算数返回值取决于运算数字之中最复杂的类型
anders:
// 向下取整
round(a,b)b是精度,四舍五入公式。
**幂值运算 achtung! ‘^’在python是位运算亦或的标识符
swap
a=1
b=2
a=a^b //a=3
b=b^a //0011 ^ 0010 = 0001
a=a^b //0011 ^ 0001 = 0010
还有一点非常不一样,就是在pascal等语言里not(取反)是一元运算(逻辑)符,所以一般优先级都很高,然而在python里面是优先级最低的,和and or一个优先级。谨记。。
5.loop
for循环
for var in mylist
print var