Python之基本数据类型
- 基本数据类型
- 数字
- 整数
- 浮点数
- 布尔值和空值
- 变量
- 字符串
基本数据类型
数字
整数
整数用来表示整数数值,没有小数部分的数值。
整数包括正整数、负整数和0,并且它的位数是任意的,如果要指定一个非常大的整数,只需要写出其所有位数即可。
整数类型包括十进制整数、八进制整数、十六进制整数和二进制整数。
- 八进制整数。
由0~7组成,进位规则是“逢八进一”,并且以0o开头。
- 十六进制整数。
由0~9,A~F组成,进位规则是“逢十六进一”,并且以0x/0X开头。
-二进制数。
只有0和1两个基数,进位规则是“逢二进一”。
浮点数
浮点数由整数个小数部分组成,如1.414、0.2、-1.1、3.1415926等。
在使用浮点数进行计算时,可能会出现小数位数不确定的情况。例如,计算0.1+0.1时,将得到想要的0.2,而计算0.1+0.2时,将得到0.30000000000000004,执行过程如下:
>>>0.1+0.1
>0.2
>>>0.1+0.2
>0.30000000000000004 #忽略多余的小数位数即可
布尔值和空值
布尔类型主要用来表示真或假的值。标识符True和False,主要做逻辑判断。
Python中的布尔值可以转化为数值,其中True表示1,False表示0。(不建议对布尔值进行运算)
None 空值。
当字符串、元组、字典、列表为空时,状态表象为None。
变量
在Python中,严格意义上变量应该称为“名字”,也可以理解为标签。
- 定义变量
在Python中,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。需遵循几条规则。
- 变量名必须是一个有效的标识符
- 变量名不能使用Python中的保留字
- 慎用小写字母l和大写字母O
- 应选择有意义的单词作为变量名
为变量赋值可以通过等号“=”来实现。
变量的类型可以随时变化。
在Python中,允许多个变量指向同一个值。
字符串
字符串就是连续的字符序列,可以是计算机所能表示的一切字符的集合。字符串属于不可变序列,通常使用单引
号“‘’”、双引号“""”、或者三引号“''''''”括起来。
字符串开始和结束使用的引号必须一致。另外,当需要表示复杂的字符串是,还可以进行引号的嵌套。
字符串还支持转义字符。所谓转义字符,是指使用反斜杠“\”对一些特殊字符进行转义。
例如:
字符串的打印
格式化字符串
Python的字符串格式化有两种方式:%格式符方式,format方式
- %格式符
%[(name)][flags][width].[precision]typecode
(name) 可选,用于选择指定的key
flags 可选,可供选择的值有:
+ 右对齐;正数前加正好,负数前加负号;
- 左对齐;正数前无符号,负数前加负号;
空格 右对齐;正数前加空格,负数前加负号;
0 右对齐;正数前无符号,负数前加负号;用0填充空白处
width 可选,占有宽度
.precision 可选,小数点后保留的位数
typecode 必选
s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0- 255);字符:将字符添加到指定位置
o,将整数转换成 八 进制表示,并将其格式化到指定位置
x,将整数转换成十六进制表示,并将其格式化到指定位置
d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
F,同上
g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
%,当字符串中存在格式化标志时,需要用 %%表示一个百分号
format方式
数字格式的定义以 ‘:’ 号开始。碰到了’: '字符就知道要定义一个数字的显示格式了。格式的定义顺序为
[[fill]align][sign][#][0][width][,][.precision][type]
fill 【可选】空白处填充的字符
align【可选】对齐方式(需配合width使用)
<,内容左对齐
>,内容右对齐(默认)
=,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
^,内容居中
sign 【可选】有无符号数字
+,正号加正,负号加负;
-,正号不变,负号加负;
空格 ,正号空格,负号加负;
# 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
, 【可选】为数字添加分隔符,如:1,000,000
width【可选】格式化位所占宽度
.precision 【可选】小数位保留精度
type 【可选】格式化类型
传入” 字符串类型 “的参数
s,格式化字符串类型数据
空白,未指定类型,则默认是None,同s
传入“ 整数类型 ”的参数
b,将10进制整数自动转换成2进制表示然后格式化
c,将10进制整数自动转换为其对应的unicode字符
d,十进制整数
o,将10进制整数自动转换成8进制表示然后格式化;
x,将10进制整数自动转换成16进制表示然后格式化(小写x)
X,将10进制整数自动转换成16进制表示然后格式化(大写X)
传入“ 浮点型或小数类型 ”的参数
e, 转换为科学计数法(小写e)表示,然后格式化;
E, 转换为科学计数法(大写E)表示,然后格式化;
f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
g, 自动在e和f中切换
G, 自动在E和F中切换
%,显示百分比(默认显示小数点后6位)
tp1 = "i am {}, age {}, {}".format("seven", 18, 'alex')
tp2 = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])
tp3 = "i am {0}, age {1}, really {0}".format("seven", 18)
tp4 = "i am {0}, age {1}, really {0}".format(*["seven", 18])
tp5 = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
tp6 = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
tp7 = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
tp8 = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
tp9 = "i am {:s}, age {:d}".format(*["seven", 18])
tp10 = "i am {name:s}, age {age:d}".format(name="seven", age=18)
tp11 = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})
print(tp1)
print(tp2)
print(tp3)
print(tp4)
print(tp5)
print(tp6)
print(tp7)
print(tp8)
print(tp9)
print(tp10)
print(tp11)
执行结果
i am seven, age 18, alex
i am seven, age 18, alex
i am seven, age 18, really seven
i am seven, age 18, really seven
i am seven, age 18, really seven
i am seven, age 18, really seven
i am 1, age 2, really 3
i am seven, age 18, money 88888.100000
i am seven, age 18
i am seven, age 18
i am seven, age 18