变量名
区分大小写。尽量用字母或下划线开头,不要用数字开头。不要在中间加‘.’
赋值
赋值语句从右到左。按符号优先级走。
圆括号>指数操作>除,取余,乘法>加减
运算符
其他类比c。除了**,是平方的意思。
python特点
一切数据皆对象.对象包括方法。
一切变量都是对数据对象的一个引用,并没有存数据
python内部引用计数。sys.getrefcount(数据)。结合现象
不负责任地说,python的一切变量皆指针
常用数据类型
int
string
list列表
tuple元组
dict字典
前三个不可变,后三个可变
表观现象即改变变量值,其对应的id值是否改变(id(变量名)来查看变量id)
不可变,如string[1] = “a”不可以,但list[1] = “a”就可以。
字符串长度
如果直接len(字符串),输出ascii码长度。一个中文长度为3。如果转换成正常长度,有以下两种方法:
a = "哈哈"
print len(a)
#方法一
a = u"哈哈"
print len(a)
#方法二
g = a.decode('utf-8')
print len(g)
显示中文
#coding=utf-8
转义
#转义前
print "2333""
#转义后
#方法一
print "2333\""
#方法二
print r"2333""
在要转义的字符前面加\反斜杠,或者直接在前面加r。
字符串
规定输出范围:
a = "abcde"
a[x:z]
#输出从x到z项的数据
a[-3:]
#输出最后3项
a[:-3]
#输出除最后三项之外的字母
替换字符串:
#用replace函数,具体见help。
A = "abcdeb"
A.replace("b","a",1);
#用a替换A中的"b"字符串。并且只替换一次。
#用完如果想改变原先字符串的值,一定要重新赋值
#输出结果:aacdeb
拼接字符串:
不要直接相加,因为这样浪费空间
#可选的方法:
b = "im %s haha" % "ringo"
print b
#输出结果:im ringo haha
b = "im %s and i LOVE %s" % ("ringo","coding")
print b
im ringo and i LOVE coding
#%s,%d是占位符。数字可以强转字符,反之不能。
#还可以这样,用format
"im {who} and i LOVE {what}".format(who = "ringo",what = "coding")
#'im ringo and i LOVE coding'
#优秀方法:
#用join。"STRING".join(iterable)
#此中的iterable指可迭代,比如串,list都可迭代。结果直接用STRING隔开
a = "i"
b = "love"
c = "python"
join([a,b,c])
"".join([a,b,c])
#'ilovepython'
" ".join([a,b,c])
#'i love python'
查找子串:
a = "hello world"
num = a.find("world")
#返回值是该子串在a中的下标值。失败return -1
a[num:]
#输出num后的串
#help(a.find)
a.index("world")
#返回值是该子串在a中的下标值。失败抛出异常
文件的读写
d = open("a.txt","w");
#有rwa三种,参照c语言
d.write("hi.\nhi again")
d.close()
#open之后必须close,然后再以"r"open,才能读。
print d.readline()
#>>hi
print d.readline()
#>> hi again
print d.read(100)
#>>
#(empty)
d.seek(0)
#把文件指针移到开头
print d.read(100)
#hi
#second hi
还有一种读的方法:
"""
@getline
@getlines
@详细用法看help
"""
import linecache
a = linecache.getlines('b.txt')[0:4]
print a
#['2333\n', '233333\n', '2333333\n', '23333333\n']
print linecache.getline("b.txt",2)
#233333
多行注释
"""
@我是多行注释
@这是第一行
@这是第二行
"""