:变量和运算符

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中虽然变量可以直接赋值,但是它却有值类型引用类型之分

  • 值类型(不可改变):不同变量所指向的对象是不一样的;例如intstrtuple
  • 引用类型(可以改变):虽然变量名不同,但是其所指向的对象是一样的;例如listsetdict

比如下面例子中,int是一种值类型,因此ab指向的是不同的对象;而list是一种引用类型,所以ab指向的是同一个对象

二:运算符

  • 运算符这部分较为简单,这里借助菜鸟教程列出常用的各种类型的运算符即可
  • 一些细节内容会另外标注

(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 = 1b =1.0,那么执行a == b 肯定返回True,但是执行a is b返回的却是False,因为标识符ab引用的不是相同的对象。因此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)



运算符优先级如下

以上是关于:变量和运算符的主要内容,如果未能解决你的问题,请参考以下文章

JS杂谈

shell变量

PLS-00049 不良绑定变量 [关闭]

Svelte - 更新值时防止重新渲染

Delphi:如何在cmd命令中将变量作为参数提供

C