《跟孩子学Python》

时间:2023-03-09 22:18:26
《跟孩子学Python》

1:Python对象之间的赋值是内容赋值而不是引用赋值

a = ["aaa","bbb","ccc"]
b = a
print a
print b a = ["ddd"] print a
print b >>>>>>>>>>
['aaa', 'bbb', 'ccc']
['aaa', 'bbb', 'ccc']
['ddd']
['aaa', 'bbb', 'ccc']

也就是说,赋值之后,二者内容相互独立。

2:Python的自增自减

Python没有 ++ -- 这两个符号,但可以用 +=  -=  来进行加减运算的简写。

3:E记数法

Python中会把  10的n次方  表示为  en

如: 2.72e5 = 2.72x10^5

4:列表操作

增加一个:append(一个元素)

增加多个:extend([多个元素])

插入一个:insert(下标,元素)

删除具体元素:remove(具体元素)

根据索引删除:del list[下标]

弹出并返回元素:pop()弹出最后一个元素、pop(i)弹出下标i对应元素。

检查元素是否存在: 元素 in list

查找元素对应索引:list.index(元素)

列表排序:list.sort()【改变原列表】、newList = sorted(list)【不改变原列表】

列表倒转:list.reverse()、list.sort(reverse=True)

列表切片与赋值的区别:

one = ["Tom","James","Sara","Fred"]
new = one[:]
new.sort()
print "slice one:",one
print "slice new:",new two = ["Tom","James","Sara","Fred"]
newTwo = two
newTwo.sort()
print "copy two:",two
print "copy new:",newTwo ===================
slice one: ['Tom', 'James', 'Sara', 'Fred'] #切片赋值的话,改变new不会影响原来的数组
slice new: ['Fred', 'James', 'Sara', 'Tom']
copy two: ['Fred', 'James', 'Sara', 'Tom'] #直接赋值的话,改变newTwo会影响原来的数组
copy new: ['Fred', 'James', 'Sara', 'Tom']

5:全局变量

全局变量(相当于静态变量):使用global修饰(global相当于static),整个程序文件中该名的变量唯一,无论在哪都可以访问、修改同一个变量。

#coding = utf-8
outer_var = 0 def func():
print outer_var
global outer_var #将outer_var声明为global全局变量
outer_var = 1000
print outer_var func()
print outer_var #===========
0
1000
1000

只有global修饰的是全局变量,可以在函数内外访问、修改。用变量名声明的变量,在哪声明,作用域就在哪——函数内定义的变量就是在函数内访问,函数外定义的就只能在函数外的同级代码行中访问,函数内不能访问到!

#coding = utf-8

outer_var = 0

def func():
print outer_var #此句报错:访问不到该变量 outer_var = 1000 #此处是定义了一个同名的局部变量,并不是修改了函数外变量
print outer_var func()
print outer_var #这里访问的是外部定义的变量

6:字符串操作

分解字符串:list = str.split(分割标记)

连接字符串

拼接:newStr = str1 + str2

使用连接符连接:newStr = 连接符.join(strList)  #把字符串列表strList连接起来,并且在每个字符串之间插入连接符。

strList = ["I","love","python","!"]
newStr = " ".join(strList) #使用空格作为连接符,把strList中的元素连接起来
print newStr #===========
I love python !

匹配字符串

开头、结尾匹配检索:startswith、endswith

包含检索:检索内容 in str

下标检索:pos = str.index("检索内容")

裁剪字符串

裁剪末尾内容:str.strip("裁剪内容")  #如果不输入内容,则裁剪字符串末尾的所有空格

大小写转换:str.lower()、str.upper()

7:使用print写入文件内容:  print >> file,"内容"

8:对象持久化

python的pickle模块提供了对象持久化的方法:

pickle.dump(对象,文件):把对象持久化到文件中。

obj = pickle.load(file):从文件中加载对象。

9: