可以设置加锁的全局变量等于你的线程数,在线程运行的最后这个变量减一,然后起线程的程序判断这个变量值为0了就可以下次循环
成都创新互联公司服务项目包括大宁网站建设、大宁网站制作、大宁网页制作以及大宁网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,大宁网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到大宁省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
pre
da =[
['a',30,0.45],
['b',31,0.43548],
['c',32, 0.43],
['d',33, 0.42],
['e',34, 0.41],
['f',35, 0.40],
['g',36, 0.39],
['h',37, 0.38]
]
li = [] # 存放符合条件的数
lp = [] # 正参与循环的数
total = 0.0 # 求和
no = 0 # 总循环次数
i,ln = 0,len(da)
while True:
if i ln: # 加入循环
lp +=[da[i]]
print('{}次后{}参入循环!'.format(no,da[i][0]))
i += 1
while lp:
no += 1
for j in range(len(lp)-1,-1,-1):
total += lp[j][2]
lp[j][1] -= 1
if lp [j][1] == 0:
print('{}次后,{}循环结束!'.format(no,lp[j][0]))
del lp[j]
if total = 10:
li += [[no,round(total-10,5)]]
total = 0
break
if i==ln and lp == []:
print('最后值为:{}'.format(total))
break
print('\n符合条件的值有{}个,他们如下:\n'.format(len(li)),'*'*40)
for i in range(len(li)):
print(li[i][0],'次循环后,符合条件,其和为:',10+li[i][1],' ,减10后为:',li[i][1])
/pre
编写循环的技巧,for循环包含了常见的计数器式循环。由于通常for循环比while循环更容易写,也执行得更快,所以for循环一般是你遍历序列或其他可迭代对象时的首选。事实上,作为一条通用法则,你应该克制在Python中使用计数方式的诱惑——Python提供的迭代工具,能帮你把像C这样低级语言中循环集合体的工作自动化。不过,有些情况下你还是需要以更为特定的方式进行迭代。例如,如果你需要在列表中每隔一个元素或每隔两个元素进行访问,或是要同时修改列表呢?如果在同一个for循环内,并行遍历一个以上的序列呢?如果你也需要进行索引呢?
你总是可以用while循环和手动索引运算来编写这些独特的循环,但是python提供了一套内置函数,可以帮你在for循环内定制迭代:·内置函数range (Python 0.X及之后版本可用)返回一系列连续增加的整数,可作为for中的索引。内置函数zip (Python 2.0及之后版本可用)返回一系列并行元素的元组,可用于在for中内遍历多个序列。内置函数enumerate (Python 2.3及之后版本可用)同时生成可迭代对象中元素的值和索引,因而我们不必再手动计数。内置函数map (Python 1.0及之后版本可用)在Python 2.X中与zip有着相似的效果,但是在3.X中 map 的这一角色被移除了。因为for循环可能会比基于while的计数器循环运行得更快,所以借助这些工具并尽可能地使用for循环,会让你受益匪浅。让我们在常见的使用场景下,依次看一看这些内置函数吧。我们将会看到,它们的用法在Python 2.X和3.X中稍有不同,同时它们中的一些要比其他的更加有效。
Python While循环语句
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
实例:
#!/usr/bin/python
count = 0
while (count 9):
print 'The count is:', count
count = count + 1
print "Good bye!"
以上代码执行输出结果:
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
# continue 和 break 用法
i = 1
while i 10:
i += 1
if i%2 0: # 非双数时跳过输出
continue
print i # 输出双数2、4、6、8、10
i = 1
while 1: # 循环条件为1必定成立
print i # 输出1~10
i += 1
if i 10: # 当i大于10时跳出循环
break
无限循环
如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:
#coding=utf-8
#!/usr/bin/python
var = 1
while var == 1 : # 该条件永远为true,循环将无限执行下去
num = raw_input("Enter a number :")
print "You entered: ", num
print "Good bye!"
以上实例输出结果:
Enter a number :20
You entered: 20
Enter a number :29
You entered: 29
Enter a number :3
You entered: 3
Enter a number between :Traceback (most recent call last):
File "test.py", line 5, in module
num = raw_input("Enter a number :")
KeyboardInterrupt
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
循环使用 else 语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
#!/usr/bin/python
count = 0
while count 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
以上实例输出结果为:
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:
#!/usr/bin/python
flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
可以用假设法啊。这是计算机擅长的方法,用一个循环先假设循环节为1,然后依次假设2,3,4,5,6,7,8,9
不用再多了。再多也看不过来。这样就可以轻松算出来了。
1234567891011import sysx=0.12312312313tmps = "%s"%xp = tmps.find('.')if p0: sys.exit()tmps = tmps[p+1:]for i in xrange(1,9): if tmps[:i]== tmps[i:i*2] and tmps[i:i*2]== tmps[i*2:i*3] : print 'result is %d'%i sys.exit()print 'not found'
上面是一个简单的例子。
return
会直接另函数返回,函数就运行结束了,所有该函数体内的代码都不再执行了,所以该函数体内的循环也不可能再继续运行。
如果你需要让循环继续执行,就不能return函数,而应该选用break或者continue。
break:跳出所在的当前整个循环,到外层代码继续执行。
continue:跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。
return:直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。