python是动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错
而pyhton不需要指定变量类型,甚至还可以下面这样操作
a = 123 # a是整数
print(a)
a = 'ABC' # a变为字符串
print(a)
python的a/b有点类似于c语言的(double)a/(double)b,得到的就是浮点数,而如果要达到c语言的整数就是要有两个斜杠a//b
ord(‘a’)就是类似于c语言的(int)‘a’,chr(66)就类似于c语言的(char)66
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
python也可以用%d%s…看下面的例子应该就知道怎么使用了,和c语言不同是感觉他中间有一个%当作分隔符,有点类似于c语言printf中间的逗号
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
你可能猜到了,%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
这个数组感觉和c语言很多不同反而有点类似于vector
python有list和tuple,前者可以变,后者不可以变,所以注意主要学习前者
这个list可以放任何东西什么变量都可以放进去,很符合py是一个动态语言的特征
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
这个classmates就是一个list
len()可以或者这个list的长度
list的访问也是从0开始
>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):
File "" , line 1, in <module>
IndexError: list index out of range
当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1。
py还有一个神奇的功能是让我没想到的,居然可以访问负数即a[-1]代表访问最后一个元素,a[-2]代表倒数第二个元素,以此类推(果然智能
>>> classmates[-1]
'Tracy'
>>> classmates[-2]
'Bob'
>>> classmates[-3]
'Michael'
>>> classmates[-4]
Traceback (most recent call last):
File "" , line 1, in <module>
IndexError: list index out of range
list是一个可变的有序表,所以,可以往list中追加元素到末尾:有点像vector的push_back
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
也可以把元素插入到指定的位置,比如索引号为1的位置:有点像string的insert
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
要删除list末尾的元素,用pop()方法:有点像vector的pup_back
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
要删除指定位置的元素,用pop(i)方法,其中i是索引位置:有点像set的erase()
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:(还是这个最好
>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']
list里面的元素的数据类型也可以不同,比如:
>>> L = ['Apple', 123, True]
list元素也可以是另一个list,比如:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
要注意s只有4个元素,其中s[2]又是一个list,如果拆开写就更容易理解了:
>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']
要拿到’php’可以写p[1]或者s[2][1],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。
如果一个list中一个元素也没有,就是一个空的list,它的长度为0:
>>> L = []
>>> len(L)
0
值于tuple的话,他的定义是a=(1,2)这种小括号,而且不能改变
感觉实在没太大用就不在研究了