python语言程序设计基础(第2版) 嵩天 礼欣 黄天羽 著
程序练习题第5章 5.1输出更大的田子格
5.1 程序练习题3.5输出了一个简单的田字格,用函数简化其代码,输出更大的田子格。
刚开始接触程序练习题3.5题目时,直接用了一个for循环,搭配一个if-else语句。
如下:↓
for i in range(21):
if i in [0,5,10,15,20]:
print("+----+----+----+----+")
else:
print("| | | | |")
这种方式解决了问题,而且一目了然,就没再尝试其它的解决方法。
在第五章5.1 的程序练习题再次碰到,看来这次要尝试其它途径来解决这个问题。
试想:上次要输出1个,这次要输出4个,那下次要输出14个,该怎么处理?
想法是有了,参考了一下别的代码运行,总不能如愿,其变换调用的参数时 ,好些代码最后输出并不是完整的田字格。
试想:运行时以田字格为单位输出,就都完整了,即使随意调整每行、每列中田字格的数量,都不会出现不完整的田子格。
整体解决代码如下:↓
a,b,c,d = '+','-','|',' '
m = 4*b +a
n = 4*d +c
num1,num2 = eval(input("输入要打印的田字格整数行和整数列,如3行5列输入3,5:"))
def Calone(num1): #定义一个余数为1的函数
Y = a + 2*m*num2 #输出时按田子格格式输出,不会出现非田字格现象
return Y
def Calnoone(num1): #定义一个余数不为1的函数
N = c + 2*n*num2
return N
for i in range(1,6*num1+1): #遍历每行
if i%3 == 1:
Calone(num1)
print(Calone(num1))
else:
Calnoone(num1)
print(Calnoone(num1))
def main():
Calone(num1)
Calnoone(num1)
print(Calone(num1)) #此行要或者不要,取决于for循环语句的range()函数的参数
main()
运行结果如下:↓
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)