Python基础3 字符串类型 字符串类型的格式化
1 #字符串类型 2 #从左到右,从0开始递增 3 4 #python字符串的三种表示方式 5 #普通字符串:用''或者""来包裹字符串(还是""用得亲切,😀) 6 #原始字符串:raw string 在原有的普通字符串前面加上一个r,表示字符串中的特殊字符不用转义,直接原样输出 7 #长字符串:用'''或者"""包裹的就是长字符串,它可以让字符串中包括换行,缩进等排版字符,可以这么使用 8 9 a="奇怪的上单"; 10 b='不太奇怪的上单'; 11 #python 字符不是使用的Ascii表示的,而是Unicode表示的,所以也可以用Unicode编码来表示 12 #列出一下几个常用转义字符 13 #\t 添加一个水平指标符 就是tab键 14 #\n 换行 15 #\r 回车 16 17 print (a); 18 print (b); 19 #''和""的使用没有问题 20 21 a="奇怪\n的上单"; 22 b='不太奇\r怪的上单'; 23 print (a); 24 print (b); 25 #\n换到当前的下面一行 26 #\r之前的东西都消失了,只有后面的东西了 27 #因为使用\r后会覆盖掉前面的内容 28 29 print("////////////////////////////"); 30 31 #原始字符串 32 #r不是叫你加在变量名前面啊!是要加在""或者''前面 33 c=r'超级离谱\t的上单'; 34 d=r'就你离谱\n好吗'; 35 print(c); 36 print(d); 37 #这里面的\t,\n的转义字符都直接输出了,没有发挥作用 38 f='\u0048'; 39 g=r'\u0048'; 40 print(f); 41 print(g); 42 #同样的Unicode编码也属于转义字符,所以加上r以后也会原样输出 43 44 print("////////////////////////////"); 45 46 #长字符串 47 h="""猜猜我是谁? 48 你爸爸"""; 49 print(h); 50 I='''猜猜我是谁? 51 \t你爸爸! 52 \n是你的亲爸爸'''; 53 print(I); 54 #可以看到在长字符串里面,转义字符等依然可以运作 55 56 print("////////////////////////////"); 57 58 #字符串的格式化 59 #和C#类似,字符串也可以格式化成想要的格式 60 61 #字符串的格式化使用的format()函数和占位符(也就是我们熟知的{0},{1}这样的) 62 aa="猜猜我是谁?"; 63 bb="dio哒!"; 64 print("{0}{1}".format(aa,bb)); 65 #这段print括号内是什么意思呢?我们分析一下 66 #首先""内是要输出的字符串 67 #在里面输出的本来是{0}和{1},但是因为我们后面.format()加点引用了format方法 68 #所以{0},{1}在这里变成了占位符 69 #而format方法本身的含义就是把某个数据变成字符串的形式,所以这里aa bb被带入了""中补充构成了一个新的字符串 70 71 #同样的,我们也可以用这种方式对其他变量赋值 72 cc="金发男子说:{0}\n突然人群中的光头大喊:{1}".format(aa,bb); 73 print(cc); 74 #这里cc中间储存的就是包含了当时aa,bb的值一起组合成的字符串 75 bb="西撒!"; 76 print(cc); 77 #而就算我们改变了当时bb中的数据,cc依然可以不改变,因为aa,bb传输的只是数据过去,并不改变aa bb本身的数据 78 #cc也是直接接收了aa bb的数据并存储,变成了它自己的数据,自然不会受到aa bb的影响 79 80 #和C# 一样,我们也可以通过format和占位符来控制输出的格式(不然也就没有意义了) 81 #s 字符串格式化 82 #d 十进制整数 83 #f F 十进制浮点数 84 #g G 十进制整数或者十进制浮点数 85 #e E 科学记数法表示浮点数 86 #o 八进制数,是小写的o,没有大写 87 #x X 十六进制数 88 89 name="大傻逼"; 90 age=20; 91 zhili=2.51264; 92 print("名字:{0},年龄{1},智商{2}".format(name,age,zhili)); 93 print("名字:{0:s},年龄{1:d},智商{2:f}".format(name,age,zhili)); 94 print("名字:{0:s},年龄{1:d},智商{2:g}".format(name,age,zhili)); 95 #这两个输出结果相互比较,我们发现,g是兼容十进制整数和浮点的,但是也有区别 96 #就是float浮点型会往后面补充小数点到6位,而g则会保持原来的不变 97 print("名字:{0},年龄{1:7d},智商{2}".format(name,age,zhili)); 98 #而当我们在d前面加上数字时,他会生成一给总共7位的空间 99 #如果我们没有填满这7位数,多出来的他会在前面以空格的形式呈现 100 101 print("名字:{0},年龄{1},智商{2:e}".format(name,age,zhili)); 102 #使用科学记数法表示数据 103 print("名字:{0},年龄{1},智商{2:10.2f}".format(name,age,zhili)); 104 #这里表示的时候,10.2f前面的10和d的表示情况一样 105 #0.2表示出来的结果。就是只显示小数点的后两位 106 107 #o x 就不做赘述了 108 #但是要注意的是,这个地方格式化,不是强制转换 109 #只有同类型的才能格式化 110 #比如只有整数才可以进行 o x d g这种操作 111 #类型之间是不能进行格式化的
悟已往之不谏,知来者之可追