:变量和运算符
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:变量和运算符相关的知识,希望对你有一定的参考价值。
文章目录
一:变量
(1)概述
Python是动态语言,因此其变量不需要声明、不需要定义,直接使用=
赋值即可
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
print(counter)
print(miles)
print(name)
而且在Python中,是允许同时为多个变量赋值的
a = b = c = 1
d, e, f = 3, 2, "hello" # 为多个对象指定多个变量
print(a, b, c, d, e, f)
(2)值类型和引用类型
Python中虽然变量可以直接赋值,但是它却有值类型和引用类型之分
- 值类型(不可改变):不同变量所指向的对象是不一样的;例如
int
、str
、tuple
- 引用类型(可以改变):虽然变量名不同,但是其所指向的对象是一样的;例如
list
、set
、dict
比如下面例子中,int
是一种值类型,因此a
和b
指向的是不同的对象;而list
是一种引用类型,所以a
和b
指向的是同一个对象
二:运算符
- 运算符这部分较为简单,这里借助菜鸟教程列出常用的各种类型的运算符即可
- 一些细节内容会另外标注
(1)算数运算符
- 算数运算符的主要作用是进行算数运算
演示
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值为:", c)
c = a - b
print ("2 - c 的值为:", c)
c = a * b
print ("3 - c 的值为:", c)
c = a / b
print ("4 - c 的值为:", c)
c = a % b
print ("5 - c 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print ("6 - c 的值为:", c)
a = 10
b = 5
c = a//b
print ("7 - c 的值为:", c)
(2)关系运算符
- 关系运算符的主要作用是进行大小关系比较,最终会返回一个布尔类型的值
- 需要注意的是,并不是只有数字才可以比较,像字符串、列表、元组等都是可以比较的
a = 21
b = 10
c = 0
if ( a == b ):
print ("1 - a 等于 b")
else:
print ("1 - a 不等于 b")
if ( a != b ):
print ("2 - a 不等于 b")
else:
print ("2 - a 等于 b")
if ( a < b ):
print ("3 - a 小于 b")
else:
print ("3 - a 大于等于 b")
if ( a > b ):
print ("4 - a 大于 b")
else:
print ("4 - a 小于等于 b")
# 修改变量 a 和 b 的值
a = 5
b = 20
if ( a <= b ):
print ("5 - a 小于等于 b")
else:
print ("5 - a 大于 b")
if ( b >= a ):
print ("6 - b 大于等于 a")
else:
print ("6 - b 小于 a")
(3)赋值运算符
- 赋值运算符的主要作用是对变量赋值
- 部分赋值运算符在C语言教程中有过详细介绍,这里不再赘述
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值为:", c)
c += a
print ("2 - c 的值为:", c)
c *= a
print ("3 - c 的值为:", c)
c /= a
print ("4 - c 的值为:", c)
c = 2
c %= a
print ("5 - c 的值为:", c)
c **= a
print ("6 - c 的值为:", c)
c //= a
print ("7 - c 的值为:", c)
(4)逻辑运算符
- 逻辑运算符的主要作用是操作布尔类型,进行逻辑判断,返回结果仍然为布尔类型
- 对于
and
,只要它遇到False
,那么整个结果就会是False
,后续表达式不再运行 - 对于
or
,只要它遇到True
,那么整个结果就会是True
,后续表达式不再运行 - 数字0、空字符串、空列表/元组/集合/字典都会被认为是
False
a = 10
b = 20
if ( a and b ):
print ("1 - 变量 a 和 b 都为 true")
else:
print ("1 - 变量 a 和 b 有一个不为 true")
if ( a or b ):
print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("2 - 变量 a 和 b 都不为 true")
# 修改变量 a 的值
a = 0
if ( a and b ):
print ("3 - 变量 a 和 b 都为 true")
else:
print ("3 - 变量 a 和 b 有一个不为 true")
if ( a or b ):
print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("4 - 变量 a 和 b 都不为 true")
if not( a and b ):
print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print ("5 - 变量 a 和 b 都为 true")
(5)成员运算符
- 成员运算符的主要作用是判断某个元素是否在另外一组元素中,返回布尔类型
- 特别注意字典
dict
,它是根据 键值key
来判断的
a = 10
b = 20
list = [1, 2, 3, 4, 5 ]
if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中")
if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中")
# 修改变量 a 的值
a = 2
if ( a in list ):
print ("3 - 变量 a 在给定的列表中 list 中")
else:
print ("3 - 变量 a 不在给定的列表中 list 中")
(6)身份运算符
-
身份运算符的主要作用是判断两个标识符引用的是否是相同的对象,返回布尔类型(如果有C/C++基础,这一点应该很好理解;如果不理解也没有关系,了解完对象之后你会明白的)
-
id()
函数用于获取对象内存地址,因此身份运算符本质在比较所引用的对象内存地址是否相同 -
注意区别
==
和is
。举个例子:a = 1
、b =1.0
,那么执行a == b
肯定返回True
,但是执行a is b
返回的却是False
,因为标识符a
和b
引用的不是相同的对象。因此is
用于判断两个变量引用对象是否为同一个,==
用于判断引用变量的值是否相等
a = 20
b = 20
if (a is b):
print("1 - a 和 b 有相同的标识")
else:
print("1 - a 和 b 没有相同的标识")
if (id(a) == id(b)):
print("2 - a 和 b 有相同的标识")
else:
print("2 - a 和 b 没有相同的标识")
# 修改变量 b 的值
b = 30
if (a is b):
print("3 - a 和 b 有相同的标识")
else:
print("3 - a 和 b 没有相同的标识")
if (a is not b):
print("4 - a 和 b 没有相同的标识")
else:
print("4 - a 和 b 有相同的标识")
(7)位运算符
-
位运算符的主要作用是把数字当做二进制数字进行运算
-
位运算符在C语言教程中有详细介绍,这里不再赘述
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b # 12 = 0000 1100
print ("1 - c 的值为:", c)
c = a | b # 61 = 0011 1101
print ("2 - c 的值为:", c)
c = a ^ b # 49 = 0011 0001
print ("3 - c 的值为:", c)
c = ~a # -61 = 1100 0011
print ("4 - c 的值为:", c)
c = a << 2 # 240 = 1111 0000
print ("5 - c 的值为:", c)
c = a >> 2 # 15 = 0000 1111
print ("6 - c 的值为:", c)
运算符优先级如下
以上是关于:变量和运算符的主要内容,如果未能解决你的问题,请参考以下文章