• 部分参考:菜鸟教程

文章目录

  • 一:变量
    • (1)概述
    • (2)值类型和引用类型
  • 二:运算符
    • (1)算数运算符
    • (2)关系运算符
    • (3)赋值运算符
    • (4)逻辑运算符
    • (5)成员运算符
    • (6)身份运算符
    • (7)位运算符

一:变量

(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 = 0c = 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 = 0if ( 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 = 0c = 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 = 20if ( 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 = 20if (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 = 0c = 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)


运算符优先级如下

第二章:变量和运算符相关推荐

  1. 《Java疯狂讲义》第3章(数据类型和运算符):博主李俊德的阅读笔记与知识拓展

    一.问题背景 博主在准备应聘的笔试.面试时,再次采用了多年以来的Java工具书<Java疯狂讲义>,并决定在每章详细复习后都要在博客中写下详细的阅读笔记. 二.阅读笔记与知识拓展--< ...

  2. python变量运算符_Python基础 — 变量和运算符

    序言:这一章我们将学习变量以及常见的类型,我们将以案例和代码相结合的方式进行梳理,但是其中所有的案例和知识点 都是Python3 版本. 变量和运算符 1.1 初步介绍 ​ 在程序设计中,变量是一种存 ...

  3. bash的特殊符号、变量和运算符

    Bash 中其他特殊符号 单引号&双引号 [root@localhost ~]#name=qyy #给变量name赋值,值为:qyy [root@localhost ~]#echo $name ...

  4. Scala语法之常量变量和运算符

    Scala语法之常量变量和运算符 1. 背景 官网:https://www.scala-lang.org/ scala是什么 上述截图可知,scala是一门编程语言.静态语言需要编译才能运行,强类型语 ...

  5. Java变量和运算符详解

    Java变量和运算符 已在思维导图中对变量知识框图进行整理! 使用markdown进行详细记录 分以下几点进行介绍: 变量基本原理 基本类型和引用类型变量 变量使用和注意事项 运算符 1. 变量基本原 ...

  6. python变量和运算符

    python变量和运算符 1.变量 创建变量: 创建规则: 赋值变量: 字母,数字和下划线,不可数字开头,不可是关键字 num=1 _name='' a,b,c=1,2,3 2.运算符 算术:+-*/ ...

  7. C++Primer读书笔记----第二章变量和基本类型

    前段时间学习iphone开发,非常力不从心,很多C/C++的类库代码看不明白.大学的时候都学过C/C++,但是基本上忘光了,现在做C#开发,经常写出来一些性能低下的代码,究其原因就是原理掌握不扎实,乱 ...

  8. Shell脚本:变量和运算符

    4.bash的变量和运算符 4.1 变量的命名规则 4.2 变量的分类 系统变量 环境变量 自定义变量 4.3 变量的查询 set命令 set -u #如果设定此项,当你调用未声明的变量时会报错,默认 ...

  9. Java基础以及变量和运算符、包机制、javadoc生成

    Java基础以及变量和运算符.包机制.javadoc生成 注释.标识符.关键字 注释 标识符 关键字 标识符注意点 数据类型 强类型语言 弱类型语言 Java的数据类型 基本类型(primitive ...

  10. 《C++Primer》第二章-变量和基本类型-学习笔记(1)

    <C++Primer>第二章-变量和基本类型-学习笔记(1) 文章目录 <C++Primer>第二章-变量和基本类型-学习笔记(1) 摘要 主体 基本(内置)类型 算数类型 整 ...

最新文章

  1. python中PIL模块
  2. Web前端与HTML5有什么区别,百分之八十的人分不清
  3. js oop写法小例子
  4. mysql构建栋_【转载】这次拆库 应是微服务化的拆分方式
  5. 前端学习(392):京东制作页面1京东项目项目介绍
  6. python属性_深入理解python对象及属性
  7. 论文浅尝 - IJCAI | Knowledge is NOT always you need: 外部知识注入预训练模型的利与弊...
  8. 随机森林特征重要性计算_R语言随机森林模型中具有相关特征的变量重要性
  9. 【分布式系统工程实现】系统可扩展性演化
  10. Linux x86-64 IOMMU详解(六)——Intel IOMMU参与下的DMA Coherent Mapping流程
  11. 教程 | 做一个自己专属的本地 BLAST 数据库
  12. 学习党Win10装机必备软件
  13. 三种不同的梯度下降算法和正则方程的线性回归预测结果对比
  14. MySQL_where条件查询
  15. 确定目标 目标确定的七大原则
  16. 你知道chrome小恐龙游戏吗?3分钟使用JavaScript实现
  17. python2.x 获取网页内容
  18. related_name
  19. 快速云:管理企业中云蔓延的7个技巧
  20. zstuACM 问题 H: 超级跳跳跳1281

热门文章

  1. 【朋友圈精选】web前端招聘面试的10个小分享
  2. 性能优化篇(3):避免空的图片src
  3. 华为手机免root改mac_拿到华为手机,这4个默认设置一定要改,不然流量电量很快被耗光...
  4. 4米乘以12米CAD图_CAD做钣金件展开的原理你知道吗?
  5. 德国80%的统计学教授都会答错的6个与P值有关的问题!
  6. Evernote是什么软件?印象笔记for mac V10.3.6官方版
  7. 1.4编程基础之逻辑表达式与条件分支 18 点和正方形的关系
  8. NOIP2001-普及组复赛-第2题-最大公约数和最小公倍数问题
  9. 计算机网络课程设计之TELNET 终端设计与实现
  10. SSH连接Linux CentOS7-Putty篇