Python基础之运算符及数据类型(列表及元组)

  • 运算符
  • 数据类型
  • 字符串类型及操作
  • 切片
  • 列表类型及操作
  • 元祖类型及操作

0x01 运算符

  • 算术运算符
+         # 加  --> 两对象相加  
-          # 减  --> 1、负数  2、两个数相减
*          # 乘  --> 1、两个数相乘 2、重复前面字符若干次
/          # 除  --> 两数相除 
%        # 取模      --> 返回两数相除后的"余数"
//         # 取整除   --> 返回两数相除后,"商"的整数部分
  • 比较运算
==      # 等于       ---> 两个对象是否相等
!=       # 不等于    ---> 两个对象不相等
<>      # 不等于    ---> 两个对象不相等
>        # 大于        ---> 左边大于右边
<        # 小于        ---> 左边小于右边,返回1为真(True);返回0为假(False)
>=      # 大于等于    ---> 左边大于等于右边
<=      # 小于等于    ---> 左边小于等于右边 
  • 赋值运算
=        # 赋值
+=      # 加法赋值运算
-=       # 减法赋值运算
*=       # 乘法赋值运算
/=       # 除法赋值运算
%=     # 取模赋值运算
//=      # 取整除赋值运算 
  • 位运算
&       # 与
|        # 或
^       # 异或
~       # 取反
<<     # 左移动
>>     # 右移动
  • 逻辑运算
and    # 布尔"与"
or       # 布尔"或"
not     # 布尔"非"
  • 成员运算
in        # 若在指定序列中找到值。返回True,否则返回False。
not in  # 若在指定序列中没找到值。返回True,否则返回False。
  • 身份运算
is        # 判断两个标识符,是不是引用一个对象
is not  # 判断两个标识符,是不是引用不同对象

0x02 数据类型

Python中,能直接处理的数据类型为: 数值型、字符串型、列表型、元组型、字典型

  • 数值类型
    分类:整型、浮点型、长整型、复数

2.1 整型
范围: 2**32(2的31次方个正和2的31次方的个负数),包含正数和负数
查看数据类型方法: type()

  • 定义字符串
>>> res = "Hello World!"
>>> type(res)
<class 'str'>
>>> date = 20
>>> type(date)
<class 'int'>

2.2 浮点型
带小数点的数,在进行计算时,位数会进行四舍五入

  • 定义浮点数
>>> a = 12.3
>>> type(a)
<class 'float'>
>>> b = 15.7
>>> type(b)
<class 'float'>

2.3 长整型
Ll 表示,在python3内,已被取消

>>> a = 121211212122222222222222222222222222222222222222222222222222222222222
>>> type(a)
<class 'int'>            # python3内,已取消

2.4 复数
j 标识
复数一般用于科学计算,一般不会使用

>>> type(341j)
<class 'complex'>

2.5 类型转换

  • 字符串数值转换为浮点型
>>> num = '12'
>>> type(num)
<type 'str'>
>>> float(num)
12.0
  • 字符串转换为整形
>>> num = '18'
>>> type(num)
<type 'str'>
>>> num1 = int(num)
>>> type(num1)
<type 'int'>
>>> num1
18
  • 整形转换为浮点型
>>> num = 20
>>> type(num)
<type 'int'>
>>> num1 = float(num)
>>> num1
20.0
>>> type(num1)
<type 'float'>
  • 浮点型 转换为整形
>>> num = 22.33
>>> type(num)
<type 'float'>
>>> num1 = int(num)
>>> type(num1)
<type 'int'>
>>> num1
22
  • round() 返回浮点数x的四舍五入值

格式:

round( x [, n]  )

示例:

>>> round(4.567, 2)
4.57
>>> type(a)
<type 'float'>

0x03 字符串类型及操作

3.1 以 单引号 ( ' ) 或 双引号 ( “ ) 括起来的任意对象

3.2 定义字符串:单引号,双引号,三引号

  • 字符串定义
str='This is string'
str="This is string"
str='''This is string''' 

PS:
三个引号 ( """ )可以是多行注释,但不能单双混合

3.3 字符串方法

  • 查找
    功能:找到sub在str中的位置,如果找到返回index(匹配到第一个),找不到返回-1
    用法:str. find(sub,start=None,end=None)
>>> name = "python"
>>> name.find(3)
>>> name.find("t")
2
  • 替换
    功能:字符串的替换,把src替换为dst,counter为替换几次
    用法:str.replice('src','dst',counter=None)
>>> name = 'Hello python'
>>> name.replice('p','P')
>>> name
Hello Python
  • 去除字符串前后空格
    功能:去除两边的string,默认是移除空格换行及制表符
    用法:str.strip('string')
>>> str = ' Python '
>>> str.strip()
'Python'
  • 字符串连接
    功能:连接,用于把可迭代对象的每个元素用 什么 连接起来,可迭代对象的元素必须是str
    用法:'分隔符'.join(iterable)
>>> str = 'Hello Python'
>>> '_'.join(str)
'H_e_l_l_o_ _P_y_t_h_o_n'
  • 分割字符串
    功能:把字符串默认从左开始对象使用split进行分割,默认会对所有分割符进行分割,num可以指定分隔符的个数
    用法:str.split('split',num=None)
>>> str = 'Hello Python'
>>> str.split('y')
['Hello P', 'thon']
  • 格式化字符串
    功能:格式化字符串,位置占位符为{0},{1}
    用法:str.format()
>>> print('Hello {0}'.format('World'))
Hello World

PS:
采用命名占位符{name},{age},赋值时候需要 name=Mr.Chow,age=18

0x04 切片操作

4.1 字符串是一个序列,可以通过 索引切片 操作
4.2 原则: 前开后闭

  • 从第0个开始截取2个字符,其中0可以省略
In [1]: a='abcd'
In [2]: a[0:2]
Out[3]: 'ab'
  • 默认是从左往右(前往后),带减号,表示从右往左(后往前),-1表示最后一个字符(a='abcd',-1的值是d,也就是3,顾a[:-1],就等于a[0:3])
In [4]: a='abcd'
In [5]: a[:-1]
Out[6]: 'abc'
  • 从1开始截取到最后
In [7]: a='abcd'
In [8]: a[1:]
Out[9]: 'bcd'
  • 步长为2,表示从0开始步长为2,(取0,2,4,6)
In [10]: a='abcd'
In [11]: a[::2]
Out[12]: 'aceg'
  • 表示倒着取,从倒数第五个取到倒数第一个(不包含倒数第一,要想取可以使用a[-5:])
In [13]: a
Out[14]: 'abcdefg'
In [15]: a[-5:-1]
Out[16]: 'cdef'
  • 从0开始取到第5个,步长为1,步长为2
In [17]: a
Out[18]: 'abcdefg'
In [19]: a[0:5:1]
Out[20]: 'abcde'
In [21]: a[0:5:2]
Out[22]: 'ace'
  • 从后往前取,步长为-1,表示每次倒着取1个,由于没有指定结尾,默认到最后,所以就把数字逆了过来
In [23]: a
Out[24]: 'abcdefg'
In [25]: a[-1::-1]
Out[26]: 'gfedcba'
  • 表示先每隔2个取出来,然后从头开始取2个
In [27]: a
Out[28]: 'abcdefg'
In [29]: a[::2][:2]
Out[30]: 'ac'

0x05 列表类型及操作

  • 定义
  • 方法
  • 分片

  • 定义

5.1 关键字 --> list,有序集合, 数据可变,[]标识,元素间逗号分隔

  • 创建列表
list1 = []              # 创建空列表  
list2 = list()         # 工厂函数,调用list()内部函数给list2进行赋值  
  • 创建有值列表
list3 = [1, 'list', True]  
  • 复杂列表
str = 100
list = ['Chow', str, (11, 43), False, ['Robin', 'Python'], {name: 'Chow', age: 18}]
print(list)
print(type(list))
len(list)
  • 方法操作
  • 方法:
append              # 追加  
remove              # 删除指定元素  
pop                    # 删除列表最后一位或指定元素,有返回值  
reverse              # 反转  
insert                 # 数据插入,根据元素下标插入  
sort                    # 排序  
  • append(追加)
>>> list = [11, 22, 33, 10, 'aa', True]
>>> list.append(100)
>>> list
[11, 22, 33, 10, 'aa', True, 100]
  • remove(移除指定元素)
list = [11, 22, 33, 10, 'aa', True]
list.remove(33)
print(list)
[11, 22, 10, 'aa', True]
  • pop(删除列表最后一位或指定元素)
list = [11, 22, 33, 10, 'aa', True]
list.pop(-1)
list.pop(0)
print(list)
[22, 33, 10, 'aa']
  • del(删除指定元素)
list = [11, 22, 33, 10, 'aa', True]
del list[0]
print(list)
[22, 33, 10, 'aa', True]
  • reverse(反转)
list = [11, 22, 33, 10, 'aa', True]
list.reverse()
print(list)
[True, 'aa', 10, 33, 22, 11]
  • insert(插入)
list = [11, 22, 33, 10, 'aa', True]
list.insert(2, 'Python')
print(list)
[11, 22, 'Python', 33, 10, 'aa', True]
  • sort(排序)
list = [11, 22, 33, 10, 200, 3]
list.sort()
print(list)
[3, 10, 11, 22, 33, 200]
  • extend(扩张两个列表)
list1 = [11, 22, 33, 10, 200, 3]
list2 = ["aa", 'bb', 'cc']
list1.extend(list2)
print(list1)
[11, 22, 33, 10, 200, 3, 'aa', 'bb', 'cc']
  • 列表循环添加元素
a = list()
for i in range(1, 10):
    a.append(i)

print(a)

[1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 分片
    < 待后期完善 >

0x06 元组类型及操作

  • 概念
  • 特点
  • 定义元祖
  • 操作方法
  • 概念

6.1 标识 () , 逗号 进行分割。是列表的扩展
6.2 不可变类型

  • 特点

6.3 元组值不可改变
6.4 通常用来接收函数的返回值
6.5 可以同时储存不同类型的数据,也可以引用其它元组

  • 定义元祖
tuple1 = (11, 22, 33)
type(tuple1)
print(tuple1)
(11, 22, 33)

tuple1 = (11,)
type(tuple1)
print(tuple1)
(11,)

6.6 元祖引用

tuple1 = (11, 22, 33)
tuple2 = ('aa', 'bb', 'cc', tuple1)
type(tuple2)
print(tuple2)
('aa', 'bb', 'cc', (11, 22, 33))

6.7 引用其它元祖内的指定下标元素

tuple1 = (11, 22, 33)
tuple2 = ('aa', 'bb', 'cc', tuple1[2])
print(tuple2)
('aa', 'bb', 'cc', 33)
  • 元祖方法操作
    6.8 a.count()  统计value在元组中出现的次数,不存在返回0
>>> a = (30, 4, 2, 11, 11, '11', 14, 11)
>>> a.count(11)
3
  • index() 用来返回值在元组中的索引下标,若值不存在,则会报错。如果有多个,默认返回第一个(可以指定从哪个索引开始查找到某个索引)
>>> a = ('11', '22', '33', '41')
>>> a.index('22')
1

>>> a = ('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')
>>> a.index('a', 5, 7)
6