当我用*做正方形时,我试图建立一个循环。如果box_size甚至是一个实心正方形。如果box_size是奇数,则应该绘制正方形轮廓。这应该一直进行到用户输入0且程序停止为止。我将这两个代码混合在一起,但是偶数代码有效,而奇数代码无效。
#Input
while 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)
#Output
box_size:6
************
************
************
************
************
************
box_size:5
box size:
答案 0 :(得分:1)
您在这里有多个问题,您似乎很困惑,因为您发布了很多问题,其中包含您正在处理的实际问题的点点滴滴。
可能不需要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()
答案 1 :(得分:1)
只需对您的代码进行修改。
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()
答案 2 :(得分:0)
您可以尝试一下
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
答案 3 :(得分:-2)
尝试一下?
while True:
box_size=input("box_size:" )
box_size=int(box_size)
if box_size == 0:
break # program stops
elif box_size % 2 == 0: # even numbers
for row in range(box_size):
for col in range(box_size*2):
print('*', end='')
print()
print()
else: # odd numbers
print('*' * box_size)
for i in range(box_size-2):
print ('*' + ' ' * (box_size-2) + '*')
print('*' * box_size)
我假设您的意思是程序将继续运行以提示另一个box_size
,直到用户最终输入0
作为输入为止。