为了账号安全,请及时绑定邮箱和手机立即绑定

Python 小练习

标签:
Python

需求1:

ABCD * 9 = DCBA

通过计算方法,给我们计算出 A = ?  B = ?  C = ?  D = ?

A: 1-9

B: 0-9

C: 0-9

D: 1-9

A != B != C != D

代码:

class CountNumber(object):

    def __init__(self):

        print("ABCD * 9 = DCBA; A != B != C != D")

    def numAbcd(self):

        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 ( A * 1000 + B * 100 + C * 10 + D) * 9 == (D * 1000 + C * 100 + B * 10 + A):

                            print("{0}{1}{2}{3} * 9 = {4}{5}{6}{7}".format(A, B, C, D, D, C, B, A))

                            print("A = {0}, B = {1}, C = {2}, D = {3}".format(A, B, C, D))

 

 

 

def main():

    countNumber = CountNumber()

    countNumber.numAbcd()

 

if __name__ == '__main__':

    main()




需求2:

_____________

|_A_|_B_|_C_|

|_D_|_E_|_F_|

|_G_|_H_|_I_|


A, B, C, D, E, F, G, H, I 必须是1-9数字,且不能重复

所有的行,列,对角线的和都为15


class NinePaper(object):

    def __init__(self):

        self.numbers = list()

        for i in range(1, 10):

            self.numbers.append(i)

        print("numbers = {0}".format(self.numbers))

    def run(self):

        for A in range(1, 10):

            l1 = list()

            l1 += self.numbers

            l1.remove(A)

            for B in l1:

                l2 = list()

                l2 += l1

                l2.remove(B)

                for C in l2:

                    l3 = list()

                    l3 += l2

                    l3.remove(C)

                    for D in l3:

                        l4 = list()

                        l4 += l3

                        l4.remove(D)

                        for E in l4:

                            l5 = list()

                            l5 += l4

                            l5.remove(E)

                            for F in l5:

                                l6 = list()

                                l6 += l5

                                l6.remove(F)

                                for G in l6:

                                    l7 = list()

                                    l7 += l6

                                    l7.remove(G)

                                    for H in l7:

                                        l8 = list()

                                        l8 += l7

                                        l8.remove(H)

                                        for I in l8:

                                            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('''

                                            _____________

                                            |_{0}_|_{1}_|_{2}_|

                                            |_{3}_|_{4}_|_{5}_|

                                            |_{6}_|_{7}_|_{8}_|

                                                '''.format(A, B, C, D, E, F, G, H, I))

 

 

 

 

def main():

    ninePaper = NinePaper()

    ninePaper.run()

 

if __name__ == '__main__':

    main()


需求3:

将文件passwd的内容,写入新的文件并排序,新文件名为newpasswd

import codecs

 

import os

 

 

class SortPasswd(object):

    def __init__(self):

        self.passwd = "passwd"

        self.newpasswd = "newpasswd"

        self.contextList = list()

        if not os.path.exists(self.passwd):

            print("please download passwd from linux.")

            exit(1)

        print("sort file is :{0}".format(self.passwd))

        print("sorted file is :{0}".format(self.newpasswd))

    def getContextList(self):

        with codecs.open("passwd") as fr:

            self.contextList += sorted(fr.readlines(), key=lambda line:int(line.split(":")[2]), reverse=False)

    def writeContextList(self):

        with codecs.open("new_passwd", "w") as fw:

            fw.writelines(self.contextList)

 

 

 

def main():

    sortpasswd = SortPasswd()

    sortpasswd.getContextList()

    sortpasswd.writeContextList()

 

if __name__ == '__main__':

    main()




点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消