重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
pre
创新互联建站拥有一支富有激情的企业网站制作团队,在互联网网站建设行业深耕10多年,专业且经验丰富。10多年网站优化营销经验,我们已为上1000家中小企业提供了成都网站建设、网站设计解决方案,按需求定制网站,设计满意,售后服务无忧。所有客户皆提供一年免费网站维护!
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中稍有不同,同时它们中的一些要比其他的更加有效。
如果非要自己定义一个函数用循环求阶乘,可以这样写(缩进格式见下图):
def jc(n):
i,fact=1,1
while i=n:
fact*=i
i+=1
return fact
print(jc(6))
运行截图:
稍微比较好一点的方法是用functools模块的reduce函数,像这样:
from functools import reduce
n=6
fact=reduce(lambda x,y:x*y,range(1,n+1))
print(fact)
更好一点的办法是直接使用math模块的求阶乘的函数factorial,像这样写:
import math
print(math.factorial(6))
想要实现从 0 到 10 的累加,可以执行如下代码:
print("计算 0+2+...+10 的结果为:")
#保存累加结果的变量result = 0
#逐个获取从 0到 10 这些值,并做累加操作
for i in range(0,10):
result += iprint(result)
上面代码中,使用了 range() 函数,此函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。
扩展资料:
使用Python编程时的注意事项:
1、初始变化量
在Python里,一个表达式中的名字在它被赋值之前是没法使用的。这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,””,[],?)。记住把计数器初始化为0,列表初始化为[],以此类推。
2、从第一列开始
确保把顶层的,未嵌套的代码放在最左边第一列开始。这包括在模块文件中未嵌套的代码,以及在交互提示符中未嵌套的代码。Python使用缩进的办法来区分嵌套的代码段,因此在你代码左边的空格意味着嵌套的代码块。除了缩进以外,空格通常是被忽略掉的。
#脚本里面直接这样写就好了
import random
def R():
print (random.randint(1,1000))
for i in range(1,10):
R()