python —— 一些基本知识

Posted fiona128

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python —— 一些基本知识相关的知识,希望对你有一定的参考价值。

1. is 和 == 的用法和区别:

== 是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等
 
>>> a = cheesezh
>>> b = cheesezh
>>> a == b
True

 

 
is 是比较两个变量值的内存地址是否一样
>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False

 

 
 
 

2.字符串的拼接方法

 
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
在效率上 format > % > +
 
1、 加号‘+’,乘号 ‘*’
 
>>> name = Fiona
>>> age = 22
>>> name + age
Fiona22
>>> name*5
FionaFionaFionaFionaFiona

 

 
2、 % s
>>> name = Fiona
>>> your name is %s% name
your name is Fiona

  还有%d (十进制) 和 %f (默认保留小数点后6位, %.3f 表示保留3位小数位)的方法,只能传入整数和浮点数,%s 是可以传入字符串和数字的

 
3、format
>>> name = Fiona
>>> {} is a good girl.format(name)
Fiona is a good girl
% 和 format 属于格式化输出的用法了(https://www.cnblogs.com/fat39/p/7159881.html)
 
 
 

3.and,not..or的优先级

not > and > or
1 and 3 or 4 and 5
out : 3
1 and 0 or 10 and 7
out : 7

 

 
and : 当两个条件都成立的时候,输出为真,否则为False,要对两个条件都进行比较,会输入最后一个
or : 当两个条件其中一个成立的时候,输出为true,否则为False,如果第一个条件成立,则不会比较后面的了
not : 是输入值当取反
 
 

4.深浅copy

1.浅copy()和赋值不一样,内存地址会改变,生成一个新的内存地址
# 浅copy 列表、字典都是一样的。以list举例。
l1 = [1,2,3,4]
l2 = l1.copy() # id内存地址不一样,创建了两个空间
l1.append(barry) # 一个改变,copy不改变
print(l1,id(l1)) # [1, 2, 3, 4, ‘barry‘] 41709256
print(l2,id(l2)) # [1, 2, 3, 4] 41708616

 

2.嵌套
# 第一层都是独立的的。从第二层开始都是是公用的,改一个都会变。
# 有嵌套层,列表都会添加。整体的内存地址不一致。嵌套的内存地址一样。
l1 = [1,[22,33,44],3,4,]
l2 = l1.copy()
l1[1].append(55)
print(l1,id(l1),id(l1[1])) #[1, [22, 33, 44, ‘55‘], 3, 4] 35417160 35417800
print(l2,id(l2),id(l2[1])) #[1, [22, 33, 44, ‘55‘], 3, 4] 35417864 35417800

  

3. 深copy.deepcopy()
# 对于深copy来说,两个是完全独立的,改变任意一个的元素(无论是多少层),另一个绝不会改变。
 
复制一份,完全没有变化,不会受l1的影响。l1改变,l2不会跟着改变。
复制代码
#深copy.deepcopy()
import copy # 先引入模块
l1 = [1,[22,33,44],3,4,]
l2 = copy.deepcopy(l1)
# 改变第一层
l1[0] = 111
print(l1) # [111, [22, 33, 44], 3, 4]
print(l2) # [1, [22, 33, 44], 3, 4]
# 改变第二层
l1[1].append(barry)
print(l1) # [111, [22, 33, 44, ‘barry‘], 3, 4]
print(l2) # [1, [22, 33, 44], 3, 4]

 

 

以上是关于python —— 一些基本知识的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

python调试:pdb基本用法(转)

Python - 模块

python小知识片段

python小知识片段

Flask模板宏的概念和基本使用