Python基础之补充1

1.三元运算

三元运算(三目运算),是对简单的条件语句的缩写。

1
2
3
result = 1 if 条件 else 2
  
# 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2”赋值给result变量
1
2
3
########## 三 元 运 算 ############
name = "nick" if 1==1 else "jenny"
print(name)

 2.其他小知识点

1、for循环
用户按照顺序循环可迭代对象中的内容,
PS:break、continue
1
2
3
li = [11,22,33,44]
for item in li:
    print item
2、enumrate
为可迭代的对象添加序号
1
2
3
li = [11,22,33]
for k,v in enumerate(li, 1):
    print(k,v)
3、range和xrange
指定范围,生成指定的数字
1
2
3
4
5
6
7
8
print range(110)
# 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
 
print range(1102)
# 结果:[1, 3, 5, 7, 9]
 
print range(300-2)
# 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]  

 3.深浅拷贝

a、数字和字符串

对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import copy
#定义变量   数字、字符串
n1 = 123
#n1 = 'nick'
print(id(n1))
 
#赋值
n2 = n1
print(id(n2))
 
#浅拷贝
n3 = copy.copy(n1)
print(id(n3))
 
#深拷贝
n4 = copy.deepcopy(n1)
print(id(n4))

b、字典、元祖、列表

对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

1、赋值

创建一个变量,该变量指向原来内存地址

1
2
n1 = {"k1""nick""k2"123"k3": ["jenny"666]}
n2 = n1

2、浅拷贝

在内存中只额外创建第一层数据

1
2
3
4
import copy
   
n1 = {"k1""nick""k2"123"k3": ["jenny"666]}
n2 = copy.copy(n1)

3、深拷贝

在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

1
2
3
4
import copy
   
n1 = {"k1""nick""k2"123"k3": ["jenny"666]}
n2 = copy.deepcopy(n1)

 

基础目录

posted @ 2016-12-05 12:21  红领巾下的大刀疤  阅读(180)  评论(0编辑  收藏  举报
/* 看板娘 */