才学python没多久,不是很会写;现在我想要实现输入一个边长,然后根据这个边长输出一个矩形,在输入边长后,对边长进行判断,然后进行运行输出,但我发现在判断输入的边长被判定不满足条件后就不能通过重新输入后再次运行代码,而是需要我重新点击运行整个程序,才可以再次运行,相当于在判断输入边长不满足条件后就结束了,然后下面的就是我更改后的结果,但还是有问题,求帮助,怎么改(有些写法可能看着让人不太爽,但我也才学没多久,请谅解!)
#封装输出矩形
def bianchang():
#输入正方形的边长
rows = int(input("请输入正方形的边长:"))
def juxing(): #输出正方形
# 输入正方形的边长
rows = int(input("请输入正方形的边长:"))
if rows <= 0: #判断输入边长是否合法
rows = int(input(f"您的输入有误,请重新输入一个大于0的数:{bianchang()}")) #不合法,重新输入后返回进行再次判断
else:
x = int(input("需要输出实心正方形请输入1,否则请输入其他:")) #判断需要输出实心正方形还是空心正方形
if x == 1: #输出实心正方形
for i in range(rows):
for j in range(rows):
print("#",end=" ")
print()
else: #输出空心正方形
#外层for循环控制打印行数
for i in range(rows):
#通过if函数判断行数,筛选出首行和末行
if i == 0 or i == rows-1:
#内层for循环打印出筛选出来的首行和末行
for j in range(rows):
print("#",end=" ")
#else获取除首行和末行之间的行
else:
#for循环控制中间的打印行数
for j in range(rows):
#if判断列,将首列和未列筛出打印
if j == 0 or j == rows-1:
print("#",end=" ")
#else截留剩余列,打印空格
else:
print(" ",end=" ")
print()
juxing()