在 Python 中,变量不一定占用内存变量。变量就像是对某一处内存的引用,可以通过变量访问到其所指向的内存中的值,并且可以让变量指向其他的内存。在 Python 中,变量不需要声明,但是使用变量之前,一定要先对变量进行赋值。当创建了一个新对象时,Python 会向操作系统请求内存,Python 本身实现了内存分配系统。变量类型指的是变量所指向的内存中 对象 的类型。Python 中变量赋值使用 = 等号,等号左面为创建的变量,等号右面为需要的值。

# #创建一个变量名为 a 的变量
# a = 3
# # 创建了一个 a 变量
# # 对 a 变量进行输出
# print("a = ",a)
# # a = 3
# print("a 变量存储数据的类型为:",type(a))
# # a 变量存储数据的类型为: <class 'int'>
# print("a 变量的地址为:",id(a))
# # a 变量的地址为: 140734656704848 # # 修改 a 的指向
# a = 4
# print("a = ",a)
# # a = 4
# print("a 变量存储数据的类型为:",type(a))
# # a 变量存储数据的类型为: <class 'int'>
# print("a 变量的地址为:",id(a))
# # a 变量的地址为: 140734656704880

变量包含的内容主要包含四个方面:

    1.变量的名称:在对变量赋值时也就是创建变量时所使用的名字。注:根据标识符规则。

    2.变量保存的数据:通常为赋值时 = 等号 右面的对象。

     对象主要包括:

      ①.数字:int 、float 、complex 、bool、表达式、函数调用返回值等。

          数字: int 表示整数,包含正数,负数,0

            float 表示浮点数,带有小数点的数

            complex 表示复数,实部 + 虚部 J 或 j 均可

a = 1+2J
b = 5+6j
print("a = {0},b = {1}".format(a,b))
# a = (1+2j),b = (5+6j)

          bool 布尔类型,True 为真,False 为假

      ②.字符串:字符串变量、带有" "的字符串、表达式、函数调用的返回值等。

          注:Python3 以 Unicode 编码方式编码。

          使用双引号 " " 或单引号 ' ' 创建字符串或者进行强制转换 str 。

      ③.列表:列表变量、带有 [ ] 的对象、表达式、函数调用的返回值等。

          使用了 [ ] 的,[ ] 内可以是数字,字符串,字典,元组,列表,集合,表达式等。

          

# lst = [1,2,3]
# print(lst)
# # [1, 2, 3]
#
# lst = [1.1,2.2,3.3]
# print(lst)
# # [1.1, 2.2, 3.3]
#
# lst = [1.3+4j,2+5J,3+9j]
# print(lst)
# # 复数
# # [(1+4j), (2+5j), (3+9j)]
#
# lst = ['1','2','3']
# print(lst)
# # ['1', '2', '3']
#
# lst = [{'a':1},{'b':2},{'c':3}]
# print(lst)
# # [{'a': 1}, {'b': 2}, {'c': 3}]
#
#
# lst = [(1,2,3)]
# print(lst)
# # [(1, 2, 3)]
#
# lst = [{1,2,3}]
# print(lst)
# # [{1, 2, 3}]

      ④.元组:元组变量、带有逗号的或被( )包围的多个变量或值、表达式、函数调用的返回值等。

          空元组 ( ) 

          创建一个只包含数字 1 的元素的元组 (1,)   注:一定要带有 , 号

          创建包含多个元素的元组,可以直接用 (元素1,元素2,...,元素n) 赋值

            或者元素1,元素2,...,元素n ,使用,逗号进行赋值

      ⑤.集合:空集合 set( )、使用了{ }的内部为单个变量或值、表达式、函数调用的返回值等。

          空集合 set( )

          创建多个元素的集合,{元素1,元素2,...,元素n}

          注:集合中元素不重复,可利用此特性判断别的序列对象是否存在重复元素。

      ⑥.字典:字典变量、带有 {键:值} 的变量或值、表达式、函数调用的返回值等。

          空字典 { }

          创建多个元素的字典,变量名 = {键1:值1,键2:值2,...,键n:值n}

      ⑦.类:通常为类创建实例时,函数调用的返回值等。

          class关键字声明。

      ⑧.函数:函数名、函数调用等。

          def 关键字声明,在函数前可能会有装饰器。另外,函数可以嵌套函数,当内部函数使用了外部函数的某些对象时称为闭包函数。

      注:表达式是指关于对象之间的运算。

    下面以数字数据类型为例: 

# 数字数据类型
num_int = 123
print(num_int)
#
num_float = 2.4
print(num_float)
# 2.4
num_complex = 5+6j
print(num_complex)
# (5+6j)
num_bool_true = True
print(num_bool_true)
# True # bds 表达式的意思, 只计算最简单的表达式
num_int_bds = num_int + num_int
print(num_int_bds)
#
num_float_bds = num_float + num_float
print(num_float_bds)
# 4.8
num_complex_bds = num_complex + num_complex
print(num_complex_bds)
# (10+12j)
num_bool_true_bds = not num_bool_true
print(num_bool_true_bds)
# False # 定义一个具有返回值的函数
def add(x):
''' 对 x 进行相加操作'''
return x+x num_int_def = add(num_int)
print(num_int_def)
#
num_float_def = add(num_float)
print(num_float_def)
# 4.8
num_complex_def = add(num_complex)
print(num_complex_def)
# (10+12j)
num_bool_true_def = add(num_bool_true)
print(num_bool_true_def)
#

    3.变量存储数据的类型,可以通过 type(变量名) 函数获取。对数字数据类型使用 type 函数如下:

num_int = 123
print(type(num_int))
# <class 'int'> num_float = 12.23
print(type(num_float))
# <class 'float'> num_bool = True
print(type(num_bool))
# <class 'bool'> num_complex = 5+6j
print(type(num_complex))
# <class 'complex'>

    4.变量的地址,也就是所指向的内存中的地址。使用 id(变量名) 函数获取。  

# 查看 a 的内存地址
a = 123
print(id(a))
#

在上面的例子中,我们看到的都是赋值单个元素,那么可不可以赋值多个元素呢?

答案是肯定的。Python支持同时为多个变量赋值,如下所示:

# #多个变量进行赋值
# a = b = c = 1
# print("a = {0}, b = {1}, c = {2}".format(a,b,c))
# # a = 1, b = 1, c = 1
#
# a,b = 1,2
# print("a = {0},b = {1}".format(a,b))
# # 注 a,b 多用于交换 a,b 两个元素的值
# # 接收函数返回的两个值
# # 接收元组等序列对象的前两个值
# # a = 1,b = 2
# # 1.交换两个元素的值
# a,b = b,a
# # 进行交换 a b 两个对象的指向
# print("a = {0},b = {1}".format(a,b))
# # a = 2,b = 1
#
# def hello_world():
# # 返回两个字符串的函数
# return "hello","world"
#
# a,b = hello_world()
# # a 接收第一个返回的对象,b 接收第二个 如果还有元素接收,则依次递增
# print(a,b)
# # hello world
# tuple_1 = (5,6)
# # 创建一个元组
# a,b = tuple_1
# print("a = {0},b = {1}".format(a,b))
# # a 接收第一个返回的对象,b 接收第二个 如果还有元素接收,则依次递增
# # a = 5,b = 6

2020-02-04

最新文章

  1. 【转】App开放接口api安全性—Token签名sign的设计与实现
  2. 解析XML文档
  3. qsort C++ VS2013 leetcode
  4. ThinkPHP使用PHPmailer发送Email邮件
  5. SVN服务器搭建和使用(二)
  6. 201521123111《Java程序设计》第5周学习总结
  7. ceph rbd 封装api
  8. MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)
  9. Educational Codeforces Round 55 (Rated for Div. 2)
  10. TCP简介
  11. Windows下静态库与动态库的创建与使用
  12. Codeforces828 C. String Reconstruction
  13. WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选)
  14. C++ virtual函数重写,在继承的时候没有在函数前写virtual关键字也依然是虚函数吗?
  15. Building Projects with Native Code
  16. Sonar及其eclipse插件的安装 详细 http://www.importnew.com/10017.html
  17. UVA1583(最小生成元)
  18. linux下route命令--说的比较清楚!
  19. Vibrator震动
  20. [hdu3685]Rotational Painting 凸包 重心

热门文章

  1. day07获取用户地址信息
  2. css modules是什么?
  3. hbase2.1.9 centos7 完全分布式 搭建随记
  4. 基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (下篇)
  5. scrapy 基础组件专题(八):scrapy-redis 框架分析
  6. MCMC随机采样
  7. How to install nginx in Ubuntu
  8. Qt-数据库操作SQLite
  9. win7下建立docker共享文件夹
  10. echarts 踩坑 : id必须不同