python不同类型的数据不能相互运算_01.Python-变量、数据类型、运算符

风格指南

注释

注释解释器不会去执行,直接跳过

注释的写法

行注释:以井号(#)开头 可以单独行,也可以在代码后面

块注释:以三个单引号或者双引号开头并结束,中间可以包裹多行内容

# 这里是行注释,机器不会运行

print("hello word")

"""

这里是块注释

可以写很多行

...

"""

注释原则

复杂代码注释

注释不是越多越好

建立有效的沟通

变量

变量就是一个可以重复使用的量

变量的命名

变量名只能包含字母、数字和下划线,变量名字可以使用字母或者下划线开头,但不可以使用数字开头。如 1_message

变量名不能包含空格

变量名不能使用Python关键字、保留字、函数,如print

# 查看关键字方法

import keyword #引入关键子模块

# 打印关键字

print(keyword.kwlist)

变量名应该简短且具有描述性

不建议以下划线开头命名变量,因为以下划线开头的变量具有特殊含义

大小写敏感,age 和 Age不一样

可以使用中文,但强烈不建议使用

推荐使用posix命名规则

posix命名规则

多个单词使用下划线链接

单词全部小写

变量的赋值

常用赋值方法

# 将10 赋值给size

size = 10

print(size)

>>>10

给多个变量赋同一个值

size1 = size2 = size3 = 10

print(size1)

>>>10

print(size2)

>>>10

print(size3)

>>>10

一行代码给多个变量赋值

size1, size2, size3 = 10, 12, 16

print(size1)

>>>10

print(size2)

>>>12

print(size3)

>>>16

变量交换

普通方式

a = 10

b = 20

c = a # 讲a变量赋值给c, 此时c的值为10

a = b # 讲b变量复制给a, 此时a的值为20

b = c # 讲c变量复制给b, 此时b的值为10

通过中间变量c进行变量的交换

利用python定义变量的语法实现

a, b = b, a

数据类型

六种标准数据类型

数字 Number

字符串 Str

列表 List

元祖 tuper

字典 dict

集合 set

布尔值 bool

None

使用字符串时注意引号匹配

数字类型Number

整数 int

没有小数部分

包含正数、复数、0

浮点数 float

带小数点的数字称为浮点数

科学计数法

科学计数法在python中的表示

a = 10e2

print(a)

>>>1000.0

复数

复数在python中的表示

python中,用j/J表示复数的虚部

a = 4+3j

b = 3j

c = (3j)

字符串 str

字符串是一系列的字符,在Python中,用引号括起来的是字符串,可以使单引号,也可以是双引号。三引号可以表示多行

字符串的表示

name = 'zhangsan'

name = "zhangsan"

name = """

zhang

san

"""

列表 list

通常用来记录一些列数据

列表的创建

使用一对方括号来表示空列表: [] 或者是list()

使用方括号,其中的项以逗号分隔: [a], [a, b, c]

其中的项成为元素

元素可以是其他的任意类型

>>> l1 = []

>>> print(l1, type(l1))

[]

>>> l2 = list()

>>> print(l2, type(l2))

[]

>>> l3 = [1, 2, 3]

>>> print(l3, type(l3))

[1, 2, 3]

元组 tuple

元组是不可变序列,与列表相似,区别是其中的元素不可改变

元祖的创建

使用一对圆括号来表示空元组: ()

使用一个后缀的逗号来表示单元组: a, 或 (a,)

使用以逗号分隔的多个项: a, b, c or (a, b, c)

使用内置的 tuple(): tuple() 或 tuple(iterable)

元祖只有一个元素时,最后要加一个逗号。

>>> t1 = ()

>>> t2 = 1,

>>> t3 = (1,)

>>> t4 = 1, 2, 3

>>> t5 = tuple()

>>>

>>> print(type(t1))

字典 dict

字典是用于储存一组或多组的数据

字典是键值对形式

键的名字不能重复,否则会覆盖

键必须是字符串或者数字,值可以是任何类型

字典的创建

>>> a = dict(one=1, two=2, three=3)

>>> b = {'one': 1, 'two': 2, 'three': 3}

>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))

>>> d = dict([('two', 2), ('one', 1), ('three', 3)])

>>> e = dict({'three': 3, 'one': 1, 'two': 2})

>>> a == b == c == d == e

True

布尔值

布尔值用来表示真假

只有两个值 Ture/False

在Python中,布尔值可以当做数字使用:Ture = 1, False = 0

None

表示没有,返回一个空

数据类型的检测

使用type()函数进行检测

>>> a = 10

>>> b = True

>>> c = 'hello world'

>>> d = 1.01

>>> print(a, type(a))

10

>>> print(b, type(b))

True

>>> print(c, type(c))

hello world

>>> print(d, type(d))

1.01

数据类型分类

是否可变

是否可变指内容创建后,内容是否可变

可变数据类型

列表

字典

集合

不可变数据类型

字符串

数字

元组

是否容器类

容器类型数据指此类型数据可以容纳其他数据

容器类型数据

字符串

列表

元组

集合

字典

非容器类型数据

数字

布尔值

数据类型的转换

数据类型转换指的是讲一种数据类型转换为另一种数据类型,目的是解决不同数据类型之间的运算问题。

自动类型转换

数字与布尔值运算会将布尔值自动转为数字

>>> n = 1

>>> b = True

>>> print(n+b)

2

逻辑判断时数字会自动转为布尔值

整数与浮点数运算时,整数会转为浮点数

手动类型转换

通过特定的函数,可以将一种数据类型转为另一种数据类型

函数

转换后类型

可转换类型

str()

字符串

所有类型都可以

int()

整数

纯数字字符串、布尔值、浮点数,其他容器类类型不能转

float()

浮点数

纯数字字符串、布尔值、整数

bool()

布尔值

所有类型都可以

list()

列表

字符串、数组、字典(只保留键)集合

tuple()

元组

数字类型和非容器类型不能转换、容器类型可以

dict()

字典

只有特定的列表和元组可以转,要求列表中的每个元素都是一个只包含俩个元素的列表,其中第一个元素转为字典的键,第二个为值 [[1, a], [2, b], [3, c]],元组要求类似。

set()

集合

非容器类不可以转换,容器类转换后无序、去重、字典只保留键。

使用函数转换类型

a 为数字类型

b经过str()函数将a转为字符串类型

c经过int()函数将b转回数字类型

>>> a = 1

>>> b = str(a)

>>> c = int(b)

>>> print(b, type(b))

1

>>> print(c, type(c))

1

运算符

运算符的分类

算术运算符

比较(关系)运算符

赋值运算符

逻辑运算符

位运算符

身份运算符

算术运算符

假设变量a = 1, b = 2

运算符

描述

实例

+

两个对象相加

a + b >>>3

-

两个对象相减

a - b >>>-1

*

两个对象相乘或者是返回若干次的字符串

a*b >>>2

/

除法运算

b/a >>>2

//

地板除,取整

9//2 >>>4

%

取模(取余)

9%2 >>>1

**

幂运算

a**b >>>1

注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。

>>> 1/2

0

>>> 1.0/2

0.5

>>> 1/float(2)

0.5

比较运算符

假设变量a = 1, b = 2

运算符

描述

实例

==

比较连个对象是否相等

a == b >>>False

!=

比较两个对象是否不相等

a != b >>>True

>

比较x是否大于y

a > b >>>False

<

比较x是否小于y

a < b >>> True

>=

返回x是否大于等于y

a >= b >>>Flase

<=

返回x是否小于等于y

a <= b >>>True

赋值运算符

假设变量a = 1, b = 2

运算符

描述

实例

=

简单的赋值运算

c = a + b 将a + b 的运算结果赋值给c

+=

加法赋值运算

c += a 等效与 c = c + a

-+

减法赋值运算

c -= a 等效于 c = c - a

*=

乘法赋值运算符

c *= a 等效于 c = c * a

/=

除法赋值运算

c /= a 等效于 c = c / a

%=

取模赋值运算

c % a 等效于 c = c % a

**=

幂赋值运算

c **= a 等效于 c = c ** a

//=

地板除赋值运算

c //= a 等效于 c = c//a

逻辑运算符

运算符

描述

实例

and

"与"运算,x、y全部为True返回True,否则返回Flase

True and False >>>False

or

"或"运算,x、y全部为Flase返回False,否则返回True

True or False >>>True

not

"非"运算,取反

not False >>>True

逻辑运算存在短路问题,程序一旦确定逻辑运算结果不在进行后面的代码

# 短路案例,由于提前确定了c的值为True,程序不在往下运行,不在打印"b"

def a():

print("a")

return True

def b():

print("b")

return True

c = a() or b()

print(c)

>>> a

>>> True

成员运算符

检测一个成员是否在某个实例里面

运算符

描述

实例

in

如果在序列中找到指定的值返回True,否则返回False

1 in [1, 2, 3] >>>True

not in

如果在序列中没有找到制定的值返回True,否则返回False

1 not in [1, 2, 3] >>>False

身份运算符

运算符

描述

实例

is

判断两个变量是不是引用自一个对象

x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

is not

判断两个变量是不是引用自不同对象

x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

可以简单理解为他们指向的内存地址是否相同

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

位运算符

按位运算符是把数字看作二进制来进行计算的

二进制转换

使用bin()函数可以讲一个数字转换为二进制数字

>>> print(bin(1), '-', bin(2), '-', bin(3))

0b1 - 0b10 - 0b11

使用int()函数可以讲一个二进制转为十进制

>>> print(int(0b1), '-', int(0b10), '-', int(0b11))

1 - 2 - 3

二进制位运算

下表中变量 a 为 60,b 为 13,二进制格式如下:

运算符

描述

实例

&

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

(a & b) 输出结果 12 ,二进制解释: 0000 1100

|

按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

(a | b) 输出结果 61 ,二进制解释: 0011 1101

^

按位异或运算符:当两对应的二进位相异时,结果为1

(a ^ b) 输出结果 49 ,二进制解释: 0011 0001

~

按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1

(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。

<<

左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。

a << 2 输出结果 240 ,二进制解释: 1111 0000

>>

右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

a >> 2 输出结果 15 ,二进制解释: 0000 1111

运算优先级

从高到底以此为:

小括号内优先级最高

** 指数 (最高优先级)

~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

* / % // 乘,除,取模和取整除

+ - 加法减法

>> << 右移,左移运算符

& 位 'AND'

^ | 位运算符

<= < > >= 比较运算符

<> == != 等于运算符

= %= /= //= -= += *= **= 赋值运算符

is is not 身份运算符

in not in 成员运算符

not and or 逻辑运算符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值