学习 Python

Posted _DiMinisH

tags:

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

学习 Python

学习python

python 数据类型

  1. int 整数
  2. float 浮点数
  3. bool 布尔
  4. str 字符串

注意:

  • python整数没有那么多分类, 如short long等
  • python浮点数也没有那么多分类, 如double

/ 与 // 的区别

  • / 是除法, 结果是float
>>> 2/2
1.0
>>> 3/4
0.75
  • // 是先做除法, 然后向下取整, 至少有一方是float型时,结果为float型; 两个数都是int型时, 结果为int型
>>> 2//2
1
>>> 2//0.5
4

布尔类型 bool

  1. 真 True
  2. 假 False

空类型

None

type(None)
<class 'NoneType'>

字符串

用单引号, 双引号 和 三引号引起来的文本

1. 单引号

单引号引起来的文本为字符串, 其中对于双引号(")的表示可以不用使用转义符, 使用了也没事, 也会转义为双引号

>>> print('双引号""')
双引号""
>>> "\\'"
"'"

ord()函数用来返回单个字符的字符串的ASCII码

>>> ord('1')
49

多个元素会报错

2. 双引号

双引号引起来的文本为字符串, 其中对于单引号(')的表示可以不用使用转义符, 使用了也没事, 也会转义为双引号

>>> print("单引号''")
单引号''

3. 三引号

三引号引起来的文本为字符串, 用来表示多行字符串

  • 三个单引号
>>> print('''line 1
... line 2
... line 3
... ''')
line 1)
line 2
line 3
        # 这里是空行
>>> '''line 1)
... line 2
... line 3
... '''
'line 1)\\nline 2\\nline 3\\n'
  • 三个双引号
>>> """
... ''"""
"\\n''"

区别: 单引号中的双引号的表示可以不用使用, 双引号中的单引号的表示可以不用使用

4. ROW字符串

使用R或者r运算符对字符串进行不转义表示

>>> r'这是换行符\\n'
'这是换行符\\\\n'
>>> r"\\""
'\\\\"'

注意: 转义符会改变 \\ 会变成 \\, 及会反转义

这个代码就会报错: R"\\"

因为 \\"被识别为双引号"了, 所以字符串右边的引号没了

类似的, 单引号也会出现问题 R'\\'

5. 字符串截取

使用 []运算符

  1. 取出某个字符

    对于字符串 "hello world"

    1.1 下标为0或者正数

    下标为正数表示从前向后数, 第n位的字符

    "hello world"[2]
    

    取出下标为2的字符, 即 "l"

    下标从0开始

    注意: 越界(下标超出字符串长度会报错)

    "hello world"[16] # 错误
    

    1.2 下标为负数

    下标为负数表示从后向前数, 第n位的字符

    "hello world"[-2]
    

    取出下标为-2的字符, 倒着数第二个字符, 即 "l"

    1.3 注意

    从前向后数从0开始, 从后向前数从1开始

  2. 取出多个字符(切片)

    使用 [start:end]的方式

    start表示开始位置, end表示结束位置

    对于字符串 "hello world"

    2.1 start和end都为正数

    "hello world"[0:2]
    

    取出下标为0到下标1之间的字符, 即 "he"

    "hello world"[0:20]
    

    如果end超过了字符串长度, 则取下标从start开始到字符串结尾的所有字符串, 上述例子是结果是 "hello world"

    2.2 start与end省略

    start省略表示从开头取

    end省略表示取到结尾

    全省略表示取整个字符串

    "hello world"[4:]
    

    取出下标为4到字符串结尾的所有字符, 即 "o world"

    2.2 start和end为负数

    负数表示倒着算起, 向右取

    "hello world"[-4:-2]
    

    取出倒数第四个字符到倒数第二个字符之间的字符, 即 "or"

6. 字符串填充

使用字符串的format函数来填充空缺位置

  1. 空位填充

    >>> string = "hello !"; \\
    ... string = string.format('world'); \\
    ... print(string)
    hello world!
    

    花括号中的表示一个空位, 使用 format函数可以填充

  2. 序号填充

    >>> string = "hello 0 2 1 3!"; \\
    ... string = string.format(2.3, False, 2, None); \\
    ... print(string)
    hello 2.3 2 False None!
    

      花括号中的用数字表示序号, 使用 format函数以此按照从小到大序号填充, 花括号中的数字必须是从0开始, 不能跳, 但是位置可以是任意的

    注意: 上述例子中, False出现的位置是1, 对应到string中会填写 1 的位置

  3. 名字填充

    >>> string = "hello a sss!"; \\
    ... string = string.format(sss = ''' he he ''', a = "123"); \\
    ... print(string)
    hello 123  he he !
    

    花括号中的用标识符表示名字, 使用 format函数对用赋值的方式对字符串填充

    >>> string = "hello _a2 _!"; \\
    ... string = string.format(_a2 = ''' he he ''', _ = "123"); \\
    ... print(string)
    hello  he he  123!
    

    标识符也要合法

列表

1. 定义列表

[常量, 常量, ... ]定义列表

[1, 2, 3.5, '"hello"']

一个列表中的元素类型可以不一样

嵌套列表

[[1, 2.0, 3.0, 4.5], [True, False, None]]

2. 访问列表

列表访问类似字符串

>>> print([1, 2, 3][2])
3

按照范围

>>> print([1, 2, 3, 5, 6, "7", "8"][-2:-1])
['7']

操作可以参考字符串, 这里不详细说啦

注意, 使用 [start:end]方式访问, 结果是列表

3. 列表操作

使用加号 +可以将两个列表合并

>>> print([1, 2] + [True])
[1, 2, True]

使用乘号号 *可以让列表重复

>>> print([True, "123"] * 3)
[True, '123', True, '123', True, '123']
>>> string = [1, 2, 3] * 3; \\
... string = string[-2:]; \\
... print(string)
[2, 3]

使用 list函数将字符串转变为列表, int, float, bool, None不可以

字符串会拆分为一个一个的单字符字符串转为列表

>>> l = [1, 2, 3]; \\
... l += list("asd"); \\
... print(l)
[1, 2, 3, 'a', 's', 'd']

列表转为字符串

>>> type(str([1, 2, 3]))
<class 'str'>

字符串转列表例子

>>> list(str([1, 2, 3]))
['[', '1', ',', ' ', '2', ',', ' ', '3', ']']

>>> list(str([1,2,3]))
['[', '1', ',', ' ', '2', ',', ' ', '3', ']']
>>> string = str([1, 2, 3]); \\
... string2 = list(string); \\
... print("string =", string); \\
... print("string2 =", string2)
string = [1, 2, 3]
string2 = ['[', '1', ',', ' ', '2', ',', ' ', '3', ']']

元组

(常量, 常量, ... )定义元组

列表用方括号, 元组用小括号

访问与操作

访问和操作与列表相似

>>> type((1, True))
<class 'tuple'>
>>> tuple(str([1, 2, 3]))
('[', '1', ',', ' ', '2', ',', ' ', '3', ']')

使用 tuple函数将字符串转变为元组, int, float, bool, None不可以

tuple('ab')                       
('a', 'b')

元组转字符串

>>> tuple((1, True) * 2)                  
(1, True, 1, True)

元组和列表的转换

列表转元组

>>> tuple([1])
(1,)

元组转列表

>>> list((1,))
[1]

  python规定括号中只有一个元素, 如 (1)表示对该元素进行括号运算, 即单一元素元组是该元素本身, 如果要想表示一个元素的元组, 必须写成 (1,)

在元素后面加一个逗号

>>> type((1,))
<class 'tuple'>

序列

在python中, 字符串(str)列表(list)元组(tuple) 都是序列

操作函数

函数或运算符返回值介绍例子注意
inbool判断元素是否在序列中2 in [1, 2, 3]字符串类型需要都是字符串
not inbool判断元素是否不在序列中2 not in [1, True, '222']字符串类型需要都是字符串
len()int返回序列中元素的个数len([1, True, '222'])
max()int返回序列中值最大的元素max([1, 2, 3])序列中元素类型要一致, 布尔类型True > False, 字符串比较ASCII码
min()int返回序列中值最小的元素max([1, 2, 3])序列中元素类型要一致, 布尔类型True > False, 字符串比较ASCII码

以上是关于学习 Python的主要内容,如果未能解决你的问题,请参考以下文章

[Python图像处理] 四十一.Python图像平滑万字详解(均值滤波方框滤波高斯滤波中值滤波双边滤波)

学习 Python 之 数据类型

OpenCV 例程200篇101. 自适应中值滤波器

OpenCV 例程200篇101. 自适应中值滤波器

中值滤波器(平滑空间滤波器)基本原理及Python实现

python 从Python中的列表计算中值。 #蟒蛇