Python中数字有四种类型:整数、布尔型、浮点数和复数。int (整型), 如 1, 只有一种整数类型 int,表示为长整型,没有python2 中的 long。
bool (布尔型), 如True。
float (浮点型), 如 1.23、3E-2
complex (复数型), 如 1 + 2j、 1.1 + 2.2j
整型
Python中可以处理任意大小(即无限大小)的整数(Python 2.x中有int和long两种类型的整数,但这种区分对Python来说意义不大,因此在Python 3.x中整数只有int这一种了),而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。
布尔型
布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5会产生布尔值True,而2 == 1会产生布尔值False)。
浮点型
Python将带小数点的数字统称为浮点数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。
复数型
形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j。
运算符及运算
算术运算符运算符描述+加——两个对象相加
-减——一个数减去另一个数
*乘——两个数相乘或者得到一个被重复若干次的字符串
/除——x除以y
%取模——返回除法的余数
**幂——返回x的y次幂
//取整数——返回商的余数
示例:1
2
3
4
5
6
7
8
9a=121
b=10
print('%d + %d =t%d' %(a,b,a+b))
print('%d - %d =t%d' %(a,b,a-b))#相减
print('%d * %d =t%d' %(a,b,a*b))#相乘
print('%d / %d = t%f' % (a, b, a / b))#相除
print('%d // %d = t%d' % (a, b, a // b))#整除
print('%d %% %d = t%d' % (a, b, a % b))#取模
print('%d ** %d = t%d' % (a, b, a ** b))#幂
运算结果:1
2
3
4
5
6
7121 + 10 = 131
121 - 10 = 111
121 * 10 = 1210
121 / 10 = 12.100000
121 // 10 = 12
121 % 10 = 1
121 ** 10 = 672749994932560009201
赋值运算符运算符描述=c=a+b将a+b运算结果赋值为c
+=c+=a等价于c=c+a
-=c-=a等价于c=c-a
*=c*=a等价于c=c*a
/=c/=a等价于c=c/a
%=c%=a等价于c=c%a
**=c* * =a等价于c=c* *a
//=c//=a等价于c=c//a
逻辑运算符
Python语言支持以下逻辑运算符。假设变量a的值为True,变量b的值为False,那么 -运算符描述示例and如果两个操作数都为真,则条件成立。(a and b)的结果为False
or如果两个操作数中的任何一个非零,则条件成为真。(a or b)的结果为True
not用于反转操作数的逻辑状态。not(a and b) 的结果为True
示例:1
2
3
4
5
6
7
8
9
10
11
12flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not flag1
print("flag1 = ", flag1)
print("flag2 = ", flag2)
print("flag3 = ", flag3)
print("flag4 = ", flag4)
print("flag5 = ", flag5)
print(flag1 is True)
print(flag2 is not False)
运算结果:1
2
3
4
5
6
7flag1 = True
flag2 = False
flag3 = False
flag4 = True
flag5 = False
True
False
按位运算符
设变量a=60,b=13;则二进制a表示为:00111100,b表示为:00001101运算符描述示例&二进制与。如果它存在于两个操作数中,则操作符复制位到结果中(a & b) 结果表示为 00001100
``二进制或,如果它存在于任一操作数,则复制位。`(ab)=61结果表示为00111101`
^二进制异或,如果它是一个操作数集合,但不是同时是两个操作数则将复制位。(a ^ b) = 49 结果表示为 00110001
~二进制补码,它是一元的,具有“翻转”的效果。(~a ) = -61有符号的二进制数,表示为11000011的补码形式
<<二进制左移,左操作数的值由右操作数指定的位数左移。a << 2 = 240 结果表示为 11110000
>>二进制右移,左操作数的值由右操作数指定的位数右移。a >> 2 = 15结果表示为00001111
Python的内置函数bin()可用于获取整数的二进制表示形式。
示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
print ('a=',a,':',bin(a),'b=',b,':',bin(b))
c = 0
c = a & b; # 12 = 0000 1100
print ("result of AND is ", c,':',bin(c))
c = a | b; # 61 = 0011 1101
print ("result of OR is ", c,':',bin(c))
c = a ^ b; # 49 = 0011 0001
print ("result of EXOR is ", c,':',bin(c))
c = ~a; # -61 = 1100 0011
print ("result of COMPLEMENT is ", c,':',bin(c))
c = a << 2; # 240 = 1111 0000
print ("result of LEFT SHIFT is ", c,':',bin(c))
c = a >> 2; # 15 = 0000 1111
print ("result of RIGHT SHIFT is ", c,':',bin(c))
运算结果:1
2
3
4
5
6
7a= 60 : 0b111100 b= 13 : 0b1101
result of AND is 12 : 0b1100
result of OR is 61 : 0b111101
result of EXOR is 49 : 0b110001
result of COMPLEMENT is -61 : -0b111101
result of LEFT SHIFT is 240 : 0b11110000
result of RIGHT SHIFT is 15 : 0b1111
成员运算符运算符描述in如果在指定的序列中找到一个变量的值,则返回true,否则返回false。
not int如果在指定序列中找不到变量的值,则返回true,否则返回false。
身份运算符运算符描述is如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False。
is not如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False。
基本输入与格式化输出
输入
使用input([prompt])读取一行,将其转换为string类型并返回。input的参数可有可无,如果有参数的话,会在控制台(可以这样理解)输出参数的内容,不换行。通常情况下我们在控制台输入一些数据,然后敲击回车,就完成了本次输入。
示例:1
2name = input("Please enter your name: ")
print(name)
运算结果:1
2Please enter your name: Jacob
Jacob
这里要注意的是,input返回的是string类型,如果想输入数字,还需要进行类型转换,例如:1
2num = int(input("Enter a number: "))
print(num*2)
运算结果:1
2Enter a number: 4
8
格式化输出
Python字符串格式化符号:符号描述%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址
格式化操作符辅助指令:符号功能*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + ),在负数前面显示减号(-)
在正数前面显示空格
#在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
0显示的数字前面填充’0’而不是默认的空格
%‘%%’输出一个单一的’%’
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
格式化输出整数
示例:1
2
3
4
5
6
7
8a = 321
b = 123
print(a + b)
print('%d + %d = %d' % (a, b, a + b))
print('%d + %d = %+d' % (a, b, a + b))
print('%d + %d = %06d' % (a, b, a + b))
print('%d + %d = %.6d' % (a, b, a + b))
print("a + b= ",a+b)
运算结果:1
2
3
4
5
6444
321 + 123 = 444
321 + 123 = +444
321 + 123 = 000444
321 + 123 = 000444
a + b= 444
格式化输出16进制,十进制,八进制整数
#%x — hex 十六进制
#%d — dec 十进制
#%o — oct 八进制
示例:1
2
3
4nHex = 1024
print("nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex))
nHex = 0xFF
print("nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex))
运算结果:1
2nHex = 400,nDec = 1024,nOct = 2000
nHex = ff,nDec = 255,nOct = 377
格式化输出浮点数
示例:1
2
3
4
5
6
7
8pi = 3.141592653
print('%10.3f' % pi) #字段宽10,精度3
print("pi = %.*f" % (3,pi)) #用*从后面的元组中读取字段宽度或精度
print('%010.3f' % pi) #用0填充空白
print('%-10.3f' % pi) #左对齐
print('%+f' % pi) #显示正负号
pi = -pi
print('%+f' % pi) #显示正负号
运算结果:1
2
3
4
5
63.142
pi = 3.142
000003.142
3.142
+3.141593
-3.141593