python简单学------------公共方法,引用等

Posted sucfrperperseverance

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python简单学------------公共方法,引用等相关的知识,希望对你有一定的参考价值。

公共方法

运算符

运算符Python 表达式结果描述支持的数据类型
+ [1, 2] + [3, 4] [1, 2, 3, 4] 合并 字符串、列表、元组
* \'Hi!\' * 4 [\'Hi!\', \'Hi!\', \'Hi!\', \'Hi!\'] 复制 字符串、列表、元组
in 3 in (1, 2, 3) True 元素是否存在 字符串、列表、元组、字典
not in 4 not in (1, 2, 3) True 元素是否不存在 字符串、列表、元组、字典

+

>>> "hello " + "itcast"
\'hello itcast\'
>>> [1, 2] + [3, 4]
[1, 2, 3, 4]
>>> (\'a\', \'b\') + (\'c\', \'d\')
(\'a\', \'b\', \'c\', \'d\')

*

>>> \'ab\'*4
\'ababab\'
>>> [1, 2]*4
[1, 2, 1, 2, 1, 2, 1, 2]
>>> (\'a\', \'b\')*4
(\'a\', \'b\', \'a\', \'b\', \'a\', \'b\', \'a\', \'b\')

in

>>> \'itc\' in \'hello itcast\'
True
>>> 3 in [1, 2]
False
>>> 4 in (1, 2, 3, 4)
True
>>> "name" in {"name":"Delron", "age":24}
True

注意,in在对字典操作时,判断的是字典的键

python内置函数

Python包含了以下内置函数

序号方法描述
1 cmp(item1, item2) 比较两个值
2 len(item) 计算容器中元素个数
3 max(item) 返回容器中元素最大值
4 min(item) 返回容器中元素最小值
5 del(item) 删除变量

cmp

>>> cmp("hello", "itcast")
-1
>>> cmp("itcast", "hello")
1
>>> cmp("itcast", "itcast")
0
>>> cmp([1, 2], [3, 4])
-1
>>> cmp([1, 2], [1, 1])
1
>>> cmp([1, 2], [1, 2, 3])
-1
>>> cmp({"a":1}, {"b":1})
-1
>>> cmp({"a":2}, {"a":1})
1
>>> cmp({"a":2}, {"a":2, "b":1})
-1

注意:cmp在比较字典数据时,先比较键,再比较值。

len

>>> len("hello itcast")
12
>>> len([1, 2, 3, 4])
4
>>> len((3,4))
2
>>> len({"a":1, "b":2})
2

注意:len在操作字典数据时,返回的是键值对个数。

max

>>> max("hello itcast")
\'t\'
>>> max([1,4,522,3,4])
522
>>> max({"a":1, "b":2})
\'b\'
>>> max({"a":10, "b":2})
\'b\'
>>> max({"c":10, "b":2})
\'c\'

del

del有两种用法,一种是del加空格,另一种是del()

>>> a = 1
>>> a
1
>>> del a
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name \'a\' is not defined
>>> a = [\'a\', \'b\']
>>> del a[0]
>>> a
[\'b\']
>>> del(a)
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name \'a\' is not defined

多维列表/元祖访问的示例

>>> tuple1 = [(2,3),(4,5)]
>>> tuple1[0]
(2, 3)
>>> tuple1[0][0]
2
>>> tuple1[0][2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> tuple1[0][1]
3
>>> tuple1[2][2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> tuple2 = tuple1+[(3)]
>>> tuple2
[(2, 3), (4, 5), 3]
>>> tuple2[2]
3
>>> tuple2[2][0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: \'int\' object is not subscriptable



引用

想一想

>>> a = 1
>>> b = a
>>> b
1
>>> a = 2
>>> a
2

请问此时b的值为多少?

>>> a = [1, 2]
>>> b = a
>>> b
[1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]

请问此时b的值又是多少?

引用

在python中,值是靠引用来传递来的。

我们可以用id()来判断两个变量是否为同一个值的引用。 我们可以将id值理解为那块内存的地址标示。

>>> a = 1
>>> b = a
>>> id(a) 
13033816
>>> id(b)   # 注意两个变量的id值相同
13033816
>>> a = 2
>>> id(a)   # 注意a的id值已经变了
13033792
>>> id(b)   # b的id值依旧
13033816
>>> a = [1, 2]
>>> b = a
>>> id(a)
139935018544808
>>> id(b)
139935018544808
>>> a.append(3)
>>> a
[1, 2, 3]
>>> id(a)
139935018544808
>>> id(b)       # 注意a与b始终指向同一个地址
139935018544808

 

 

可变类型与不可变类型

可变类型,值可以改变:

  • 列表 list
  • 字典 dict

不可变类型,值不可以改变:

  • 数值类型 int, long, bool, float
  • 字符串 str
  • 元组 tuple

注意可变类型与不可变类型,可变类型为值发生变化,引用id(地址)不发生变化,不可变类型为值发生变化,引用id(地址)发生变化

怎样交换两个变量的值?

a,b=b,a

 

以上是关于python简单学------------公共方法,引用等的主要内容,如果未能解决你的问题,请参考以下文章

零基础学python第十课,容器类型的公共方法

python简单学------------python面向对象

浅谈MyBatis-Plus学习之公共字段自动填充

Python学习之抽象类详解

新手学Python有什么好方法和建议? 10年经验分享

新手学Python有什么好方法和建议? 10年经验分享