python ** 运算符_Python入门 变量、运算符

一、变量

变量,是用来存储数据,如果我们需要让得到的数据在后面的程序中进行运算,就需要先存储在变量中,在需要使用时再引用事先存储的变量。

它是【可变化的量】,它的概念和代数中定义的变量基本一致。

如:y=2*x,x 就是变量,x 的值不同y的值也就不同。

不同点在计算机中 y 也是个变量,计算机计算出 2*x 的值赋值给了变量y。

x 与 y 为变量的名称,我们通过变量的名称在后续程序中引用变量。

每个变量都有名称(名称使用标识符规范命名),叫变量名。Python 变量名可以是大小写英文、数字和下划线(_)的组合,但不能用数字开头。如:a=1,a_01=2,_a=3 中 a、a_01、_a 都是变量。

注意:Python 中的变量不能以数字开头,但可以使用下划线(_)开头,变量名区分大小写,变量A与a是不同的。

Python 中的变量为动态类型,所以我们定义变量时无需指定变量类型,我们可以给变量任何数据类型的值。

如下:

a = 1 # 纯字母
a = 'abc' # 动态类型,变量无固定类型,可以重新赋值任意类型值
a_01 = '我是变量' # 字母数字下划线混合
_a = True # 以下划线开始
12A = 'a'  # 报错,不能以数字开始定义变量

注意:定义变量的‘=’与数学中的‘=’意义是不同的,Python 中的等号左边是变量名字,右边是值,'=' 表示将右边的值传递给左边,所以 '=' 是右连接性,值的传递顺序是从右到左。

二、运算符

1、算术运算符

加(+)、减(-)、乘(*)、除(/)、取模(%)、幂(**)、取整(//)

加、减、乘、除和数学运算的一样,不多讲。

取模(%)是返回除法的余数(23%10余3,所以值为3)。

幂(x**y)表示 x 的 y 次幂( 2**3 的值为 8)。

取整(//) 为取商的整数部分,如10//3 值为3, 9.0//2.0 值为 4.0

示例:

# 使用Python 自带的 IDLE 逐条练习以下代码
a = 23
b = 10
c = 0
print('a + b=', a + b)  # 输出  a + b= 33
print('a - b=', a - b)  # 输出  a - b= 13
print('a * b=', a * b)  # 输出  a * b= 230
print('a / b=', a / b)  # 输出  a / b= 2.3
print('a % b=', a % b)  # 输出  a % b= 3

c = a + b / b * a + b  # 对变量重新赋值会改变变量的值
print(c)  # 输出 56.0

# 修改变量 a 、b 、c
a = 2
b = 3
c = a ** b
print("a ** b =", c)  # 输出  a ** b = 8

a = 10
b = 5
c = a // b
print("a // b =", c)  # 输出  a // b = 2

2、比较运算符

也和数学中的比较运算概念一样

等于(==)、不等于(!=)、大于(>)小于(<)、大于等于(>=)、小于等于(<=),比较运算符返回的结果为 True 或 False 。

示例:

#使用Python 自带的 IDLE 逐条练习以下代码
a = 23
b = 10
c = 0
print('a == b为', a == b)  # 输出  a == b为 False
print('a != b为', a != b)  # 输出  a != b为 True
print('a > b为', a > b)  # 输出  a > b为 True
print('a < b为', a < b)  # 输出  a < b为 False
print('a >= b为', a >= b)  # 输出  a >= b为 True
print('a <= b为', a <= b)  # 输出  a <= b为 False

3、逻辑运算符

用于连接比较运算符,先计算比较运算符,然后进行逻辑运算。

与(and)、或(or)、非(not),逻辑运算符返回的结果为True或False。


示例:

a = 23
b = 10
c = 30
print('a == b and b>c 为', a == b and b > c)  # False
print('a > b or c>=b 为', a > b or c >= b)  # True
print('a < b and c>=b 为', a < b or c >= b)  # True
print('a <= b and not a<b为', a >= b and a > b)  # True
print('a > b 为', a > b)  # True
print('not a > b 为', not a > b)  # False
print('a <= b and not a<b为', a >= b and not a > b)  # False

4、成员运算符(先了解,后面讲到list列表时会将具体讲)

判断元素是否为序列中的成员,用于确认元素是否在序列中。

in,在指定的序列中找到值返回 True,否则返回 False。如:x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

not in,在指定的序列中没有找到值返回 True,否则返回 False,与 in 是相反的。

示例:

a = 'a'
b = 2
list = [1, 2, 3, 4, 5, 'b', 'a']  # 定义列表,列表使用数据结构类型以后会讲到
print(a in list)  # True
print(a not in list)  # False
print(b in list)  # True
print(b not in list)  # False
print(9 in list)  # False
print(9 not in list)  # True
print('c' in list)  # False
print('c' not in list)  # True
print('c' in 'abc')  # True 字符串也可以当成列表

5、身份运算符(先了解)

用于比较两个对象的存储单元,可能比较难理解,可以先记忆后续慢慢理解。

is,判断两个标识符是否引用自同一个对象,x is y 如果引用的是同一个对象则返回 True,否则返回 False。

is not,判断两个标识符是否引用自不同个对象,与is相反。

示例:

注意:id() 函数可以帮助我们获取变量存储在内存中的地址。

a = 20
b = 20
print(id(a))
print(id(b))
print(a is b)  # True
b = 12  # 改变b的值
print(id(b))
print(a is b)  # False

输出结果:

1571488816
1571488816
True
1571488560
False

拓展:is 与 == 的区别

Python 一切皆对象,每个对象都有唯一的身份标识(id),而且每个对象都有自己的类型(type)和值(value)。

所以 id, type, value 是Python对象的三个基本要素

常用的赋值(=) 操作,其实是身份标识(id)的传递,片面的理解是内存地址的传递。

is 比较的是id,== 比较的是type 和 value,当id相同时它的type和value肯定相同,但当type与value相同时id不一定相同。

示例: type 与 value相同,id 不同

a = b = [1, 2]
c = [1, 2]
print(a == c)  # True
print(a is b)  # True
print(a is c)  # False
# 说明: 第一行,a 与 b 赋值时被指向了同一个id
#      第二行,c 再次创建一个列表,它的id也是新创建

特例: 怕杠精

version<3.5 , Python为了提高速度使用了小整数[-5, 257)和新创建的字符串加入了通用对象池(类似缓存),即启动编译器时[-5, 257)已经再内存中。

version>=3.5, 将数值加入了通用对象池,当你创建字符串和数值时,他们都会加入通用对象池。

x = 100
y = 100
# [-5, 257)的整数已在内存中定义好,引用时直接将id传递给对应的变量
print(x is y)  # True

i = 257
j = 257
print(i is j)  # version<3.5 False, version>=3.5  True
# 说明: Python 3.5 及以后的版本对此进行了优化
#       3.5 及以后版本数值与字符串都加入了对象池

s = 'abc'
r = 'abc'
print(s is r)  # True

# 拓展:可用于判定变量的类型
print(type(x) is int)  # True
print(type(s) is str)  # True

注意:运算符的优先级,算术运算符优先,然后身份运算符,再成员运算符,最后逻辑运算符。

总结:

a4ada88e70446633dcea946c56e7808b.png

2018年1月19日,第一次修改,个别错别字与语法问题,代码加上注释。

2019年2月25日,第二次修改,增加思维导图

2019年7月7日,第三次修改,修改身份运算符,增加is 与 == 的区别,修改思维导图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值