为了账号安全,请及时绑定邮箱和手机立即绑定

如果,否则,elif 循环

如果,否则,elif 循环

侃侃无极 2022-03-09 21:16:07
我试图在从 *. 如果 box_size 是偶数,它应该是一个实心正方形。如果 box_size 是奇数,它应该是一个正方形的轮廓。这应该一直持续到用户输入 0 并且程序停止。我将这两个代码混合在一起,但是偶数代码有效,而奇数代码无效。#Inputwhile True:    box_size=input("box_size:" )    box_size=int(box_size)    if box_size % 2:        break    for row in range(box_size):      for col in range(box_size*2):        print('*', end='')      print()    print()while True:    box_size= int(input("box size: "))    if box_size % 1:        print('*' * box_size)        for i in range(box_size-2):            print ('*' + ' ' * (box_size-2) + '*')            print('*' * box_size)#Outputbox_size:6************************************************************************box_size:5box size:
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

您在这里有多个问题,并且您似乎很困惑,因为您发布了很多问题,其中包含您正在处理的实际问题的点点滴滴。


该while子句可能不是必需的,因为您只想运行一次。您也可以在用户输入后检查数字是奇数还是偶数,因此无需询问两次。所以一个工作版本将是:


box_size=input("box_size:" )

box_size=int(box_size)

if box_size % 2:

    print('*' * box_size)

    for i in range(box_size-2):

        print ('*' + ' ' * (box_size-2) + '*')

    print('*' * box_size)

else:

    for row in range(box_size):

        for col in range(box_size*2):

            print('*', end='')

        print()

    print()


查看完整回答
反对 回复 2022-03-09
?
慕后森

TA贡献1802条经验 获得超5个赞

刚刚对您的代码进行了修改。


while True:

    box_size=int(input("box_size:" ))

    if box_size == 0:

        break

    elif box_size % 2:

        print(box_size * '*')

        for col in range(box_size-2):

            print ('*' + (box_size-2) * ' ' + '*')

        print(box_size * '*')

    else:

        for row in range(box_size):

            for col in range(box_size*2):

                print('*', end='')

            print()

        print()


查看完整回答
反对 回复 2022-03-09
?
GCT1015

TA贡献1827条经验 获得超4个赞

你可以试试这个


flag= False

while not flag:

    box_size=int(input("box_size:" ))

    if box_size == 0:

        flag=True 

    elif not box_size % 2:

        for row in range(box_size):

            print(2*box_size*'*')

    else:

        print(2*box_size*'*')

        for row in range(1,box_size-1):

            print('*'+2*(box_size-1)*' '+'*')

        print(2*box_size*'*')

输出:


box_size:6

************

************

************

************

************

************

box_size:5

**********

*        *

*        *

*        *

**********

box_size:0


查看完整回答
反对 回复 2022-03-09
  • 3 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信