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

一、生成器

 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%
时间: 2024-10-20 12:01:10

yield生成器及字符串的格式化的相关文章

字符串的格式化+循环

字符串的格式化  format % values, format 是等待格式化的字符串,由包含%号的占位符的字符串组成的 values可以是普通的数值对象.字符串对象.tuple,表示多个对象填充format里面的占位符% %s 用str()函数进行字符串转换 %d 转成有符号十进制数 %f 转成浮点数(小数部分自然截断) %x 转成无符号十六进制数(x/X代表转换后的十六进制字符的大小写) 指定宽度: '%10d'  %56  #最小宽度为10,不足空格补齐 '%010d' %56 #最小宽度

字符串:格式化

一.字符串格式化的format方法 format方法接受位置参数和关键字参数 #位置参数 >>> "{0} love {1}".format('I','you') 'I love you' #关键字参数 >>> "{a} love {b}".format(a='I',b='you') 'I love you' #位置参数和关键词参数可以混用,但是位置参数必须在关键词参数之前 >>> "{0} love

三元运算式、lambda表达式、内置函数map、reduce、filter以及yield生成器

一.三元运算(式) 对于一般简单的if else条件判断句可以用三元运算来表示 具体模式为: if condition:   expr1 else:   expr2 等价于: expr1 if condition else expr2 解释:如果if condition条件成立就执行expr1表达式,否则就执行else expr2表达式 示例① >>> if 2 == 2: ...    name = 'cool' ... else: ...    name ='hot' ...  &g

字符串与格式化输入/输出

//主要是数组的scanf用法和strlen sizeof 的区别#include<stdio.h>#define DENSITY 62.4int main(void){ float weight ,volume; int size ,letters; char name[40]; printf("Hi!What's your first name?\n"); scanf("%s",name); printf("%s,what's your w

HTML代码,CSS代码,JSON字符串在线格式化,美化工具

HTML代码,CSS代码,JSON字符串在线格式化,美化工具 http://www.phpthinking.com/format.htm

Python学习之路 - yield生成器,迭代器

生成器 把结果保存成生成器的状态,普通的函数中出现yield,就变成生成器. 1.Python 3.3 中 xrange已合并到range. 1 i = range(10) 2 print (i) 3 4 =>range(0, 10) 2. yield 生成器. 1 def func(): 2 print(111) 3 yield 1 4 print(222) 5 yield 2 6 print(333) 7 yield 3 8 return "done" 9 10 k = fu

C语言学习(二)——字符串和格式化输入输出

C语言学习(二)——字符串和格式化输入输出 1.char数组类型和空字符 C没有为字符串定义专门的变量类型,而是把它存储在char数组里.数组的最后一个位置显示字符\0.这个字符就是空字符,C用它来标记字符串的结束,其ASCII码的值为(或者等同于)0.C的字符串存储时通常以这个空字符结束,该字符的存在意味着数组的单元数必须至少比要存储的字符数多1.计算机可以自己处理大多数这些细节问题(例如,scanf( )会添加'\0'使得数组内容成为C字符串). 2.strlen( )函数与sizeof运算

Javascript字符串的格式化

格式化字符串 String.prototype.format = function(args) { var result = this; if (arguments.length < 1) { return result; } var data = arguments; //如果模板参数是数组 if (arguments.length == 1 && typeof (args) == "object") { //如果模板参数是对象 data = args; } f

yield 生成器的运行机制

yield 生成器的运行机制 当你问生成器要一个数时,生成器会执行,直至出现 yield 语句,生成器把 yield 的参数给你,之后生成器就不会往下继续运行. 当你问他要下一个数时,他会从上次的状态开始运行,直至出现yield语句,把参数给你,之后停下.如此反复直至退出函数.