python:通过while循环,输入一个正奇数,控制台输出该奇数行的菱形‘*’阵列

本文介绍了初学者如何使用Python编写一个控制台程序,根据用户输入生成奇数行的菱形,以及后续代码简化后的版本,仅用8行完成。作者寻求更简洁方法并分享学习过程。
摘要由CSDN通过智能技术生成

        控制台输入奇数,生成奇数行的菱形;输入偶数,重新输入;输入end,退出

        初学python,感觉写的跟赘余,不过好在实现了,如果有更简单的方法请务必跟我分享一下orz

f = 0
while 1:
    if f == 1:
        break
    a = i = 1
    d = 0
    b = '*'
    c = ''
    x = input("please enter an odd number:")
    if x == 'end':
        break
    while 0 < a <= int(x):
        while 1:
            # 检验输入数字是否合规
            if int(x) % 2 == 0:
                print("do not enter an even number, please re-enter!")
                x = input("please enter an odd number:")
                if x == 'end':
                    f = 1
                    break
            while 0 < a <= int(x):
                c = c + b
                a -= 1
            i += 1
            e = "^"+str(int(x))+""
            print(format(c, e))
            break
        if f == 1:
            break
        if d == 0:
            a = (i * 2) - 1
            c = ''
            if a == int(x):
                d = 1
        else:
            a = int(x) - (i - (int(x)+1)/2) * 2
            c = ''

         2024.3.17  今天新学了字符串,现在只用8行就可以搞定:

a = input("please enter the number of floors of '*' tower:")
b = 0
while b <= int(a):
    print("{:^%}".replace("%",str(2 * int(a) - 1)).format("*" * (2 * b - 1)))
    b += 1
while 2 < b < int(a)+2:
    print("{:^%}".replace("%", str(2 * int(a) - 1)).format("*" * (2 * b - 5)))
    b -= 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值