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 #类型之间是不能进行格式化的

 

posted @ 2020-09-23 13:30  想活出点人样  阅读(184)  评论(0编辑  收藏  举报