pre
da =[
]
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):
lp[j][1] -= 1
if lp [j][1] == 0:
print('{}次后,{}循环结束!'.format(no,lp[j][0]))
del lp[j]
if total = 10:
total = 0
break
if i==ln and lp == []:
print('最后值为:{}'.format(total))
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循环内,并行遍历一个以上的序列呢?如果你也需要进行索引呢?
如果非要自己定义一个函数用循环求阶乘,可以这样写(缩进格式见下图):
def jc(n):
i,fact=1,1
while i=n:
fact*=i
i◆=1
return fact
运行截图:
稍微比较好一点的方法是用functools模块的reduce函数,像这样:
from functools import reduce
fact=reduce(lambda x,y:x*y,range(1,n◆1))
print(fact)
更好一点的办法是直接使用math模块的求阶乘的函数factorial,像这样写:
import math
想要实现从 0 到 10 的累加,可以执行如下代码:
#保存累加结果的变量result = 0
#逐个获取从 0到 10 这些值,并做累加操作
for i in range(0,10):
result ◆= iprint(result)
上面代码中,使用了 range() 函数,此函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中.
扩展资料:
使用Python编程时的注意事项:
①.、初始变化量
在Python里,一个表达式中的名字在它被赋值之前是没法使用的.这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,"",[],?).记住把计数器初始化为0,列表初始化为[],以此类推.
确保把顶层的,未嵌套的代码放在最左边第一列开始.这包括在模块文件中未嵌套的代码,以及在交互提示符中未嵌套的代码.Python使用缩进的办法来区分嵌套的代码段,所以呢在你代码左边的空格意味着嵌套的代码块.除了缩进以外,空格通常是被忽略掉的.
#脚本里面直接这样写就好了
import?random
def?R():
print?(random.randint(1,1000))
for?i?in?range(1,10):
R()