类似于拼多多的网站怎么做,资料下载网站建设,大数据营销心得体会,苏州市网站制作一、变量
变量是存储在内存中的值#xff0c;这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型#xff0c;解释器会分配指定内存#xff0c;并决定什么数据可以被存储在内存中。
因此#xff0c;变量可以指定不同的数据类型#xff0c;这些变量可以…一、变量
变量是存储在内存中的值这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型解释器会分配指定内存并决定什么数据可以被存储在内存中。
因此变量可以指定不同的数据类型这些变量可以存储整数小数或字符等
变量赋值
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建都包括变量的标识名称和数据这些信息。
每个变量在使用前都必须赋值变量赋值以后该变量才会被创建。
等号 用来给变量赋值。
等号 运算符左边是一个变量名等号 运算符右边是存储在变量中的值。
这种变量本身类型不固定的语言称之为动态语言与之对应的是静态语言。静态语言在定义变量时必须指定变量类型如果赋值的时候类型不匹配就会报错。例如Java是静态语言赋值语句如下// 表示注释
int a 123; // a是整数类型变量
a ABC; // 错误不能把字符串赋给整型变量和静态语言相比动态语言更灵活就是这个原因。
请不要把赋值语句的等号等同于数学的等号。比如下面的代码
x 10
x x 2如果从数学上理解x x 2那无论如何是不成立的在程序中赋值语句先计算右侧的表达式x 2得到结果12再赋给变量x。由于x之前的值是10重新赋值后x的值变成12。
最后理解变量在计算机内存中的表示也非常重要。当我们写
a ABC时Python解释器干了两件事情 在内存中创建了一个ABC的字符串 在内存中创建了一个名为a的变量并把它指向ABC。
也可以把一个变量a赋值给另一个变量b这个操作实际上是把变量b指向变量a所指向的数据例如下面的代码
a ABC
b a
a XYZ
print(b)
最后一行打印出变量b的内容到底是ABC呢还是XYZ如果从数学意义上理解就会错误地得出b和a相同也应该是XYZ但实际上b的值是ABC让我们一行一行地执行代码就可以看到到底发生了什么事
执行a ABC解释器创建了字符串ABC和变量a并把a指向ABC 执行b a解释器创建了变量b并把b指向a指向的字符串ABC 执行a XYZ解释器创建了字符串XYZ并把a的指向改为XYZ但b并没有更改 所以最后打印变量b的结果自然是ABC了。 多个变量赋值
Python允许你同时为多个变量赋值。例如
a b c 1
以上实例创建一个整型对象值为1三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如
a, b, c 1, 2, john
以上实例两个整型对象 1 和 2 分别分配给变量 a 和 b字符串对象 john 分配给变量 c。
一个变量可以通过赋值指向不同类型的对象。
二、常量
所谓常量就是不能变的变量比如常用的数学常数π就是一个常量。在Python中通常用全部大写的变量名表示常量
PI 3.14159265359但事实上PI仍然是一个变量Python根本没有任何机制保证PI不会被改变所以用全部大写的变量名表示常量只是一个习惯上的用法如果你一定要改变变量PI的值也没人能拦住你。
最后解释一下整数的除法为什么也是精确的。在Python中有两种除法一种除法是/ 10 / 3
3.3333333333333335/除法计算结果是浮点数即使是两个整数恰好整除结果也是浮点数 9 / 3
3.0还有一种除法是//称为地板除两个整数的除法仍然是整数 10 // 3
3你没有看错整数的地板除//永远是整数即使除不尽。要做精确的除法使用/就可以。
因为//除法只取结果的整数部分所以Python还提供一个余数运算可以得到两个整数相除的余数 10 % 3
1无论整数做//除法还是取余数结果永远是整数所以整数运算结果永远是精确的。
三、标准数据类型
计算机顾名思义就是可以做数学计算的机器因此计算机程序理所当然地可以处理各种数值。但是计算机能处理的远不止数值还可以处理文本、图形、音频、视频、网页等各种各样的数据不同的数据需要定义不同的数据类型。在Python中能够直接处理的数据类型有以下几种
Python3 中常见的数据类型有
Number数字String字符串bool布尔类型List列表Tuple元组Set集合Dictionary字典
Python3 的六个标准数据类型中
不可变数据3 个Number数字、String字符串、Tuple元组可变数据3 个List列表、Dictionary字典、Set集合。
此外还有一些高级的数据类型如: 字节数组类型(bytes)。
内置的 type() 函数可以用来查询变量所指的对象类型。 a, b, c, d 20, 5.5, True, 43jprint(type(a), type(b), type(c), type(d))
class int class float class bool class complex
此外还可以用 isinstance 来判断 a 111 isinstance(a, int) True
isinstance 和 type 的区别在于
type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。 class A:
... pass
... class B(A):
... pass
... isinstance(A(), A)
Truetype(A()) A
Trueisinstance(B(), A)
Truetype(B()) A
FalsePython3 中bool 是 int 的子类True 和 False 可以和数字相加 True1、False0 会返回 True但可以通过 is 来判断类型。
在 Python2 中是没有布尔型的它用数字 0 表示 False用 1 表示 True。