首页 > 解决方案 > for 和 while 循环使用 break、pass、continue。我不知道下一步该去哪里

问题描述

一般来说,我是 Python 和 Stackoverflow 的新手,如果我的格式很糟糕而且我不擅长英语,我很抱歉。但我被这段代码困住了。

test = True
a = True
total = 0
t = 0
while test:
    n = int(input('Width (7-10): '))
    if n<7 or n>10:
        print('Invalid Number!')
        total += 1
    if n>=7 and n<=10:
        break
while a:
    c = int(input('Border (1-3): '))
    if c<1 or c>3:
        print('Invalid Number!')
        t += 1
    if c>=1 and c<=3:
        break

这就是结果。

Width (7-10): 5
Invalid Number!
Width (7-10): 10
Border (1-3): 0
Invalid Number!
Border (1-3): 2

这就是我想要的结果。

Width (7-10): 5
Invalid Number!
Width (7-10): 10
Border (1-3): 0
Invalid Number!
Border (1-3): 2
**********
**********
**      **
**      **
**      **
**      **
**      **
**      **
**********
**********

我不知道如何制作正方形。

标签: pythonpython-3.xfor-loopwhile-loop

解决方案


这可以通过以下代码实现:

for i in range(n):
   if i < c or i >= n-c:
        print("*"*n)
    else:
        print("*"*c + " "*(n-(c*c)) + "*"*c)

这将遍历一个for循环,其范围是之前输入的宽度(n在本例中)。通过测试您是否处于第一次/最后几次迭代(由边界确定,或者c在这种情况下),您可以打印边界。如果没有,您可以使用所需的间距打印必要的星星。

您可以根据需要通过乘以字符串来打印所需数量的星星。


推荐阅读