2018-4-10 循环习题实例讲解

26 篇文章 0 订阅
18 篇文章 0 订阅

这次主要讲解实例,

实例1:

需求:判断一个字符串,包含数字多少个,字母多少个,空格多少个,其他字符多少个

while 1:
    strings = input("Please inpur a string(quit will be exit):")
    alpha, dig, space, other = 0, 0, 0, 0
    if strings.strip() == "quit":
        exit(1)
    for i in strings:
        if i.isdigit():
            dig += 1
        elif i.isspace():
            space += 1
        elif i.isalpha():
            alpha += 1
        else:
            other += 1
    print("alpha = {0}".format(alpha))
    print("dig = {0}".format(dig))
    print("space = {0}".format(space))
    print("other = {0}".format(other))

思路看注释

这里写图片描述

实例2:

需求:ABCD乘9=DCBA,A=? B=? C=? D=?
答案:a=1,b=0,c=8,d=9 1089*9=9801

for A in [1]:
    for B in range(0, 10):
        for C in range(0, 10):
            for D in [9]:
                if ((1000* A + 100*B + 10*C + D)*9 == 1000*D + 100*C + 10*B + A ):
                    print("A = {0}".format(A))
                    print("B = {0}".format(B))
                    print("C = {0}".format(C))
                    print("D = {0}".format(D))
                    print("{0}{1}{2}{3}x9={3}{2}{1}{0}".format(A, B, C, D))

思路看注释

这里写图片描述

这里注意,其中a和d是根据数学常识判断的,也可以不做常识判断,4个参数都设定为0-9,但是会怎加计算量,是程序运行变慢怎加资源占用,所以要避免无用代码浪费资源

实例3:

需求:如图,1-9九个数字,依次填入空格,要求横竖斜相加和相等,
这里写图片描述

思路:一个列表1-9,选出一个数字,剩下8个再创建一个新列表,再选出一个数字,以此类推,然后设定条件,使得所选数字符合题目要求

number = list()
for i in range(1, 10):
    number.append(i)
print(number)


count = 1
for A in number:
    a = number.copy()
    a.remove(A)
    for B in a:
        b = a.copy()
        b.remove(B)
        for C in b:
            c = b.copy()
            c.remove(C)
            for D in c:
                d = c.copy()
                d.remove(D)
                for E in d:
                    e = d.copy()
                    e.remove(E)
                    for F in e:
                        f = e.copy()
                        f.remove(F)
                        for G in f:
                            g = f.copy()
                            g.remove(G)
                            for H in g:
                                h = g.copy()
                                h.remove(H)
                                for I in h:
                                    if (A+B+C == D+E+F == G+H+I == A+D+G == B+E+H == C+F+I == A+E+I == G+E+C == 15):
                                        print('''
                                        第{9}种例子
                                        -------------
                                        | {0} | {1} | {2} |
                                        | {3} | {4} | {5} |
                                        | {6} | {7} | {8} |
                                        -------------'''.format(A,B,C,D,E,F,G,H,I,count))
                                        count += 1

这里写图片描述

这里写图片描述

这里写图片描述

实例4

需求:0! + 1! + 2! + 3! + 4! + 5! + 6!………………+ n!

def jc(n):
    result = 1
    if n == 0:
        return result
    else:
        for i in range(1, n+1):
            result *= i
        return result


n = input("Plese inpurt number n:")
count = 0
for i in range(0, int(n)+1):
    count += jc(i)

print("count = {0}".format(count))

这段代码暂时没有理解透彻,有待消化补充

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值