变量

  顾名思义,变量就是一个会变的量,用一个变量名表示,指向内存中一片区域,而指向的区域存的是什么,这个变量就是什么数据类型,和C/C++挺不一样的。变量数据类型可以通过赋值变来变去(这就叫动态语言,区别于静态语言)。

  创建和赋值

    python中创建变量时只需给变量赋一个值,像这样 a = 1 ,然后变量名就指向存着那个值(1)的一片区域(表述不太对,应该是引用而不是指向)。用 id() 可以查看该变量的地址。

    还可以像这样赋值 a, b = 1, 2 (a=1,b=2),或是这样 a=b=1 。

    “可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。”

    举个例子,我们给a赋值为1, a=1,就相当于创建了变量a,于是解释器在内存地址XXX中创建一个Number对象1,然后把a和XXX中的对象1关联起来。调用 id(a) ,能得到内存地址XXX。

    然后我们给a加上1 a=a+1 或是给a赋值为2 a=2 ,就会再次创建一个在内存地址YYY中的Number对象2,然后a就被关联到了对象2上,至于对象1,也不知道是留着还是回收了,这里先留坑。

    再调用 id(a) ,就会得到内存地址YYY,然后 b=2 , id(b) ,得到的还是内存地址YYY(官方解释器倒是这样的,不过其他解释器就不一定了),这时a和b引用同一片内存区域了,于是 a is b会返回True(is用来判断两个变量是否引用同一片内存区域)。还有一种情况,a和b的值都为1,但引用的是不同的对象(所在内存区域不同),这时 a is b 会返回False,而 a == b 会返回True(==用来判断两个变量所引用对象的值是否相等)

    还有一件重要的事,变量名,规则和C/C++差不多——数字,字母,下划线, 任意组合,数字不能开头,对大小写敏感,python的关键字不能用,变量名尽量有意义(Python中变量的命名规范)。

    查看自己版本python中的关键字可以使用命令help("keywords")

  删除

    del可以删除变量,但不同于C/C++中的free和delete()(别刮开我会说我不会用C/C++在堆区创建变量吗),python中的del不会删除内存中的数据,而是把变量删了(更高端一点的说法是把变量对对象的引用删了)。

    使用方法 del a 或 del a,b,c

    举个例子,建立变量a a=1,内存地址XXX就创建了对象1,于是a指向了XXX,建立变量b b=1 ,于是b也指向了XXX,然后 del(a) ,调用 id(b) 可以看到,这时b仍然指向XXX,但调用 id(a) 会报错,说变量a未定义。

    此外,Python还有垃圾回收机制,留坑。

  全局变量和局部变量

    留坑到学函数时

常量

  习惯用全部大写的变量名表示常量,其实电脑觉得它还是个变量,Python里没有C语言里类似const的东西,换句话说,把变量当成常量用就好。此外,Python还有6个内置常量。

  Python的内置常量

    True、False、None、NotImplemented、Ellipsis、__debug__(注意有些首字母大写)

    一些关于内置常量的更具体的信息

数据类型

  标准数据类型

    Number(数字)

    String(字符串)

    List(列表)

    Tuple(元组)

    Set(集合)

    Dictionary(字典)

    一些补充说明

      以上6种数据类型分类

按照存储数据个数区分 标量/原子类型(值能存放一个值) 数字,字符串
容器类型(存放多个值) 列表,元组,字典

按照可变不可变区分

//可变类型指的是在同一块内存地址之上可以将值替换掉(使用id()函数查看变量的内存地址)

可变 列表,字典,集合
不可变 数字,字符串,元组
按照访问顺序区分 直接访问(不可拆分) 数字
顺序访问(有下标的) 字符串,元组,列表
key值访问(映射类型) 字典

      内置的type()函数可以用来查询变量所指的对象类型。此外还可以用 isinstance()来判断。使用方法

      Python数据类型转换

        这里借用C/C++的概念,可能不兴这么说,但好理解。

        隐式类型转换

          整数和浮点数做运算时,解释器将整数转换为浮点数;

          布尔型和整型做运算时,将布尔型转换为整型;布尔型和浮点型做运算时,将布尔型转换为浮点型;

          整型和布尔型与复数做运算时,被转换为浮点型;

          两个整型做“/”运算时,无论是否除得尽,结果都为浮点型。

        显式类型转换

          (来自这里)

          有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

          以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

          

函数 描述

int(x [,base])

将x转换为一个整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

Ps:eval()的一个应用——python 如何定义n个变量 (变量声明自动化)

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个序列 (key,value)元组。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

round(x[,y])

将一个浮点数x四舍五入为一个整数,若有第二个参数,则四舍五入为y位浮点数

  自定义数据类型

    留坑

Python学习笔记 (2)变量、常量和数据类型的更多相关文章

  1. python学习笔记(4)-基本数据类型-数字类型及操作

    大学mooc 北京理工大学 python语言程序设计课程学习笔记 一.整数类型 可正可负,没有取值范围的限制(这个与c不同,c要考虑数据类型的存储空间).如pow(x,y),计算x的y次方,pow(2 ...

  2. python的学习笔记01_2变量 常量 注释 用户交互 格式化输出

    变量是什么? 变量的作用  Variables are used to store information to be referenced and manipulated in a computer ...

  3. 小甲鱼:Python学习笔记001_变量_分支_数据类型_运算符等基础

    1.下载并安装Python 3.5.0 Python是一个跨平台语言,Python从3.0的版本的语法很多不兼容2版本,官网找到最新的版本并下载:http://www.python.org 2.IDL ...

  4. golang语法学习(一):变量,常量以及数据类型

    学习一门新的语言肯定是要从他的主要的语法開始,语法构成了整个程序设计的基础,从语法中我们也能够看到这门语言的一些特性.可是话说回来.语法这东西,不同的语言大同小异,所以这也对语法的记忆造成了一定的难度 ...

  5. python学习笔记2(pycharm、数据类型)

    Pycharm 的使用 IDE(Integrated  Development  Environ ment) :集成开发环境 Vim  :经典的linux下的文本编辑器(菜鸟和大神喜欢使用) Emac ...

  6. Python 学习笔记2 变量

    Python变量的一些命名规则和指南 每种编程语言都需要变量, 这些变量的命名,我们一般会遵守一些公认的规则. 已达到方便自己,他人阅读的好处. 变量只能包含字母.数字和下划线.变量可以以字母和下划线 ...

  7. Python学习笔记(二):数据类型

    一.python中的数据类型 python中的数据类型包括:整型.浮点型.布尔型.字符串类型 整型(int)和浮点型(float) Python中的整型只有int,没有short.long:浮点型fl ...

  8. Python 学习笔记6 变量-字典

    字典是python中一个十分重要的变量,他是一个可变的容器对象.通过一组key(键)和value(值)对组成一个元素. 组成形式为{'key':'value', 'key':'value'}.整个字典 ...

  9. Python 学习笔记6 变量-元组

    我们在上一篇中了解了变量list(列表), 今天我们来介绍下元组.元组是由括号和逗号,组织起来的一个元素的集合.和list不同的是,它其中的元素是不能被修改的,和其他语言中的常量相类似. 需要注意的是 ...

  10. Python 学习笔记5 变量-列表

    列表是python常用的一种变量. 是由一些列按照特定顺序排列的元素组成的.你可以创建包含字母表中的所有字母,数字.可以将任何东西都加入到列表中. 通常情况下,列表中都包含多个元素,所以建议变量的名称 ...

随机推荐

  1. 10.19NOIP模拟赛(DAY2)

    /* 正解O(n)尺取法orz 我写的二分答案.本来以为会被卡成暴力分...... 这个-'0'-48是我写的吗........我怎么不记得... */ #include<bits\stdc++ ...

  2. macbookpro安装Ubuntu16.04.1 LTS爬坑之旅。亲测有效(集众家之长)。安装时间为2017-11-19。

    1.格式化U盘 要求:(1)切换分区格式为Mac OS扩展 (日志型):(2)方案(scheme)设置为:GUID Partition Map:如图(使用mac自带磁盘工具) 2.给Ubuntu划分磁 ...

  3. 递推DP HDOJ 5375 Gray code

    题目传送门 /* 题意:给一个串,只能是0,1,?(0/1).计算格雷码方法:当前值与前一个值异或,若为1,可以累加a[i],问最大累加值 DP:dp[i][0/1]表示当前第i位选择0/1时的最大分 ...

  4. CodeDOMProvider 类

    CodeDomProvider 可用来创建和检索代码生成器和代码编译器的实例.代码生成器可以生成特定语言的代码,如:C#.Visual Basic.JScript 等,而代码编译器可以将代码文件编译成 ...

  5. 235 Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公共祖先

    给定一棵二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 详见:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-s ...

  6. SpringMVC高级课程

    requestBody和responseBody requestBody把前台页面传递JSON格式数据强制转换JavaBean responseBody在后台把javabean转换成JSON格式的数据 ...

  7. Java高级程序员(5年左右)面试的题目集

    Java高级程序员(5年左右)面试的题目集 https://blog.csdn.net/fangqun663775/article/details/73614850?utm_source=blogxg ...

  8. Docker在Ubuntu16.04上安装

    转自:http://blog.51cto.com/collen7788/2047800 1.添加Docker源 sudo apt-get update 2.增加CA证书 sudo apt-get in ...

  9. Python中深拷贝与浅拷贝的区别

    转自:http://blog.csdn.net/u014745194/article/details/70271868 定义: 在Python中对象的赋值其实就是对象的引用.当创建一个对象,把它赋值给 ...

  10. Navicat Premium 12 破解方法

    基本安装下一步下一步,破解方法参考:地址