可以帮我改一下这个代码吗?谢谢!
本帖最后由 MIQIWEI 于 2020-8-24 20:02 编辑编写一个名为draw_triangle(size)的函数,该函数采用整数值大小作为参数,并使用打印语句,“ X”(大写X)和“-”字符(和空格)绘制等腰三角形。
三角形的轮廓使用“ X”字符,三角形的内部填充有“-”字符。
三角形的底边等于大小,该三角形的底边上的每一行在每一边上都缩小一个字符。
如果未传递任何参数,则应绘制一个默认大小为5的三角形。
三角形的大小必须至少为3。如果传递的值小于3,则将引发ValueError异常
def draw_triangle(size):
try:
num = int(size)
if(num<=2):
print("The size is too small.")
return
if(num%2!=0):
for i in range(1,num+1,2):
for j in range(1,num-i+1):
print(" ",end='')
for j in range(1,i+1):
if(j==1 or j==i or i%num==0):
print("X",end='')
else:
print("-",end='')
print()
else:
for i in range(2,num+1,2):
for j in range(1,num-i+1):
print(" ",end='')
for j in range(1,i+1):
if(j==1 or j==i or i%num==0):
print(" X",end='')
else:
print(" -",end='')
print()
except:
print("ERROR: Invalid Input!")
你的程序中后半部分的print多了空格
def draw_triangle(size):
try:
num = int(size)
if(num<=2):
print("The size is too small.")
return
if(num%2!=0):
for i in range(1,num+1,2):
for j in range(1,num-i+1):
print(" ",end='')
for j in range(1,i+1):
if(j==1 or j==i or i%num==0):
print("X",end='')
else:
print("-",end='')
print()
else:
for i in range(2,num+1,2):
for j in range(1,num-i+1):
print(" ",end='')
for j in range(1,i+1):
if(j==1 or j==i or i%num==0):
print(" X",end='')#这里X前多了一个空格
else:
print(" -",end='')#这里-前多了一个空格
print()
except:
print("ERROR: Invalid Input!") def DarwX(size):
halfsize=(size//2)
for i in range(0,halfsize-1):
print(' '*(halfsize-1-i)+'X'+'-'*i+'-'*i+'X'+' '*(halfsize-1-i))
print('X'*size)
DarwX(10)
把else后面的代码,用这个试试 print(" X",end='')
你这个X前面加了空格,所以缝隙变大了吧 for i in range(2,num+1,2):
for j in range(1,(num-i)//2+1):
print(" ",end='')
for j in range(1,i+1):
if(j==1 or j==i or i%num==0):
print("X",end='')
else:
print("-",end='')
print()
你的这个改成这样试试
自己写了一遍,看看能不能用的:
def draw_triangle(size=5):
if type(size) != int:
print("ERROR: Invalid Input!")
return
if size <= 2:
print("ERROR:The size is too small.")
return
count = size % 2
first = count
for i in range(size // 2, not count, -1):
print(' ' * (i - (not (size % 2))), end='')
if first:
print('X')
first = False
continue
print(f'X{"-" * count}X')
count += 2
print('X' * size)
页:
[1]