Python学习_06 习题练习


Python学习_06 习题练习
2018-04-10
  • 1、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018\4\10 0010 20:31
# @Author  : xiexiaolong
# @File    : 0410.py
'''
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
'''
while 1:
    strings = input("Please input 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))
结果:
D:\python\venv\Scripts\python.exe D:/python/0410.py
Please input a string(quit will be exit):1 2 3 4 !@#$ sfsssssff  ddddd
alpha = 14
dig = 4
space = 7
other = 4
Please input a string(quit will be exit):quit

Process finished with exit code 1
  • 2、ABCD乘9等于DCBA 求A = ? B = ? C=? D=?
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018\4\10 0010 20:50
# @Author  : xiexiaolong
# @File    : 0410-2.py
##ABCD乘9等于DCBA A = ? B = ? C=? D=?
for A in range(1, 10):
    for B in range(0, 10):
        for C in range(0, 10):
            for D in range(1, 10):
                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}*9={4}{5}{6}{7}".format(A,B,C,D,D,C,B,A))
结果:
D:\python\venv\Scripts\python.exe D:/python/0410-2.py
A = 1
B = 0
C = 8
D = 9
1089*9=9801

Process finished with exit code 0

  • 3、九宫格
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018\4\10 0010 21:04
# @Author  : xiexiaolong
# @File    : 0410-3.py
'''
九宫格
                ---------------
                | A | B | C |
                | D | E | F |
                | G | H | I |
                ---------------
所有的横竖斜线加起来等于15
A : 1-9
B : 1-9 除A
C : 1-9 除A,B
D : 1-9 除A,B,C
'''
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 == C+E+G == 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


结果如下:
D:\python\venv\Scripts\python.exe D:/python/0410-3.py
[1, 2, 3, 4, 5, 6, 7, 8, 9]

                                        第1种方法:
                                        ---------------
                                        | 2 | 7 | 6 |
                                        | 9 | 5 | 1 |
                                        | 4 | 3 | 8 |
                                        ---------------
                                        

                                        第2种方法:
                                        ---------------
                                        | 2 | 9 | 4 |
                                        | 7 | 5 | 3 |
                                        | 6 | 1 | 8 |
                                        ---------------
                                        

                                        第3种方法:
                                        ---------------
                                        | 4 | 3 | 8 |
                                        | 9 | 5 | 1 |
                                        | 2 | 7 | 6 |
                                        ---------------
                                        

                                        第4种方法:
                                        ---------------
                                        | 4 | 9 | 2 |
                                        | 3 | 5 | 7 |
                                        | 8 | 1 | 6 |
                                        ---------------
                                        

                                        第5种方法:
                                        ---------------
                                        | 6 | 1 | 8 |
                                        | 7 | 5 | 3 |
                                        | 2 | 9 | 4 |
                                        ---------------
                                        

                                        第6种方法:
                                        ---------------
                                        | 6 | 7 | 2 |
                                        | 1 | 5 | 9 |
                                        | 8 | 3 | 4 |
                                        ---------------
                                        

                                        第7种方法:
                                        ---------------
                                        | 8 | 1 | 6 |
                                        | 3 | 5 | 7 |
                                        | 4 | 9 | 2 |
                                        ---------------
                                        

                                        第8种方法:
                                        ---------------
                                        | 8 | 3 | 4 |
                                        | 1 | 5 | 9 |
                                        | 6 | 7 | 2 |
                                        ---------------
                                        

Process finished with exit code 0



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值