我是靠谱客的博主 高大美女,最近开发中收集的这篇文章主要介绍python每行输出五个_「答案」python每日一题20201110,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

打印出如下图案(菱形)

c25d517421a6b830111e55f34e24b118.png
#常规代码def draw2(num):#num表示行的总对称次数    for i in range(1,num*2):#行数        for j in range(1,abs(num-i)+1): #空格            print(end=" ")        for j in range(1,num*2-abs(num-i)*2):#*号            print("*",end="")        print()#回车draw2(4)

以上代码主要是受传统编程语言的影响,用循环语句模拟打印过程,外层循环决定图形行数,内层分别绘制空格和星号。主要还是注意range函数的区间范围,print函数中end参数。

#python递归解法MAX_COL=9#每行最大占用空间def draw(num,n): #num表示行的总对称次数,n表示画第几次(倒数,除中间一条外每次画两行)a="*"*(2*(num-n)+1) #每行星号个数print(a.center(MAX_COL,' ')) #打印对称的上半部分if n!=1: draw(num,n-1) #递归打印下一行print(a.center(MAX_COL,' ')) #打印对称的下半部分draw(4,4)

上面的代码主要考虑到菱形的对称性,巧妙运用递归完成图形生成。其中字符串的center函数可以简化前置空格输出,字符串用*运算可以简化重复输出。所以第一种解法的代码可以做一下优化。

#常规代码MAX_COL=9#每行最大占用空间def draw2(num):#num表示行的总对称次数    for i in range(1,num*2):#行数        print(("*"*(num*2-abs(num-i)*2-1)).center(MAX_COL," "))#*号draw2(4)

最后

以上就是高大美女为你收集整理的python每行输出五个_「答案」python每日一题20201110的全部内容,希望文章能够帮你解决python每行输出五个_「答案」python每日一题20201110所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部