Python 用“*” 输出三角形的代码写法

 

Python 嵩天老师的第三课练习的第三题:

用代码写出“*”的三角形

答案应该只有2行代码:

#三角形输出
n = eval(input())
for i in range(1,n+1,2):
    print("{0:^{1}}".format("*" * i,n))

       

输入数字13,出来的

代码解析:

n = eval(input())

调用了eval()函数,评估函数,将字符串的最外面双引号打开,成为数字

for i in range(1,n+1,2):
print("{0:^{1}}".format("*" * i,n))

最关键的就是槽的使用,内部的槽,确定了画“*”的个数,外部的槽{},以n确定了行宽,以最宽的一行作为每一行宽度

再进一步:如何输出菱形?

#三角形输出
#菱形输出
n = eval(input())
for i in range(1,n+1,2):
    print("{0:^{1}}".format("*" * i,n+1))
for i in range(n-1,1,-2):
    print("{0:^{1}}".format("*" * (i-1),n+1))

 三角形变为菱形,主要是再画一个倒三角形,然后底边比正的三角形少一行。

for i in range(n-1,1,-2):
    print("{0:^{1}}".format("*" * (i-1),n+1))

          

这是打印效果

加上的这两行意思和画正三角形差不多,主要就是注意 for in 的倒序。从大到小,前后颠倒一下即可,步长则改为-2。

打印的时候,从 for in 改成 n-2,也可以。

for i in range(n-2,1,-2):
    print("{0:^{1}}".format("*" * (i),n+1))

这样后续的 print 函数打印,就可以直接从 i 开始。

打印有问题,因为这样的话,1 是不包括的。

会出来这样的图案:

         

最后一行不是 * ,所以再次修改代码,将 1 改为 0 ,测试。

#菱形输出
n = eval(input())
for i in range(1,n+1,2):
    print("{0:^{1}}".format("*" * i,n+1))
for i in range(n-2,0,-2):
    print("{0:^{1}}".format("*" * (i),n+1))

最终输出的结果:

完美。

  • 28
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值