04 - Python 变量类型 & 运算符

python 使用Template,替换字符串中的特定标识${} ","condition.pharmacopoeia":"测试生产厂家","condition.spec":"g","condition.spell":"csyp02","condition.alias":"","condition.chemicname":"","condition.id":"","condition.num":"","b_d":""}', 'expected_data': '{"code":0,"message":"添加成功! 阅读详情

04 - Python 变量类型 & 运算符

一、前言

经过我们之前几天的学习,我们应该已经掌握了 Python 中相关的基础内容操作。

那么我们今天就正式的开始学习 Python 当中编程相关的知识了。

今天的内容会稍多,约2800+字,阅读完成需 15 分钟。

image

二、变量

2.1 什么是变量?

所谓变量其实大家可以理解为就是用一个“水杯”倒入不同的饮料,那不管我们倒入哪种饮料,我们的水杯是一直没有发生过改变的。

在计算机中其实也是类似,变量就是用来保存不同内容的一个“杯子”。

2.2 声明变量

Python 中类型虽然有很多种,但是我们声明变量却很简单。

直接将需要赋值的内容直接放在一个名字后面即可(等号用作连接)。

# num 就是我们变量的名字,
# 我们可以读作将数字常量 10 赋值给变量 num
num = 10

2.3 变量名

我们刚刚是用来了我们的变量,但是变量的名字就只能是 num 么?

肯定不是,只要我们符合我们命名的规则,就可以随意的去声明内容。

那 Python 当中命名规则都有哪些呢?

2.3.1 可包含内容

Python 中变量的命名可以包含以下内容:

  1. 数字
  2. 字母
  3. 下划线

有同学可能说了,美元符($)我在使用的时候也并没有报错呀,为什么这里说不能包含呢?

其实这个问题主要出现在不同的操作系统中,在 Windows 或者 Mac 当中,使用 $ 并不会出现什么异常。

但是如果在 Linux 系统中,使用 $ 则会提示异常。

所以我们在使用的时候,应当避免使用 $ ,和 C++ 中是一样的。

2.3.2 见名之意

为了提升我们代码的可读性,我们应该做到变量的命名即可以体现变量的含义。

  • 提升可读性
    • time:时间
    • start_time:开始时间
  • 对或者错(布尔类型)
    • 是否删除: is_delete
    • 是否禁用 : is_enabled
2.3.3 驼峰命名

如果我们在命名的过程当中,出现需要使用多个单词去一起组成时,我们需要使用驼峰命名。

image

  • 小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写
    • 例如:myName、aDog
  • 大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母
    • 例如:FirstName、LastName
2.3.4 匈牙利命名法

匈牙利命名法(Hungarian Notation)是一种几乎被遗弃的一种命名方式,其含义是把变量的类型缩写,放到变量名的最前面。

# int -> n
# long -> l
# char -> ch

n_studentNumber = 12

# students、teachers ,他们指向的内容都是Person对象的list

pl_students #p代表的是person、l代表的是list

这种方法在 IDE 没有流行之前是比较有用的,但是在开发工具日益强大之后,这种方法已经慢慢被遗弃了。

但是这种方法中可以为我们所用的方式是:利用下划线来配合变量的命名。

tomorrow_weather

student_name

MR_LP
2.3.5 避免和关键字重复

python一些具有特殊功能的标示符,这就是所谓的关键字。

这些关键字在 python 中已经被使用,所以不允许开发者自己定义和关键字相同的名字的标示符。

image

>>>  print("我是 MR_LP,欢迎关注公众号 MR_LIXP")
>>> import keyword
>>> keyword.kwlist

输入 keyword 的列表之后,可以得到已经被使用的以下关键字。

      and     as      assert     break     class      continue    def     del
      elif    else    except     exec      finally    for         from    global
      if      in      import     is        lambda     not         or      pass
      print   raise   return     try       while      with        yield
2.3.6 变量的命名区分大小写

在 Python 中,大小命名和小写命名完全是两个变量。

2.3.7 变量的命名不宜过长

例如:i_want_play_the_playstartion4
可以看出来这个变量名相当于一个函数名一样,在代码里调用的时候,也会产生很大的误解。
一个好的变量名长度控制在两到三个单词左右。

三、输入

3.1 input( ) 的用法

我们上次课的时候说过输出可以使用 print 将我们需要展示出来的内容显示出来。

但是当我们需要将我们的内容进行读入,这时候应该怎么办呢?

我们可以使用input( )函数。

    password = raw_input("请输入密码:")
    print '您刚刚输入的密码是:', password

运行效果如下:

image

需要注意:

  • input()的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示
  • input()在从键盘获取了数据以后,会存放到等号右边的变量中
  • input()会把用户输入的任何值都作为字符串来对待

3.2 input( ) 输入不同的值

我们刚刚说过,input()会把用户输入的任何值都作为字符串来对待。

那我们输入不同的内容,input( )会发生什么样的变化呢?

image

3.3 input( ) 和 raw_input( )

这两个方法其实是历史更迭的产物。

  • python 2 : raw_input( )
  • python 3 : input( )

需要注意,两者在使用上并无明显变化,可以理解为是同一“物种”。

四、变量的类型 & 变量的转化

4.1 使用方法确定变量的类型

细心的读者可能发现了,我刚刚在上面的时候使用了这么一个东西。

>>> a = input()
123
>>> a
123
>>> type(a)
<type 'int'>

其中 type( ),是我们经常用来判断一个变量的具体类型的方法。

同时需要注意,在 Python 中只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要咱们开发者主动的去说明它的类型,系统会自动辨别。

4.2 Python 中变量的类型

我们一般常见的变量类型请见下图。

image

4.3 变量之间的转化

如果运算过程中,需要使用不同类型的内容去进行操作,我们还会涉及到我们变量之间的转化。

例如:

a = '100'   # 此时a的类型是一个字符串,里面存放了100这3个字符
b = int(a)  # 此时b的类型是整型,里面存放的是数字100

print("a=%d"%b)

以下为我们在进行变量之间转化时常用的方法。

函数说明
int(x [,base ])将x转换为一个整数
long(x [,base ])将x转换为一个长整数
float(x )将x转换到一个浮点数
complex(real [,imag ])创建一个复数
str(x )将对象 x 转换为字符串
repr(x )将对象 x 转换为表达式字符串
eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )将序列 s 转换为一个元组
list(s )将序列 s 转换为一个列表
chr(x )将一个整数转换为一个字符
unichr(x )将一个整数转换为Unicode字符
ord(x )将一个字符转换为它的整数值
hex(x )将一个整数转换为一个十六进制字符串
oct(x )将一个整数转换为一个八进制字符串

五、Python 中的运算符

首先列举一下 Python 中常见的算数运算符都有哪些?

5.1 算数运算符

运算符描述实例
+加两个对象相加 a + b 输出结果 30
-减得到负数或是一个数减去另一个数 a - b 输出结果 -10
*乘两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/除x除以y b / a 输出结果 2
//取整除返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
%取余返回除法的余数 b % a 输出结果 0
**幂返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000

举个例子:

>>> 9/2.0
4.5
>>> 9//2.0
4.0

5.2 赋值运算符

运算符描述实例
=赋值运算符把=号右边的结果给左边的变量 num=1+2*3 结果num的值为7

同样举个例子:

>>> a, b = 1, 2
>>> a
1
>>> b
2

5.3 复合运算符

其实复合运算符其实就是我们基础运算符的升级版,但是这个升级仅仅是书写方式上的升级,运算效率上并没有任何的提升。

i = i + 1   # i在自身的基础上增加1,并重新赋值给 i ,实现了经过这句代码后 i 变成了2的效果

i += 1      # i在自身的基础上增加1,并重新赋值给 i,同样实现了经过这句代码后 i 变成了2的效果

我们常见的复合运算符如下:

运算符描述实例
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a

5.4 Python 中 i++ 报错

相信读者如果之前学习过其他语言,那么很容易在书写代码中直接使用“累加器”。

>>> i = 10
>>> i++
  File "<stdin>", line 1
    i++
      ^
SyntaxError: invalid syntax

但是我们会发现,当我们去使用 i++,之后,我们的程序直接报错了。

具体原因请看下面的测试代码1 及 测试代码2。

# 测试代码 1

>>> a = 5
>>> b = 5
>>> id(a)
140618689958600
>>> id(b)
140618689958600

和

# 测试代码 2

>>> a = 1
>>> b = 2
>>> id(a)
140618689958696
>>> id(b)
140618689958672
>>> a+=1
>>> id(a)
140618689958672
>>> id(b)
140618689958672

细心的读者们肯定已经发现了,我们声明变量 a 和变量 b,它的内容空间居然是相同的?

python中的变量不像c那样事先定义好变量类型,在内存中开辟指定的空间,然后再开始赋值。

在Python中,以字符串为例:事先在内存划分空间来存放字符串,然后用变量名去指向这个字符串,类似于指针。

当 变量 a , b 指向的是同一个内存空间时,又怎么能使用 “自增/自减” 运算呢?。

各位读者需要注意,Python 中是不支持 i++ 这种写法的。

【python学习-04运算符】 Python 运算符和运算符优先级学习! 阅读详情

相关推荐

目标检测 RT-DETR(2023)详细解读

在使用了这个技巧后,显然训练过程中,类别的标签不再是此前的0和1离散值,而是0~1的连续值。关于 Query Selection(查询向量选择),大家应该并不陌生,这个方法可谓在DETR领域大杀四方,如DAB-DETR对查询向量进行重构理解,将其解释为Anchor,DN-DETR通过查询降噪来应对匈牙利匹配的二义性所导致的训练时间长的问题,DINO提出从Encoder中选择Top-k特征进行学习等一系列方法,这都无疑向我们证明,查询向量很重要,选择好的Query能够让我们事半功倍。在RT-DETR中,

qq_51352130的博客 5870

python 脚本中常见的 $符号 都代表什么意思?

shell 脚本中常见的$符号 $(pwd) ${} $1

lft_happiness的博客 1万+

一文帮你彻底搞懂ARM Debug Interface之SWD(转)

ARM的文档写的已经很好了,但是关于上电以后的第一时间应该怎么操作,依然写的不够清晰,导致我第一次用的时候还是费了一些周折。今天做一个详细的梳理,希望能够帮助到更多的朋友。BTW, ARM_Cortex-M0/3 DesignStart系列会持续更新,只是中间可能会穿插其他知识点。SWD是Serial Wire Debug的简称,翻译成中文是”串行线调试”。

2302_79847220的博客 6861

python替换“${}“占位符为变量,实现读取配置文件

python替换占位符为变量,实现读取配置文件

ADY的博客 1358

软考中级信息系统监理师(第二版)-第21章基础设施工程监理

由于网络信息技术的飞速发展,变化日新月异,网络设计不但要保证目前网络传输容量的要求,也要考虑今后网络的发展,满足当前以及今后相当一段时间内的网络需求,便于向新技术的升级和衔接,同时又需要保护原有的投资。通用布缆系统工程中,承建单位的竣工文档主要包括以下内容:承建合同,招标文件,投标文件,设计方案,工程实施组织设计方案,工程施工报告,隐蔽工程记录,变更记录,自测报告,信息点分布图(表),园区、楼宇、水平配线表,楼层平面图及无线设备点位图,无线设备信息表,竣工图纸等。多排安装时,列间距不应小于1200mm。

2301_78583973的博客 1400

DataWorks数据安全治理最佳实践

DataWorks基于数据安全治理的常见思路,针对资产梳理、技术体系建设和运营体系建设,提供了一系列数据安全产品能力,您可通过“基础防护建设、数据安全防护措施及策略增强建设、数据安全持续运营”三个阶段在DataWorks上落地数据安全治理项目。参考本文启动数据安全治理项目前,建议您先了解DataWorks数据安全产品相关能力了解DataWorks数据安全产品能力后,您可参考如下三个阶段在DataWorks上落地数据安全治理项目。

soso1968的博客 1438

python基本语法规则及设置

python基本语法规则及设置 一、设置作者信息 设置路径:如下图所示: “”" @Time : ${DATE} ${TIME} @Author : yyx @File : ${NAME}.py @Email :1234@163.com ================================ “”" 设置完成后,每次新建python文件,都会自动带editor信息。...

oceancsdn的博客 890

华为C语言笔试题(附答案)

华为C语言笔试题(附答案)     1、局部变量能否和全局变量重名?   答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "   局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。  

峰云四起 3035

python格式化字符串中存在{}的处理

python新的字符串格式化是str的format方法,而他对关键字替代的标识符是{}“str:{0}”.format("STR") "str:{name}".format(name = "STR") 早期的python版本的格式化字符串使用的是类似C的转移字符,所以使用\标识出来就可以了。 "str:%s" % ("STR") "str:%(name)" % {name : "STR"}

开发者说 3595

CANoe软件之离线报文回放与分析实战

本文详细介绍了如何使用CANoe软件进行离线报文回放与分析,帮助工程师将现场故障数据转化为可反复研究的实验室资源。通过实战步骤,指导如何搭建分析工程、加载DBC文件解码信号,并利用Trace和Graphics窗口进行深度数据筛选与图形化分析,从而高效定位汽车电子故障,是提升诊断效率的关键技能。

weixin_29227585的博客 529

手把手教你用FreeModbus RTU协议栈实现STM32与PLC通信(附Keil工程)

本文详细介绍了如何使用FreeModbus RTU协议栈在STM32上实现与PLC的工业通信。从环境搭建、工程配置到关键移植接口实现,提供了Keil工程模板和调试技巧,帮助开发者快速掌握Modbus RTU通信技术,适用于工业自动化领域的设备间通信需求。

weixin_42549037的博客 419

python 变量类型&运算符说明

#!/usr/bin/python # coding=utf-8 def main(): print("变量类型: 字符串、 列表、元组、字典") hazy = "Hazy Awesome " test = "Wonderful" list = ['a','b' ,'c',1, 2, 3] #列表可赋值 tuple = ('a','b' ,'c',1, 2, 3) #元组不可赋值 dictionaries = { } dictionaries['笑'

weixin_49843611的博客 128

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

【WRF-Chem 工具】CAMStoWRF详解:CAMS数据下载及处理

WW、forever的博客 195

python-基础篇-高级变量类型

List(列表) 是Python中使用最频繁的数据类型,在其他语言中通常叫做数组专门用于存储一串 信息列表用[]定义,数据之间使用分隔列表的索引从0开始索引就是数据在列表中的位置编号,索引又可以被称为下标注意:从列表中取值时,如果超出索引范围,程序会报错Tuple(元组)与列表类似,不同之处在于元组的元素不能修改元组表示多个元素组成的序列元组在Python开发中,有特定的应用场景用于存储一串 信息数据之间使用分隔元组用()定义元组的索引从0开始索引就是数据在元组中的位置编号。

stqer的博客 1043

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【Python】Python中的运算符与注释

【Python】Python基础知识——运算符与注释 详细介绍Python中的运算符与注释的相关内容……

蒙奇D索大的博客 2129

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【20212121】Python基础 04运算符

04 运算符 算术运算符 四则运算: 加法运算符 表现形式 + 减法运算符 表现形式 - 乘法运算符 表现形式 * 除法运算符 表现形式 / 其他: // 整除(取整),只会保留计算后的整数位,总会返回一个整型 % 取模,求两个数相除的余数 ** 幂运算,求一个值的几次幂 赋值运算符 比较运算符(关系运算符) 逻辑运算符 条件运算符(三元运算符) ...

ZERO 431

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python笔记04: 运算符

表达式 由一个或者几个数字或者变量和运算符组合成的一行代码 通常会返回一个结果 运算符 由一个以上的值经过变化得到新值的过程就叫运算 用于运算的符号叫运算符 运算符分类: 算数运算符 比较或者关系运算符 赋值运算符 逻辑运算符 位运算 成员运算 身份运算符 算数运算符 进行算数运算的符号 python没有自增自减运算符 # +,-跟正常算术运算符一模一样 a = 9+3-2 pr...

weixin_45513332的博客 416

python 04 运算符

目录 常见的运算符: 算术运算符: 关系(比较)运算符: 逻辑运算符: 所属运算符:(了解 不作为重点) 赋值运算符: 二元赋值符: 三目运算符:(仅作参考了解) 位运算符: 运算符用于对变量和值执行操作。 常见的运算符: 算术运算符: + 两个对象相加 - 得到负数或者一个数减去另一个数 * 两个数相乘 或者返回一个杯重复若干次的字符串 / a除以b // 取整数 --- 返回商的整数部分 ...

m0_60379130的博客 431

Python 编程 | 连载 04 - 字典与运算符

Python 编程 | 连载 04 - 字典与运算符

DEVELOPERAA的博客 1179

python 运算符——04

python 运算符——04 1.运算符 1.1 运算符的概念 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。 1.2 运算符的分类 • 算术运算符 • 赋值运算符 • 比较运算符(关系运算符) • 逻辑运算符 • 条件运算符(三元运算符) 2.算术运算符 • 加法运算符 表现形式 + • 减法运算符 表现形式 - • 乘法...

qq_46698164的博客 291

Python-04-运算符

运算符 描述说明 用法 结合方向。a=b=c=100 #相当于执行a=100 b=100 c=100。== 等于 98==90 False。赋值运算符: =、+=、-=、*=、/=、//=、%=、**== 不等于 98!>= 大于或等于 98>=98 True。<= 小于或等于 98<=98 True。a,b=10,20 #相当于执行了a=10 b=20。

m0_70893463的博客 1017

04-python运算符

几个概念 1.1 表达式 • 表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合 • 表达式特点 • 表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响 • 如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出 1.2 语句 • 一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成 • 语句的执行一般会对程序产生一...

python202005的博客 382

04 python运算符

01运算符 “”" 运算符: 算术运算符:加减乘除 比较运算符:大于,小于,等于22 赋值运算符: 变量赋值 = 成员运算符: 是否包含 逻辑运算符: 且或非 “”" a = 10 b = 20 –a # 负负得正 ++a # 正正得正 print(a - b) print(–a) print(a/b) print(b % a) print(a % b) # 10 num = 0 while num &lt;= 100: if num % 2 == 0: print("偶数",num) e

Eliaukgit的博客 608

Python基础-04运算符

文章目录四、运算符1. 算术运算符- divmod()函数(了解)- 数字型变量 之间可以直接计算- 运算符的字符串使用2. 赋值运算符和复合赋值运算符3. 比较(关系)运算符4. 逻辑运算符- 逻辑运算符- 逻辑运算符计算5. 同一运算符( is 和 is not)(身份运算符)- 同一运算符- is 与 == 区别:- 数字类型和字符串类型数据的缓存区(了解)- 整数缓存问题- 字符缓冲问题6. 运算符的补充(未讲)1. 比较运算符连用3. 加法操作(待定)4. 乘法操作 (待定)2. 位运算(了解)5

qq_45725870的博客 905

python常用的操作运算符

一、常用的操作运算符 1、算数操作符 注:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。 注意:// 取整数-返回商的整数部分(向下取整) 2、比较运算符 3、赋值运算符 4、按位运算符 1)按位左移 指的是二进位全部左移n位,高位丢弃,低位补0 2)按位右移 指的是将二进位全部右移n位,移出的位丢弃,移进的位补符号位。按...

yangxiaoyan12的博客 8355
上一篇: 03 - Python 基础
下一篇: 05 - Python 判断 & 循环
MR_LP
博客等级 码龄11年 236粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值