1.Python是一种强大的动态类型语言,可以实时更改任意Python变量类型,只需要直接赋值即可。
contents='toys'; 此时变量表示为字符串类型
contents=6; 此时变量为int类型
python是强类型,无法轻松混合使用不同类型的变量,有时则需要转换类型。例如:
contents =6; 此时变量为int类型
print('there are'+str(contents)+'things in the box'); str()将数值转化为string类型
python提供了内置函数type(),允许随时确定变量类型。
type(contents);
2.MEL中的变量
MEL面板中输入
$contents ="toys";
print($contents + " in the box");
输出为:toys in the box
MEL虽然不需要声明类型变量,但由于$contents是静态类型,所以无法变为数字。
印证:
$contents =6;
print("there are "+$contents+" things in the box");
输出为
$contents =6;
print($contents+10);
输出为
MEL隐式假定加法运算后面数字10为字符串。
3.关键字
查看关键字代码:
import keyword;
for kw in keyword.kwlist:print(kw);
打印关键字列表用于各种目的,包括定义新对象类型和控制程序流。
4.python数据模型:
为了提高效率静态类型的语言为不同类型的变量分配了特定数量的内存。由于此内存数量是提前指定的,因此无法为名称分配一个新类型。python则允许你随时更改变量类型。
而在python中变量只是指向数据的名称。所有数据均为对象,每个对象都有一个标识符、类型、和值。
·对象的标识符描述内存地址。
·对象类型(本身是一个对象)描述所引用的数据类型。
·对象的值描述其数据的实际内容。
创建新变量分配值时,变量指向具有这三个值的对象名称。
当变量是整数和当变量是字符串时:
var=5;
print('int id',id(var));
var=str(var);
print('int id',id(var));
输出为
标识符显示不同地址。
python易变性:
在python中,对象是可变或不可变的。即,可变对象的值可以改变,而不可变对象的值不能改。
元组、字符串、数字都是不可变的。因此为变量分配新整数值时,不是更改变量所指的对象基本值,而是更改指向另一个数据的变量值。
引用计数:
python使用引用计算机机制管理内存。不要求开发人员手动分配和释放内存,当没有引用数据名称时,会将数据作为垃圾回收。
然而此范式则,具有同一赋值的两个不可变变量可能会指向同一数据。
虽然不可变类型指向数据的变量会产生此现象,但可变类型和值相同的内存地址是不同的。
但如果是将其值附加过去,则依然是相同地址。
del();
内置函数del(),此函数允许删除变量。注意的是只是删除指向内存地址的名称。如果此地址没有名称指向占用了,python的垃圾收集器才会管理删除这个数据。
list1=[1,2,3];
list2=list1;
del(list1);
print(list2);
输出为
None类型
如果没有必要分配内存,只需要占用名字初始化名称,则可以使用他。
例如:var=None;