人生苦短,我选Python

引言

前文传送门

前面的文章中,我们介绍了基础数据类型中最常用的数字和字符串,不知道大家还记得什么是变量不?不记得变量也应该记得那被奶茶吧~~~都不记得自己去翻翻前面的文章吧。

变量

在 Python 中使用变量,有一个和 Java 最大的不同是无需先声明,直接在赋值的时候就完成了声明。

如果我们直接使用一个没有赋值的变量,会直接报错。

print(name)

// 输出结果:

Traceback (most recent call last):

File "D:/Development/Projects/python-learning/base-variable/Demo.py", line 2, in

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

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

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变量加点_小白学 Python(4):变量基础操作相关推荐

  1. python判断素数_小白学Python | 你还在说你入不了门吗

    收藏的好多啊 原创不易,动动小手,点个赞啦!! 十二月份,天气有时候会很阴沉,一天都见不到太阳.气温也慢慢变冷了,晚上回家还是会感觉到衣服穿少了. 阴阴沉沉总会过去的,我还是期待阳春三月. 2019年 ...

  2. python 爬虫框架_小白学 Python 爬虫(28):自动化测试框架 Selenium (下)

    人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...

  3. 小白学python需要多久_小白学Python | 你还在说你入不了门吗

    收藏的好多啊 原创不易,动动小手,点个赞啦!! 十二月份,天气有时候会很阴沉,一天都见不到太阳.气温也慢慢变冷了,晚上回家还是会感觉到衣服穿少了. 阴阴沉沉总会过去的,我还是期待阳春三月. 2019年 ...

  4. python绘制直角坐标系_小白学 Python 数据分析(16):Matplotlib(一)坐标系

    人生苦短,我用 Python 前文传送门: 引言 各位同学好,本篇文章,我们来介绍下使用 Matplotlib 时如何建立坐标系. 回想一下以前我们在接受九年义务教育毒打上数学课的时候,应该都画过折线 ...

  5. logback-spring.xml 文件路径 相对路径_小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. ora-00923数据类型不一致_小白学 Python(2):基础数据类型(上)

    如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,获取最新干货推送:) 人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基 ...

  7. python 相对路径报错_小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  9. matplotlib plot 分组_小白学 Python 数据分析(16):Matplotlib(一)坐标系

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

最新文章

  1. getopt 函数2
  2. golang 切片 接口_一日看尽golang高级语法之slice
  3. Request和Response-学习笔记05【ServletContext对象、文件下载】
  4. 转 c#读写xml文件
  5. Laravel 5.8 正式发布(文档翻译已启动)
  6. bio-linux_Bio-Linux:稳定,可移植的科学研究Linux发行版
  7. [转]如何用VS2005制作Web安装程序
  8. javascript中encodeURI和decodeURI方法
  9. 项目日报模板_能力再强也要常向领导汇报工作,掌握万能模板,不做职场小透明...
  10. 【路径规划】基于遗传算法求解同时取送货车辆路径问题matlab代码
  11. 主流的推荐系统算法总结
  12. 【时间序列】多变量时间序列异常检测数据集整理及标准化处理代码合集
  13. priority inversion
  14. 欧拉线 Euler line
  15. android背景图拉伸,解决android:background背景图片被拉伸问题
  16. mysql操作语句类型DQL\DML\DDL\DCL
  17. 论文笔记 EMNLP 2020|Edge-Enhanced Graph Convolution Networks for Event Detection with Syntactic Relation
  18. 工作杂谈001-供应商对接
  19. 你不可不用的十类Mac装机必备软件
  20. win11下MSVC++ 6.0无法启动问题

热门文章

  1. JAVA实时运算_实时计算知多少?
  2. 腾讯可视化, 低代码生成器,正式开源!
  3. 安卓主板与pc主板通信_如何在Windows PC上检查主板型号
  4. Android获取屏幕分辨率及DisplayMetrics简介
  5. mac上传文件到CentOS云服务器
  6. 人事管理系统开发功能需求
  7. JZOJ 3231. 海明距离
  8. [图像分割综述] Image Segmentation Using Deep Learning: A Survey
  9. 针对间接分支的比特级感知预测器BLBP “Bit-level Perceptron Prediction for Indirect Branches”(2019 ISCA)
  10. 补偿电容器串联电抗对无源LC滤波器性能的影响