구구단을 짜놓은 페이지입니다.
첫 프로그램(루프 이용) ¶
~cpp
# gugudan with loop.
for dan in range(2, 10):
for op in range(1, 10):
print ('%d x %d = %d')%(dan, op, dan*op)
약간 구조적으로 리팩토링 ¶
~cpp
# gugudan with slightly structured programming methodology.
def dan(d):
for op in range(1, 10):
print ('%d x %d = %d')%(d,op,d*op)
def gugudan():
for d in range(2, 10):
dan(d)
if __name__=='__main__':
gugudan()
recursion 사용 ¶
~cpp
# gugudan with recursion.
def recurGugu(dan, op, sum):
if op < 10 :
sum += dan
print ('%d x %d = %d') % (dan, op, sum)
recurGugu(dan, op+1, sum)
else:
if dan < 9 :
recurGugu(dan+1, 1, 0)
else:
return
return
if __name__=='__main__':
recurGugu(2, 1, 0)
객체지향(이라고 보기는 힘든면도..) ¶
~cpp
# gugudan with object-oriented programming (just express elements as objects)
class Gugudan:
def __init__(self):
for d in range(2, 10):
Dan(d)
class Dan:
def __init__(self, dan):
self.dan = dan
for op in range(1, 10):
opDan = Operand(dan)
opMul = Operand(op)
print DanLine(opDan, opMul)
class DanLine:
def __init__(self, op1, op2):
self.op1 = op1.value()
self.op2 = op2.value()
def __str__(self):
return ('%d x %d = %d')%(self.op1, self.op2, self.op1*self.op2)
class Operand:
def __init__(self, value):
self.val = value
def value(self):
return self.val
if __name__=='__main__':
Gugudan()










