python_学习笔记0802

来源:互联网 发布:淘宝大学官方网站 编辑:程序博客网 时间:2024/05/21 22:59

今日是二零一五年八月二日

1. print函数在输出两个变量时,自带空格

print '100 + 200 =' , 100 + 200  结果为 100 + 200 = 300


2. python的注释符号为#


3. 在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

a = 123 # a是整数print aa = 'ABC' # a变为字符串print a
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):
int a = 123; // a是整数类型变量a = "ABC"; // 错误:不能把字符串赋给整型变量

4. 在python中,list变量功能类似于数组,是一个有序的集合

>>> classmates = ['Michael', 'Bob', 'Tracy']>>> classmates  #尝试输出list['Michael', 'Bob', 'Tracy']
len()函数获取list变量的长度

append()函数可以为list函数末尾添加元素

insert()函数可以在指定位置添加元素

pop()函数可以删除末尾的元素,pop(i)可以用于删除i位置元素

list里面的元素的数据类型也可以不同,比如:(同样可以包含list对象)

>>> L = ['Apple', 123, True]

5. tuple是“固定不变”的list,所谓固定不变,是tuple所指向的对象没有变为其他对象,但是对象本身的值是可以改变的。

# tuple.pyb = [2]t = ('a' , b )print t b[0] = 3print t
其输出的结果是

(a , [2] )(a , [3] )
但代码

# tuple.pyb = 2t = ('a' , b )print t b = 3print t

的输出结果是

(a , 2)(a , 2)

这里引用一段廖雪峰老师的解释(http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000)

来看一个“可变的”tuple:

>>> t = ('a', 'b', ['A', 'B'])>>> t[2][0] = 'X'>>> t[2][1] = 'Y'>>> t('a', 'b', ['X', 'Y'])

这个tuple定义的时候有3个元素,分别是'a''b'和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?

别急,我们先看看定义的时候tuple包含的3个元素:

tuple-0

当我们把list的元素'A''B'修改为'X''Y'后,tuple变为:

tuple-1

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。



0 0