Python变量及数据类型用法原理汇总


Posted in Python onAugust 06, 2020

变量(Variable)可以看成一个小箱子,专门用来“盛装”程序中的数据。每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据。

从底层看,程序中的数据最终都要放到内存中,变量其实就是这块内存的名字。

1. Python变量的赋值

在编程语言中,将数据放入变量的过程叫做赋值(Assignment)。每个变量在使用前都必须赋值,变量赋值以后,该变量才会被创建。

Python 使用等号=作为赋值运算符,具体格式为:

name = value
# name 表示变量名,value 表示值,也就是要存储的数据。

变量的值不是一成不变的,它可以随时被修改,只要重新赋值即可。

2. Python变量的命名

  • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头。
  • 变量名是严格区分大小写的。
  • 变量名不能包含空格、@、% 以及 $ 等特殊字符。
  • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。
  • Python 语言中,以下划线开头的标识符有特殊含义。
    • 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;
    • 以双下划线开头的标识符(如__add)表示类的私有成员;
    • 以双下划线作为开头和结尾的标识符(如 init),是专用标识符。
  • 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
  • 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
  • Python 允许使用汉字作为标识符,但我们应尽量避免使用汉字作为标识符,这会避免遇到很多奇葩的错误。

查看 Python 中的保留关键字

>>> import keyword
>>> print(keyword.kwlist)

'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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'

3. Python变量的类型(弱类型语言)

在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,如C语言、C++、Java 是强类型语言的代表。

和强类型语言相对应的是弱类型语言,Python、JavaScript、PHP 等脚本语言都是弱类型的。

弱类型语言有两个特点:

  • 变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
  • 变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。

注意,弱类型并不等于没有类型!弱类型是说在书写代码时不用刻意关注类型,但是在编程语言的内部仍然是有类型的。

Python中数据类型可以分为数字型和非数字型。

  • 数字型
    • 整型 (int)
    • 浮点型 (float)
    • 布尔型 (bool)
    • 复数型 (complex)
  • 非数字型
    • 字符串 (String)
    • 列表 (list)
    • 元组 (tuple)
    • 集合 (set)
    • 字典 (dict)

我们可以使用内置函数type()来检测某个变量或者表达式的类型,例如:

>>> num = 10
>>> type(num)
<class 'int'>
>>> num = 15.8
>>> type(num)
<class 'float'>
>>> num = 20 + 15j
>>> type(num)
<class 'complex'>
>>> type(3*15.6)
<class 'float'>

4. Python变量数据类型的转换

虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换。

比如说,我们想通过使用 print() 函数输出信息“您的身高:”以及浮点类型 height 的值,如果在交互式解释器中执行如下代码:

height = 70.0
print("您的身高"+height)
# Traceback (most recent call last):
# File "<pyshell#1>", line 1, in <module>
# print("您的身高"+height)
# TypeError: must be str, not float

你会发现这是错误的,解释器提示我们字符串和浮点类型变量不能直接相连,需要提前将浮点类型变量 height 转换为字符串才可以。

Python 已经为我们提供了多种可实现数据类型转换的函数.

函 数 作 用
int(x) 将 x 转换成整数类型
float(x) 将 x 转换成浮点数类型
complex(real,[,imag]) 创建一个复数
str(x) 将 x 转换为字符串
repr(x) 将 x 转换为表达式字符串
eval(str) 计算在字符串中的有效 Python 表达式,并返回一个对象
chr(x) 将整数 x 转换为一个字符
ord(x) 将一个字符 x 转换为它对应的整数值
hex(x) 将一个整数 x 转换为一个十六进制字符串
oct(x) 将一个整数 x 转换为一个八进制的字符串

需要注意的是,在使用类型转换函数时,提供给它的数据必须是有意义的。例如,int() 函数无法将一个非数字字符串转换成整数。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
Python可变参数函数用法实例
Jul 07 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
python和ruby,我选谁?
Sep 13 Python
Python编程中NotImplementedError的使用方法
Apr 21 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
Django web框架使用url path name详解
Apr 29 Python
简单了解Python matplotlib线的属性
Jun 29 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
python如何停止递归
Sep 09 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
Mar 03 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 #Python
如何解决pycharm调试报错的问题
Aug 06 #Python
Python用来做Web开发的优势有哪些
Aug 05 #Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 #Python
python爬虫使用requests发送post请求示例详解
Aug 05 #Python
8种常用的Python工具
Aug 05 #Python
浅析Python 序列化与反序列化
Aug 05 #Python
You might like
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
PHP实现验证码校验功能
2017/11/16 PHP
JS动画效果代码3
2008/04/03 Javascript
javascript URL锚点取值方法
2009/02/25 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
Django多数据库联用实现方法解析
2020/11/12 Python
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
电气自动化专业职业规划范文
2014/02/16 职场文书
公司合作意向书
2014/04/01 职场文书
《穷人》教学反思
2014/04/08 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
活着观后感
2015/06/03 职场文书
乱世佳人观后感
2015/06/08 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书