小白学 Python(4):变量基础操作
人生苦短,我选Python
引言
前文传送门
前面的文章中,我们介绍了基础数据类型中最常用的数字和字符串,不知道大家还记得什么是变量不?不记得变量也应该记得那被奶茶吧~~~都不记得自己去翻翻前面的文章吧。
变量
在 Python 中使用变量,有一个和 Java 最大的不同是无需先声明,直接在赋值的时候就完成了声明。
如果我们直接使用一个没有赋值的变量,会直接报错。
print(name)
// 输出结果:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-variable/Demo.py", line 2, in <module>
print(name)
NameError: name 'name' is not defined
错误信息是说我们的 name
变量未定义,如果我们先对 name
赋值,这个变量就被定义了。
name = "小明"
print(name)
// 输出结果:
小明
如果我们对这个变量再次进行赋值,新的赋值将会覆盖之前的赋值。
name = "小红"
print(name)
// 输出结果:
小红
当然,如果我们不再需要这个变量,也可以通过 Python 提供的 del 来删除这个变量。
del name
print(name)
// 输出结果:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-variable/Demo.py", line 2, in <module>
print(name)
NameError: name 'name' is not defined
每个变量在我们的程序当中都会占有一定的内存空间,那么内存空间不够大的时候再新建变量岂不是要内存溢出?理论上来讲是会出现这种情况,但是 Python 提供了自动辣鸡回收机制,我们不用的辣鸡变量, Python 是会帮我们自己动回收掉的。
但是,在极端情况下,我们所有需要使用的变量超出当前的内存空间怎么办?emmmmmmm
这个就需要用钱来解决了,加点内存它不香么。
变量类型转换
在某些情况下,我们的变量需要参加运算,如果变量类型不同会怎么样呢?
如果我们要使用一个字符串加上一个整形会怎么样呢?
print('123' + 123)
// 输出结果:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-variable/Demo.py", line 17, in <module>
print('123' + 123)
TypeError: can only concatenate str (not "int") to str
这句报错含义是告诉我们字符串只能连接一个字符串,并不能连接一个整形。
这里我们先写的是字符串,系统默认是做字符串连接操作,但是系统执行到后面发现并不是一个字符串,系统直接就原地炸了:说好的字符串呢?
这时如果我们想要正常运行怎么办呢?
如果仅仅只是要程序不报错,有两种解决方案:
- 将字符串强成整形,结果会是一个整形
- 将整形转成字符串,执行字符串拼接操作
当然,这里涉及到了类型强制转换。
float() 函数,将其他类型数据转为浮点数
str() 函数,将其他类型数据转为字符串
int() 函数,将其他类型数据转为整型
那么上面的报错我们就有了以下解决方案:
print('123' + str(123))
// 输出结果:
123123
print(int('123') + 123)
// 输出结果:
246
那么新的问题来了,如果是一个整形和一个浮点数想加最终会得到什么类型呢?
这里涉及到了一个新的知识点,叫做类型提升
print(123.5 + 123)
// 输出结果:
246.5
那么如果一个浮点型强转成整形又会怎么样呢?
print(int(123.7))
// 输出结果:
123
从示例中,可以看出强制类型降级时,会直接抹去末尾小数,这里并不会做四舍五入哦~~~
如果想使用四舍五入的方式,有一种比较简易的方式,加 0.5 ,如下示例:
print(int(123.7 + 0.5))
// 输出结果:
124
这么写有点不是那么优雅,我们还可以借助函数 round() 来实现。
print(int(round(123.4)))
// 输出结果:
123
print(int(round(123.5)))
// 输出结果:
124
示例代码
本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。
小白学 Python(4):变量基础操作的更多相关文章
- 小白学 Python(18):基础文件操作
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(23):Excel 基础操作(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据
在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...
- 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 小白学 Python 数据分析(17):Matplotlib(二)基础操作
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 小白学 Python(2):基础数据类型(上)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...
- 小白学 Python(5):基础运算符(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(6):基础运算符(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- 开发利器JRebel部署SpringBoot项目
不要以为年纪轻轻就跌倒了人生谷底,未来还有更大的下降空间等着你. idea下载和安装JRebel 激活JRebel 访问https://my.jrebel.com/ 使用facebook或twitte ...
- STL中关于全排列next_permutation以及prev_permutation的用法
这两个函数都包含在algorithm库中.STL提供了两个用来计算排列组合关系的算法,分别是next_permutation和prev_permutation. 一.函数原型 首先我们来看看这两个函数 ...
- DOM盒子模型常用属性client,offset和scroll
JS盒子模型属性 在JS中通过相关的属性可以获取(设置)元素的样式信息,这些属性就是盒子模型属性(基本上都是有关于样式的) 属性 值 client top/left/width/height offs ...
- mybatis if判断两个值是否相等存在的坑啊
1.使用“==”比较 字符类型 的值 用“==”比较的使用场景: 不管你用的什么类型的变量,只要变量的值是字符类型就用“==” 产生原因: 在mybatis中如果<if>标签用一个“=”判 ...
- linux中必备常用支持库的安装(CentOS)
在CentOS安装软件的时候,可能缺少一部分支持库,而报错.这里首先安装系统常用的支持库.那么在安装的时候就会减少很多的错误的出现 yum install -y gcc gdb strace gcc- ...
- spring中使用aop配置事务
spring的事务配置有5种方式,这里记录其中的一种:基于tx/aop声明式事务配置 在之前spring aop介绍和示例这篇所附代码的基础上进行测试 一.添加save方法 1.在testDao类里添 ...
- java中String常见问题
java中String常见问题 1.字符串比较==和equals ==:比较的是对象,判断两个引用的是否为同一内存地址(物理对象) equals:比较的是值 2.通过空白字符拆封字符串 str.spi ...
- java数据结构——哈希表(HashTable)
哈希表提供了快速的插入操作和查找操作,每一个元素是一个key-value对,其基于数组来实现. 一.Java中HashMap与Hashtable的区别: HashMap可以接受null键值和值,而Ha ...
- 3分钟掌握GIt常用命令
一.常用命令 git config [-l] 配置 git --help 帮助 git diff 文件 比较文件修改的内容 git add . 添加当前目录所有文件到暂存区 git add --u ...
- 从零开始入门 K8s | 应用编排与管理:Job & DaemonSet
一.Job 需求来源 Job 背景问题 首先我们来看一下 Job 的需求来源.我们知道 K8s 里面,最小的调度单元是 Pod,我们可以直接通过 Pod 来运行任务进程.这样做将会产生以下几种问题: ...