for

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值