Python系列之变量和运算符

news2025/1/21 0:59:35

目录

一、变量

1.1 什么是变量

1.2 变量的特点

1.3 作用域

1.4 变量的命名规则

1.5 变量的定义和使用

1. 变量的定义

2. 两个变量值的交换

1.6 基本数据类型分类

1.7 数据类型转换

1.8 Python是解释型的强类型动态语言

1.8.1 解释型

1.8.2 强类型

1.8.2 动态语言

二、运算符

2.1 算术运算符(常用)

2.2 赋值运算符(常用)

2.3 比较运算符(常用)

2.4 逻辑运算符(常用)

2.5 成员运算符(比较常用)

2.6 身份运算符(拓展)

2.7 位运算符 (拓展)

2.8 运算符的优先级


一、变量


1.1 什么是变量


一栋楼房,用来容纳人和物。我们可以说去302房间找某人或去303房间找某物。

在这里你可以把楼房理解成内存,302房间或303房间理解为变量名,某人或某物理解成变量的值。

变量:在内存中开辟一块空间,临时保存数据。通俗的说变量名就是存储空间的名字,通过这个名字来访问和存储空间中的数据。

1.2 变量的特点


  • 可以反复存储数据
  • 可以反复取出数据
  • 可以反复更改数据

1.3 作用域


变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。如果在过程之外声明变量,则该变量可以被Script中所有过程所识别,称为Script级变量,具有Script级作用域。

1.4 变量的命名规则


  • 变量名只能是字母数字下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 变量名要有见名知义的效果
    • 驼峰命名法
    • 小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
    • 大驼峰式命名法(upper camel case): 每一个单词的首字母都采用大写字母,例如:FirstName、LastName
    • 还有一种命名法是用下划线“_”来连接所有的单词,比如user_name
  • 变量名区分大小写
  • 以下关键字不能声明为变量名(关键字是python内部使用或有特殊含义的字符)['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

1.5 变量的定义和使用


1. 变量的定义

在python中,每一个变量在使用前都必须赋值,变量赋值后,变量就创建成功了。

变量名 = 值

示例:

示例:

Scala 语法变量的hashCode对比

示例:

2. 两个变量值的交换

其它语言中可以借助于第三个变量来交换变量 a 和b 的值

python中可以直接交换,两个变量的值

1.6 基本数据类型分类


数字

    • int 整型(1, 2, -1, -2)
    • float 浮点型(34.678)
    • bool 布尔型(True/False)
    • complex 复数(4+3J, 不应用于常规编程,这种仅了解一下就好

字符串

    • str 单引号,双引号和三引号内表示的内容为字符串 “hello world"

列表

    • list 使用中括号表示 [1, 2, 3, 4]

元组

    • tuple 使用小括号表示 (1, 2, 3, 4)

字典

    • dict 使用大括号表示,存放key-value键值对 {"a":1, "b":2, "c":3}

集合

    • set 也使用大括号表示,但与字典有所不同 {1, 2, 3, 4}

1.7 数据类型转换

示例:

age = 29
print(type(age))

name = "kangll"
print(type(name))

# str+int,字符串拼接报错;age=str(25),这一句就可以成功
print(name, "your " +  str(age) + " age." )

1.8 Python是解释型的强类型动态语言


1.8.1 解释型

  • 优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
  • 缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

1.8.2 强类型

强制数据类型定义的语言,也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

1.8.2 动态语言

运行时才进行数据类型检查 即在变量赋值时,才确定变量的数据类型,不用事先给变量指定数据类型 。也就是说,在用动态类型的语言编程时,永远也不会给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如shell 也多少属于动态类型语言。

例如

  • Python是动态语言,是强类型定义语言(类型安全的语言);
  • Shell是动态语言,是弱类型定义语言(类型不安全的语言);
  • JAVA是静态语言,是强类型定义语言(类型安全的语言)。

总结:Python是一门解释型的强类型动态语言。


二、运算符


常用的基本跟 Java是一样的, Python语言支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

2.1 算术运算符(常用)


算术运算符

描述

实例

+

加法

1+2=3

-

减法

5-1=4

*

乘法

3*5=15

/

除法

10/2=5

//

整除

10//3=3 不能整除的只保留整数部分

**

求幂

2**3=8

%

取余(取模)

10%3=1 得到除法的余数

2.2 赋值运算符(常用)


赋值运算符

描述

实例

=

简单的赋值运算符,下面的全部为复合运算符

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

+=

加法赋值运算符

a += b 等同于 a = a + b

-=

减法赋值运算符

a -= b 等同于 a = a - b

*=

乘法赋值运算符

a *= b 等同于 a = a * b

/=

除法赋值运算符

a /= b 等同于 a = a / b

//=

整除赋值运算符

a //= b 等同于 a = a // b

**=

求幂赋值运算符

a ** = b 等同于 a = a ** b

%=

取余(取模)赋值运算符

a %= b 等同于 a = a % b

2.3 比较运算符(常用)


比较运算符

描述

实例

==

等于(注意与=赋值运算符区分开),类似shell里的-eq

print(1==1) 返回True

!=

不等于,类似shell里的-ne

print(2!=1) 返回True

<>

不等于(同 != )

print(2<>1) 返回True

>

大于, 类似shell里的-gt

print(2>1) 返回True

<

小于, 类似shell里的-lt

print(2<1) 返回False

>=

大于等于 类似shell里的-ge

print(2>=1) 返回True

<=

小于等于 类似shell里的-le

print(2<=1) 返回False

2.4 逻辑运算符(常用)


逻辑运算符

逻辑表达式

描述

and

x and y

x与y都为True,则返回True;x与y任一个或两个都为False,则返回False

or

x or y

x与y任一个条件为True,则返回True

not

not x

x为True,返回False; x为False,返回True

2.5 成员运算符(比较常用)


成员运算符

描述

in

x 在 y 序列中 , 如果 x 在 y 序列中返回 True; 反之,返回False

not in

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True; 反之,返回False

在SQL语句里也有in和not in运算符;如

 

2.6 身份运算符(拓展)


身份运算符

描述

实例

is

is 是判断两个标识符是不是引用自一个对象

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

is not

is not 是判断两个标识符是不是引用自不同对象

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

2.7 位运算符 (拓展)


位运算符

说明

&

对应二进制位两个都为1,结果为1

|

对应二进制位两个有一个1, 结果为1, 两个都为0才为0

^

对应二进制位两个不一样才为1,否则为0

>>

去除二进制位最右边的位,正数上面补0, 负数上面补1

<<

去除二进制位最左边的位,右边补0

~

二进制位,原为1的变成0, 原为0变成1

2.8 运算符的优先级


常用的运算符中: 算术 > 比较 > 逻辑 > 赋值

示例:


# 变量定义
a = 20
b = 30

# 判断
if a < b and a != 10:
  print("hive")
  a += b
  print("a :" , a)
else:
  print("hadoop")

# 运算
print(a + b)
print(a * b)

执行结果:

参考:

Python 运算符 | 菜鸟教程

原文链接:python是解释型的强类型动态语言_淘小欣的博客-CSDN博客


                                      感谢点赞和关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3系列——Pinia状态管理库

目录 Pinia 安装、创建 Store 定义Store Option Store Setup Store 使用Store storeToRefs action异步实现 Pinia Pinia是Vue的专属状态管理库&#xff0c;它允许跨组件或页面共享状态&#xff0c;实现和Vuex一样的数据共享&#xff0c;是Vuex状态管理工具的替代品。…

【直播回顾】AIGC产业研究报告2023图像生成篇报告解读

易观&#xff1a;5月9日&#xff0c;易观高级分析师陈晨带来了《AIGC产业研究报告2023图像生成篇》的报告解读&#xff0c;错过直播的朋友敬请观看回顾&#xff01; 图像作为人工智能内容生成的一种模态&#xff0c;一直在AIGC领域中扮演着重要角色&#xff0c;由于图像生成应用…

1135 Is It A Red-Black Tree(超详细注释+46行代码)

1135 Is It A Red-Black Tree 分数 30 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 There is a kind of balanced binary search tree named red-black tree in the data structure. It has the following 5 properties: (1) Every node is either red or blac…

【C++】类和对象(中)---拷贝构造函数、赋值运算符重载

个人主页&#xff1a;平行线也会相交&#x1f4aa; 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】&#x1f48c; 本专栏旨在记录C的学习路线&#xff0c;望对大家有所帮助&#x1f647;‍ 希望我们一起努力、成长&…

MySQL之MHA高可用集群及故障切换

目录 一、MHA概述1.1 MHA 的组成1.2 MHA 的特点1.3 MHA的工作原理1.4 故障切换时MHA会做什么 二、搭建MySQLMHA2.1 实验思路2.2 实验环境、安装包2.3 服务搭建2.3-1 所有服务器挂壁防火墙和安全增强2.3-2 修改 Master、Slave1、Slave2 节点的主机名2.3-3 修改三台MySQL服务器主…

『新星计划 • 数据结构与算法』数据结构学习指南以及在校招中的重要性

文章目录 &#x1f490;文章导读&#x1f490;导师自我介绍&#x1f490;数据结构与算法的重要性&#x1f513;在岗位招聘中&#x1f513;在校招笔试中&#x1f513;在校招面试中&#x1f513;在未来工作中 &#x1f490;数据结构与算法如何学习⤴️学习路线⤵️学习方法↪️几…

tinyWebServer 学习笔记——一、半同步半反应堆线程池

文章目录 一、基础知识1. 服务器编程基本框架2. 五种 I/O 模型3. 事件处理模式4. 半同步/半反应堆模式5. 线程池 二、代码解析1. 线程池类定义2. 线程池创建与回收3. 向请求队列中添加任务4. 线程处理函数5. run 执行任务 参考文献 一、基础知识 1. 服务器编程基本框架 服务器…

软件测试 自动化测试selenium篇(一)

目录 一、什么是自动化测试 单元测试 接口自动化 UI自动化 二、如何实施自动化测试 自动化测试需要了解的技能 三、selenium介绍 webdriver的工作原理&#xff1a; 四、SeleniumJava环境搭建 验证环境是否搭建成功 创建java项目&#xff0c;添加pom文件中添加依赖 常见问…

一些使用树莓派遇到的问题

在长达两个月的实习期&#xff0c;白天去公司实习&#xff0c;晚上回到实验室学习树莓派。终于简单的入门了。来做个总结。 目录 1. wifi问题 树莓派之wifi连接 2.vnc树莓派桌面问题 3.安装库或者下载东西时&#xff0c;域名无法解析。 4.进行安装或者操作时&#xff0c…

【Java多线程编程】解决线程的不安全问题之volatile关键字

目录 1. 造成线程不安全的代码 2. volatile能保证内存可见性 3. synchronized与volatile的区别 3.1 synchronized能保证原子性 3.2 volatile不能保证原子性 1. 造成线程不安全的代码 有一代码&#xff0c;要求两个线程运行。并自定义一个标志位 flag&#xff0c;当线程2&…

UVM学习——搭建简单的UVM平台

引言 本专栏的博客均与 UVM 的学习相关&#xff0c;学习参考&#xff1a; 【1】UVM Tutorial 【2】张强著&#xff0c;UVM实战 &#xff08;卷 Ⅰ&#xff09; 【3】Download UVM (Standard Universal Verification Methodology) 本专栏的学习基本依照 资料【2】的主线&#…

【机器学习】正规方程法求解线性回归问题

前情提要&#xff1a;https://blog.csdn.net/weixin_45434953/article/details/130604086 正规方程 正规方程能以更好的方式求得假设函数中 θ \theta θ的最优值。它提供了一种用于求 θ \theta θ的解析方法&#xff0c;而不是梯度下降那样的迭代方法。也就是只需要一次运算…

Microsoft Power BI连接本地mysql 数据库 !power bi提示此连接器需要安装一个或多个其他组件才能使用怎么办!

一、步骤 &#xff08;一&#xff09;从菜单栏点击进入mysql数据库 点击主页>获取数据>更多 选择mysql数据库&#xff0c;点击连接 &#xff08;二&#xff09;已经安装了mysql connector/net还是提示此连接器需要安装一个或多个其他组件才能使用-解决 重装了几次都…

vue-cli 关闭 Uncaught error 的全屏提示

在使用vue-cli开发项目的时候&#xff0c;如果代码抛出异常了&#xff0c;那么就会出现一个全屏的提示框&#xff0c;长下面这样&#xff1a; 经过一段时间的排查发现是webpack的问题&#xff0c;排查方式就是打开控制台&#xff0c;看这个框的一些属性&#xff0c;通常会有一些…

【DNDC模型】在土地利用变化、未来气候变化下的建模方法及温室气体时空动态模拟实践技术

DNDC&#xff08;Denitrification-Decomposition&#xff0c;反硝化-分解模型&#xff09;是目前国际上最为成功的模拟生物地球化学循环的模型之一&#xff0c;自开发以来&#xff0c;经过不断完善和改进&#xff0c;从模拟简单的农田生态系统发展成为可以模拟几乎所有陆地生态…

界面开发框架Qt新手入门教程 - 可编辑树模型的示例(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 The Qt Company是Di…

考研日语-详解ている、てある、ていく、てくる用法

目录 一、ている用法 1. 表示现在状态 2. 表示持续动作 3. 表示经验或习惯 4. 表示结果或效果 二、てある用法 1. 表示已经完成的动作 2. 表示现在状态 3. 表示被动 三、ていく用法 1. 表示未来的动作 2. 表示逐渐变化的过程 四、てくる用法 1. 表示过去到现在的…

Python实现哈里斯鹰优化算法(HHO)优化XGBoost分类模型(XGBClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO)&#xff0c;该算法有较强的全…

滴滴一面:BigKey问题很致命,如何排查和处理?

说在前面 在40岁老架构师 尼恩的读者社区(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如极兔、有赞、希音、百度、网易、滴滴的面试资格&#xff0c;遇到一几个很重要的面试题&#xff1a; 致命的的Redis BigKey 如何排查&#xff0c;你处理过吗&#xff1f; 与之类似…

Yield Guild Games: RON 质押来啦!

Yield Guild Games (YGG) 自 2022 年 7 月以来一直是 Ronin 区块链的验证者&#xff0c;在保障和维护网络方面发挥着至关重要的作用。随着 2023 年 4 月委托权益证明 (DPoS) 的推出&#xff0c;质押生态系统进一步民主化&#xff0c;允许更多的参与者在赚取奖励的同时为网络的安…