基本类型 Python数字 在Python中有3种类型的数——整数、浮点数和复数
数字类型 示例 说明 整数 -2, 12389 python2中区分整型、长整型,长整型的整数可以 无穷大 浮点数 -3.23, -52.3E-4 在 python 中可以用科学计数法表示浮点数 复数 -5+4j,2.3-4.6j 其中-5,4为实数,j为虚数 
int 
python3 中只有 int(可存超长数据)
整型进制表示法 进制 表示方法 示例 二进制 以0b开头,只能包含0、1,逢2进1 0b11,0b12(错误的表示) 八进制 以0o开头,能包含0-7,逢8进1 0o11 十六进制 以0x开头,能包含0-F,逢16进1 0x11 十进制 直接由数字0-9组成,逢10进1 11 
整型进制操作
1 2 3 4 进制转换-bin:任意进制转2进制,接收一个int,返回一个str 进制转换-oct:任意进制转8进制,接收一个int,返回一个str 进制转换-hex:任意进制转16进制,接收一个int,返回一个str 进制转换-int:任意进制转10进制,接收一个int/str,返回一个int 
1 2 3 4 5 6 7 8 9 10 11 12 13 >>>  bin (10 )		'0b1010' >>>  bin (0o71 )	'0b111001' >>>  bin (0x11 )	'0b10001' >>>  int ("10" )10 				>>>  int ("0o11" ,base=8 )	9 >>>  int (0o11 )		9 
float 
float(浮点型):浮点数即带有小数点的数字
 float由整数位,小数点,小数位组成,也可以用科学计数法表示,例如-3.23,-52.3E-4,6.23E12
 float是不精确的
decimal模块 
 Decimal类型数据是精确的小数,可以传递给Decimal整型或者字符串参数
官方文档
 float https://docs.python.org/3/library/functions.html#float 
 decimal https://docs.python.org/3/library/decimal.html?highlight=decimal 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 >>>  i = 1 >>>  i = i - 0.1 >>>  i0.9 >>>  i = i - 0.1 >>>  i0.8 >>>  i = i - 0.1 >>>  i0.7000000000000001 >>>  i = i - 0.1 >>>  i0.6000000000000001 
1 2 3 4 5 6 7 8 9 10 11 >>>  from  decimal import  getcontext, Decimal, Context>>>  mydec = Decimal.from_float(12.222 )>>>  mydecDecimal('12.2219999999999995310417943983338773250579833984375' ) >>>  mydec = Decimal(0.9 )>>>  mydecDecimal('0.90000000000000002220446049250313080847263336181640625' ) >>>  mydec = Decimal("3.14" )>>>  mydecDecimal('3.14' ) 
complex 
复数complex:复数就是实数和虚数的统称
在数学中的表示:复数的基本形式是a+bi,其中a,b是实数,a称为实部,bi称为虚部,i是虚数单位
complex的组成:复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数
1 2 3 4 5 6 >>>  a = 5  + 4j >>>  a.real5.0 		>>>  a.imag4.0 
Python字符串 字符串:字符串是字符的序列
表示方法:单引号(‘);双引号(“);三引号(’''或”””);原样输出
符号 说明 示例 单引(') 可引用包含双引号的字符串 ‘say“hello”’ 双引号(“) 可引用包含单引号的字符串 “What’syourname?” 三号引(‘’'或”””) 可引用一个多行的字符串,在三引号中可自由使用单引号和双引号 ‘’‘ 特殊标记® 不使得转义字符,将字符原样输出 r”hello\tworld!” 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 >>>  a = 'test' >>>  b = "test" >>>  a'test' >>>  b'test' >>>  a = ''' ...  t...  e...  s...  t'''>>>  a'\nt\ne\ns\nt' >>>  print (a)t e s t >>>  c = "t1\nt2" >>>  c't1\nt2' >>>  print (c)t1 t2 >>>  c = 't1\nt2' >>>  c't1\nt2' >>>  print (c)t1 t2 >>>  c = r"t1\nt2" >>>  print (c)t1\nt2 
转义字符 描述 转义字符 描述 转义字符 描述 \(在行尾时) 续行符 \n 换行 \oyy 八进制数,yy代表的字符,例如:\o12代表换行 \\ 反斜杠符号 \v 纵向制表符 \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行 \’ 单引号 \t 横向制表符 \other 其它的字符以普通格式输出 \" 双引号 \r 回车 \b 退格(Backspace) \a 响铃 \f 换页 \e 转义 
字符串取值 
 下标取值法(注意:下标从0开始)
 切片取值法
1 2 3 4 5 6 7 >>>  a = "test" >>>  a[0 ]'t' >>>  a = "test" >>>  a[0 :2 ]	'te' 		
字符串的不可变的序列
一旦创造了一个字符串,就不能再改变它
1 2 3 4 5 6 7 8 >>>  a = "hello world" >>>  a[4 ] = "1" Traceback (most recent call last):   File "<stdin>" , line 1 , in  <module> TypeError: 'str'  object  does not  support item assignment >>>  id (a)140585442705648 
级连字符串
如果把两个字符串相邻放着,它们会被python自动级连
1 2 3 4 >>>  info = "chen" "peng" >>>  info'chenpeng' 
字符串常用方法 
字符串常用方法——判断系列(True/False) 方法 功能 str.isdigit() 字符串中是否只包含数字 str.isnumeric() 字符串中是否只包含数字(包括中文一到九等) str.isalnum() 字符串中是否只包含字母或数字 str.istitle() 字符串中是否每个单词首字母大写,其他字母小写 str.isalpha() 字符串中是否只包含字母(汉字会算作字母) str.isupper() 字符串中是否全为大写 str.isidentifier() 字符串是否为合法标识符 str.isprintable() 字符串是否为可打印字符 str.islower() 字符串中是否全为小写 str.isspace() 字符串中是否只包含空格(tab也算空格) str.startswith(prefix[,start[,end]]) 字符串是否以某字符串开始,可以通过start和stop参数设置搜索范围 str.endswith(suffix[,start[,end]]) 字符串是否以某个字符串结束,可以通过start和stop参数设置搜索范围 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 my_str = "This Is TEST!"  my_title = "This is My Title"  my_num = "123"  my_num2 = "一二三四"  my_str2 = "hello"  my_str3 = "hello123"  print ("判断数字" , my_num.isdigit())     print ("判断数字" , my_num.isnumeric())   print ("判断数字" , my_num2.isdigit())    print ("判断数字" , my_num2.isnumeric())  print ("判断字母:" , my_str.isalpha())      print ("判断字母数字:" , my_str3.isalnum()) print ("判断字符串是否以This开始" , my_title.startswith("This" ))print ("判断字符串是否以This结束" , my_title.endswith("This" ))
 2. 字符串常用方法——查找统计类 
方法 功能 len(string) 统计字符串长度 str.index(sub[,start[,end]]) 显示substring在字符串中第一次出现的下标位置,没有会报错 str.find(sub[,start[,end]]) 查找substring,找到返回其起始位置,找不到返回-1 
1 2 3 4 5 6 7 8 my_str = "This Is TEST!"  print ("长度:" , len (my_str))		print ("i 第一次出现的位置" , my_str.index("i" ))	print ("i 第一次出现的位置" , my_str.find("i" ))	print ("i 出现的次数" , my_str.count("i" ))
 3. 字符串常用方法——字符串转换类(返回一个新对象) 
方法 功能 str.upper() 将字符串转换为大写 str.lower() 将字符串转换为小写 str.title() 将字符串中的单词首字母大写,其他字母小写 str.split(‘sep’) 指定’sep’作为分隔符将字符串切割成列表,分隔符可以是任意字符(默认是空格) ‘str’.join(list) 将列表用str拼接成一个大字符串 str.strip([string]) 去除字符串中首尾的字符串,不带参数默认去除空格 str.zfill(number) 返回指定长度的字符串,原字符串右对齐,前面填充0 str.replace(‘old’,‘new’[,count]) 用新的字符替换老字符,还可以指定替换的个数,默认全部替换 str.capitalize() 句子首字母大写 str.center(width[,fillchar])str.ljust(width[,fillchar])str.rjust(width[,fillchar]) 返回一个原字符串居中(靠左/靠右)对齐,width为总长度,两边用一个字符fillchar填充,如果指定的长度小于原字符串的长度则返回原字符串 str.expandtabs(number) 将\t转换成number个空格 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 msg = "  hEllo World Chen   "  print ("大写" , msg.upper())print ("小写" , msg.lower())print ("标题" , msg.title())msg2 = "root:x:0:0:root:/root:/bin/bash"  print ("切割:" , msg2.split(":" ))msg3 = msg2.split(":" ) print ("拼接:" , "#" .join(msg3))print ("去除首尾空白" , msg.strip(), "######" )print ("去除root首尾:" , msg2.strip("root" ))print ("字符串填充:" , msg.zfill(40 ))print ("字符串替换" , msg2.replace(":" , "%" ))print ("整个字符串首字母大写" , msg.capitalize())msg4 = "xxx"  print (msg4.center(50 , ' ' ))print (msg4.center(50 , '-' ))print (msg4.ljust(50 , "-" ))print (msg4.rjust(50 , "-" ))
字符串拼接 
1 2 3 4 5 6 7 8 9 10 >>>  a = 'I'  + 'Love'  + 'Python' >>>  print (a)ILovePython >>>  a = ['I' , 'Love' , 'Python' ]>>>  print ('' .join(a))ILovePython 
1 2 3 4 + 与 join的效率问题 	一般来说,+ 拼接 效率比 join 拼接低 	+拼接,每一次出现都会在内存中开辟1个新的空间,所有效率低,比较耗时 	join一次性拼接成1个大的字符串 
字符串格式化 
1 2 3 4 5 6 7 字符串格式化(%) 基本格式 	%[(name)][flags][width].[precision]typecode 	-(name):命名 	-flags:+,-,''或0。+表示右对齐;-表示左对齐;''为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐,0表示使用0填充 	-width表示显示宽度 	-precision表示小数点后精度 
1 2 3 4 5 6 name = "wen"  age = 18  print ("姓名: %s, 年龄: %s" %(name, age))print ("姓名: %s, 年龄: %s" %(age, "wen2" ))
1 2 字符串格式化(format) 	{变量:[填充字符][对齐方式 <^>][宽度][格式]} 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 name = "wen"  age = 18  print ("format01 --> 姓名:{}, 年龄:{}" .format (name, age))print ("format01 --> 姓名:{}, 年龄:{}" .format (age, name))print ("format02 --> 姓名: {1}, 年龄:{0}" .format (name, age))print ("format02 --> 姓名: {1}, 年龄:{0}" .format (age, name))print ("format03 --> 姓名:{name1}, 年龄:{age1}" .format (name1 = name, age1 = age))print ("format01 --> {0:*>10}" .format (10 ,20 ))  print ("format01 --> {1:*>10}" .format (10 ,20 ))  print ("format01 --> {1:*<10}" .format (10 ,20 ))  print ("format01 --> {1:*^10}" .format (10 ,20 ))  print ("format02 --> {0:.2f}" .format (1 /3 ,5.333 ))print ("format02 --> {1:06.2f}" .format (1 /3 ,5.333 ))print ("format02 --> {0:b}" .format (10 ))print ("format02 --> {0:o}" .format (10 ))print ("format02 --> {0:,}" .format (123456789 ))
1 2 3 4 5 6 7 8 9 10 11 12 13 a = "I"  b = "Love"  c = "Python"  print (f"{a} {b} {c} " )print ("{a}{b}{c}" .format (a = a, b = b, c = c))		print (f"{a} {b} {c:a^10 } " )	print ("{a}{b}{c:a^10}" .format (a = a, b = b, c = c)) 
Python数字-Booleans 1 2 3 4 5 6 7 布尔值(Booleans)是一个逻辑值 取值范围只有True和False(真和假) 布尔值为假: 	'',0,0.0,(),[],{},None,False 	None是一个特殊的常量,表示一种特殊的数据类型(NoneType) 值布尔值为真: 	除了为假的,其他的都为真 
1 2 3 4 5 6 7 8 9 10 11 12 13 * 布尔值可以相互加减 >>>  a = 1 >>>  b = 2 >>>  print (a == b)False >>>  c = (a == b) + (a == d)		>>>  c1 >>>  lst=[(a==d),(a==b)]  >>>  sorted (lst)[False , True ]   
Others 1 2 3 4 5 ○常量 	常量是指一旦初始化后就不能修改的固定值 	注意:在Python中表示一个常量通常用大写(约定俗成,非强制)表示,如:PI=3.1415926 ○NoneType 	None表示什么也没有