3 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
您在這里有多個(gè)問題,并且您似乎很困惑,因?yàn)槟l(fā)布了很多問題,其中包含您正在處理的實(shí)際問題的點(diǎn)點(diǎn)滴滴。
該while子句可能不是必需的,因?yàn)槟幌脒\(yùn)行一次。您也可以在用戶輸入后檢查數(shù)字是奇數(shù)還是偶數(shù),因此無需詢問兩次。所以一個(gè)工作版本將是:
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()

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
剛剛對(duì)您的代碼進(jìn)行了修改。
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()

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以試試這個(gè)
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
添加回答
舉報(bào)