python语言程序设计基础(第2版) 嵩天 礼欣 黄天羽 著

python语言程序设计基础(第2版) 嵩天 礼欣 黄天羽 著,第1张

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

运行结果如下:↓

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/571204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存