码迷,mamicode.com
首页 > 其他好文 > 详细

yield生成器及字符串的格式化

时间:2016-07-12 00:00:29      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:

一、生成器

 1 def ran():
 2     print(Hello world)
 3     yield F1
 4 
 5     print(Hey there!)
 6     yield F2
 7 
 8     print(goodbye)
 9     yield F3
10 
11 ret = ran() # ran()称为生成器函数,ret才是生成器,仅仅具有一种生成能力,函数内部要有关键字yield
12 print(ret)
13 
14 res = ret.__next__() #对生成器进行循环操作,遇到yield会停止操作,将yield的值返回给变量,并会记录保存位置
15 print(res)
16 
17 res1 = ret.__next__() #下次再对生成器进行操作,会从停止出开始,直到下一个yield停止
18 print(res1) # 当__next__次数超过yield时,会报错
19 
20 for i in ret: #进行__next__之后再进行for循环,也是从上次yield停止处开始
21     print(i)

 二、字符串的格式化

① % 方法

 1 s = I am a %s guy % (good)
 2 print(s)
 3 
 4 n = I am a %s guy,%d years old % (good,28)
 5 print(n)
 6 
 7 d = I am a %(n1)s guy,%(n2)d years old % {n1:"good",n2:28}
 8 print(d)
 9 
10 f = I am %f % (28) # 浮点数占位符,默认保留小数点后6位,四舍五入
11 print(f)
12 
13 f1 = I am %.2f % (28) #设置保留小数点后2位
14 print(f1)
15 
16 # typecode
17 %s : 字符串
18 %d : 十进制数字
19 %f :浮点型
20 %% :%
21 %o : 将十进制转换成八进制返回
22 %x :将十进制转换成十六进制返回
23 %e :将数字转换成科学记数法

② format方法

 1 tem = I am {},age {},.format(Ethan,28)
 2 print(tem)
 3 
 4 tem = I am {},age {},{}.format(*[Ethan,28,Ethan])
 5 print(tem)
 6 
 7 tem = I am {0},age {1},really {0}.format(Ethan,28)
 8 print(tem)
 9 
10 tem = I am {0},age {1},really {0}.format(*[Ethan,28])
11 print(tem)
12 
13 tem = I am {name},age {age},really {name}.format(**{name:Ethan,"age":28})
14 print(tem)
15 
16 tem = I am {name},age {age},really {name}.format(name = Ethan,age = 28)
17 print(tem)
18 
19 tem = I am {0[0]},age {0[1]},really {0[0]}.format([Ethan,28],[Seven,27])
20 print(tem)
21 
22 tem = I am {:s},age {:d},money {:f}.format(Ethan,28,8988.23)
23 print(tem) # I am Ethan,age 28,money 8988.230000
24 
25 tem = I am {:s},age {:d}.format(*[Ethan,28])
26 print(tem)
27 
28 tem = I am {name:s},age {age:d}.format(age = 28,name = Ethan)
29 print(tem)
30 
31 tem = I am {name:s},age {age:d}.format(**{name:Ethan,age:28})
32 print(tem)
33 
34 tem = Numbers:{:b},{:o},{:d},{:x},{:X},{:%}.format(15,15,15,15,15,15.87623,2)
35 print(tem) # Numbers:1111,17,15,f,F,1587.623000%

 

yield生成器及字符串的格式化

标签:

原文地址:http://www.cnblogs.com/ethancui/p/5656757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!