for 语法
形式一:
for 变量名 in 迭代对象:
代码块
形式二:
for 变量名 in 迭代对象:
代码块1
else:
代码块2
练习1: 求 1到100之间的和
range(10) ==> 0 1 2 3 4 5 6 7 8 9
range(1,10) ==> 1 2 3 4 5 6 7 8 9
range(1,10,2) ==> 1 3 5 7 9
参考:
ret = 0
for i in range(1,101):
ret += i
print(ret)
练习2: 有一个列表 L = [12,5,65,23,68,84,26],将奇偶数分开
L = [12,5,65,23,68,84,26]
odd = []
even = []
for i in L:
if i % 2 == 0:
even.append(i)
else:
odd.append(i)
print(odd)
print(even)
练习3 找出所有的水仙花数(一个三位数,个位数的三次方,十位数的三次方,百位数的三次方相加等于这个数本身)
for num in range(100,1000):
bai = int(str(num)[0])
shi = int(str(num)[1])
ge = int(str(num)[2])
tmp = bai ** 3 + shi **3 + ge ** 3
if tmp == num:
print(num)
练习4 判断一个数是不是质数(只能被1和它本身整除的数,又称素数)
num = 11
for i in range(2,num):
if num % i == 0:
print(False)
break
else:
print(True)
练习5 九九乘法表
for row in range(1,10):
for col in range(1,row+1):
print(’{}{}={}\t’.format(col,row,colrow),end=’’)
print()
列表 mylist = [‘a’,’b’,’a’,’ab’,66,66,6,88,8,88] 去重列表,并打印出每个元素出现的次数。 提示: 可以使用字典
mylist = [‘a’,‘b’,‘a’,‘ab’,66,66,6,88,8,88]
D = {}
for i in mylist:
val = D.get(i,0)
D[i] = val + 1
print(D)
马克思《数学手稿》中的一个问题: 有30人花了50先令,每男人花3先令,每女人花2先令,每小孩花1先令,问男人,女人,小孩各有几人
for man in range(31):
for woman in range(31):
for child in range(31):
counts = man + woman + child
money = man * 3 + woman * 2 + child * 1
if counts == 30 and money == 50:
print(’{} {} {}’.format(man,woman,child))
参考2:
persons = 30
for man in range(persons + 1):
for woman in range(persons + 1 - man):
child = persons - man - woman
money = man * 3 + woman * 2 + child * 1
if money == 50:
print('{} {} {}'.format(man,woman,child))
有一个列表 L= [1,5,20,2,33,10,22,14],得到每两个相邻元素的和,并将其放入一个新的列表中。
L= [1,5,20,2,33,10,22,14]
ret = []
for n in range(len(L)-1):
tmp = L[n] + L[n+1]
ret.append(tmp)
print(ret)