一、A、B、C、D是不同的整数,ABCD * 9 = DCBA;用python求出A、B、C、D的值
class CountNumber(object):
'''ABCD * 9 = DCBA
通过计算机的方法,给我们计算出A = ? B = ? C = ? D = ?
A: 1-9
B: 0-9
C: 0-9
D: 1-9
A != B != C !=D
'''
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()结果:
ABCD * 9 = DCBA; A!=B!=C!=D 1089 *9 = 9801 A = 1, B = 0, C = 8, D = 9
二、九宫格:所有的行,列,对角线的和都为15
class NinePaper(object):
def __init__(self):
print('''
_____________
|_A_|_B_|_C_|
|_D_|_E_|_F_|
|_G_|_H_|_I_|
A, B, C, D, E, F, G, H, I 必须是1-9数字,且不能重复
所有的行,列,对角线的和都为15
''')
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()结果:
_____________ |_A_|_B_|_C_| |_D_|_E_|_F_| |_G_|_H_|_I_| A, B, C, D, E, F, G, H, I 必须是1-9数字,且不能重复 所有的行,列,对角线的和都为15 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] _____________ |_2_|_7_|_6_| |_9_|_5_|_1_| |_4_|_3_|_8_| _____________ |_2_|_9_|_4_| |_7_|_5_|_3_| |_6_|_1_|_8_| _____________ |_4_|_3_|_8_| |_9_|_5_|_1_| |_2_|_7_|_6_| _____________ |_4_|_9_|_2_| |_3_|_5_|_7_| |_8_|_1_|_6_| _____________ |_6_|_1_|_8_| |_7_|_5_|_3_| |_2_|_9_|_4_| _____________ |_6_|_7_|_2_| |_1_|_5_|_9_| |_8_|_3_|_4_| _____________ |_8_|_1_|_6_| |_3_|_5_|_7_| |_4_|_9_|_2_| _____________ |_8_|_3_|_4_| |_1_|_5_|_9_| |_6_|_7_|_2_|
三、对passwd文件内容中的UID进行排序,并把排序后的结果存到新文件中
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()学习感想:
代码封装格式:
class A(object):
def __init__(self):
def B(self):
def main():
a = A()
a.B()
if __name__ == '__main__':
main()
原文地址:http://blog.51cto.com/13406610/2054780