变量定义
标识符的第一个字符必须是字母或下划线;
标识符其余部分可以使字母、数字、下划线;
大小写敏感。
变量名应有意义,例如my_girl_name。
变量类型
整型:布尔型(True/False,常用于循环中的开关)、整型(长度与内存相关,溢出会自动转为长整型)、长整型;
非整型:双精度浮点型、复数、decimal(非内建类型);
序列类型:字符串(str)、元组(tuple)、列表(list);
映像类型:字典(dict);
集合类型:可变集合(set)、不可变集合(frozenset)。
测试:
>>> name = "xiaoming" #定义name >>> name ‘xiaoming‘ >>> name = "xiaohong" #覆盖原name >>> name ‘xiaohong‘ >>> name1 = name #令name1=name >>> name1 ‘xiaohong‘ >>> name = "xiaobai" #改变name >>> name1 #name1不变 ‘xiaohong‘ >>> name ‘xiaobai‘
为什么name1的值不变?
>>> a=12 >>> b=a >>> id(a),id(b) (31946416, 31946416) >>> a=14 >>> id(a),id(b) (31946368, 31946416) >>> c=12 >>> id(a),id(b),id(c) (31946368, 31946416, 31946416)
由上例可以看出:当b=a时,b与a这个变量名之间并没有关系,而是执行a所执行的存储地址,当对a重新赋值时,a重新开辟一块内存空间,b仍指向原空间。
a=12
b=a
如下图
a=14
如下图
c=12
此处c的id为什么与b相同?
在Python中,完全独立的变量应该开辟独立的空间,但实际上Python对其进行了优化,若变量为0~255之间的整数,则相同的值会指向相同的内存空间。
>>> e=287 >>> f=287 >>> id(e),id(f) (32235368, 32235584)
类型转换:
>>> name = "xiaoming" >>> age = 10 >>> long_num = 100000000000000000 >>> run = False >>> f_num=0.01 >>> type(name),type(age),type(long_num),type(run),type(f_num) (<type ‘str‘>, <type ‘int‘>, <type ‘int‘>, <type ‘bool‘>, <type ‘float‘>) >>> age = str(age) >>> run = int(run) >>> f_num = int(f_num) >>> type(age),type(run),type(f_num) (<type ‘str‘>, <type ‘int‘>, <type ‘int‘>) >>> age,run,f_num #类型改变之后,部分值也会变 (‘10‘, 0, 0) >>> int(name) #不能转变时会报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: ‘xiaoming‘
引号的使用:
字符串应该用引号引起来,单引号、双引号均可,如果要输入多行文字,可使用三引号。且三引号中可有双引号和单引号。
>>> print ‘‘‘My name is xiaobai, ... my girl‘s name is xiaohong, ... friends call us "a good couple" ... ‘‘‘ My name is xiaobai, my girl‘s name is xiaohong, friends call us "a good couple"
变量引用:
>>> name="xiaobai" >>> age=25 >>> g_name="xiaohong" >>> print ‘‘‘my name is %s, ... my girl‘s name is %s, ... now I am %d years old.‘‘‘%(name,g_name,age) my name is xiaobai, my girl‘s name is xiaohong, now I am 25 years old.
%s:引用字符串;
%d:引用整型,若为浮点型会自动转为整型;
%f:引用浮点型,%.3f可指定小数位数。
原文地址:http://11070714.blog.51cto.com/11060714/1757192