1.1 数字
+,-,*,/与其他语言一样,没什么好说的.不过python也有自己的一些特性,例如:
‘**’:计算幂乘方;
‘//’:a//b=int(a/b),即除法取整
‘%’:取模运算
需要注意的是,在python中变量是不需要类型声明的,python解释器会自动根据上下文,解析出变量的类型,不过变量定义的时候必须赋初值,例如:
>>>a=[]#[]代表null,默认初值
有意思的是,在python中存在着很多的系统内置变量,这些变量由解释器维护,我们可以使用这些变量来帮助作业.
例如,’‘:下划线变量.在交互模式下,’‘中存放最近一个表达式的值
>>>a=10/2
>>>b=a+2
>>>a*b
>>>35
>>>b+_(_=35)
>>>42
注意’‘变量对用户是只读的,如果自己又定义了一个’‘变量–解释器会创建一个同名的局部变量,它屏蔽了系统内置变量的魔术效果.
1.2 字符串
1) python中没有单一字符的说法,解释器会将其看做是长度为1的字符串变量.对于字符串的表达,需要注意特殊字符需要转义字符’\’才能使用,例如:”\”Yes\”,he said.”.一些常用的转义字符有:\t,\n等.
2) 单引号”和双引号”“的注意点,当字符串内部出现了单引号,那么外部引号使用双引号;当内部出现了双引号,那么外部引号使用单引号.当然如果你一定要用相同的引号也是可以的,那么内部的引号需要使用转义字符即可.例如:
>>>a='"Yes",he said.' #正确
>>>a="'Yes',he said." #正确
>>>a='\'Yes\',he said.' #正确
>>>a="\'Yes\',he said." #正确
3) 字符串中出现转义字符,如果不想对字符串做修改,又不影响其使用的话,可以通过使用原始字符串,即在第一个引号前面加’r’,例如:
>>>a='c:\home\name.txt' #错误 \n字符会被解释器当做转义字符处理
>>>a='c:\home\\name.txt'#对\n中的\进行转义,不过这种写法听不伦不类的,建议'c:\\home\\name.txt'
>>>a=r'c:\home\name.txt' #推荐写法
4) 字符串分成多行.使用”’…”’或者”“”…”“”.行尾换行符会被自动包含到字符串中,可以在行尾加上’\’来避免这种行为.在python中’\’作为行结尾的连续字符串,表示下一行在逻辑上本行的后续内容.例如:
>>>print("""\
I am
lv yang
""")
5) 和+在字符串中的使用.表示对该字符串重复若干次,+代表拼接.例如:
>>>a=3*'lv'
>>>a
>>>'lvlvlv'
>>>b=a+' yang'
>>>b
>>>'lvlvlv yang'
6) 字符串切片和索引.对于索引,有正索引,从0开始,也有负索引,从-1开始.-1代表最后一个字符,-2代表倒数第二个字符.以此类推.切片需要给出切片在原字符串中起始位置和终止位置的索引,例如[a,b],则返回s[a…b-1],很显然与java类似python的切片是左包含,右不包含的.在切片中’:’表示开始或者结束.由于python中字符串是不可改变,所以通过索引对字符串赋值是非法的.例如:
>>>a='lvyang'
>>>a[0]
>>>l
>>>a[-1]
>>>g
>>>a[0]='L' #Error
>>>a[0:2] #切片split
>>>'lv'
>>>a[:1]
>>>'l'
>>>a[1:]
>>>'vyang'
当索引值超过字符串自身长度是,解释器报错.但是当切片中索引过大时,解释器可以优雅地解决这个问题,默认为’:’,例如:
>>>a='lvyang'
>>>a[6] #Error
>>>a[3:7] #正确
>>>'ang'
内置函数len(),用来返回字符串的长度.
1.3 列表
python有几个常用的数据结果,分别是元组(tuple),列表(list),字典(dict).其中元组是不可改变的(immutable),列表和字典都是可以改变的.
1) 列表元素的类型可以不一样,甚至可以将一个列表作为元素,这样就可以像访问二维数组一样访问列表中元素.
2) 与字符串类似,列表也支持索引和切片,不同的是,列表的切片会返回一个新的列表.这意味着下面的切片操作返回列表一个新的(浅)拷贝副本.
>>>a=[1,2,3,4,5]
>>>a[:]
>>>[1,2,3,4,5]
其他关于列表的特性,基本已经熟悉,例如:+,append等,这些经常使用就很很熟了.
Tips:
print在python中是很重要的一个内置函数,里面也有很多的技巧,比如格式化输出等,这里提一点,默认情况下,print调用一次后都会输出一个\n换行,有时我们并不想换行,可以这样:
>>>print(...,end=',')
我测试了下,这种技巧貌似只能在python3.x中使用,2.x是不支持.
备注:本文中代码都是这python2.7环境下测试的.python3.x我没用不太清楚.