我正在尝试从一个输入的奇数打印直角和等腰三角形。 我可以让它打印一个或另一个,但是当我尝试同时打印时,它会打印出以下内容:
****
**********
***
***********
**
************
*
*************
到目前为止,我的代码是:
row = int(input("enter row:"))
if row %2 ==0 or row<=0:
print("enter an odd positive number")
else:
for i in range(row) :
#print("right angle",end="")
#print("\n")
print (" "*i+"*"*(row-i))
#print("isoscoles")
#print (" "*i+"*"*(row+i))
如果我输入
print ("right angle "*i+"*"*(row-i))
我明白了
right angle right angle right angle right angle ***
right angle right angle right angle right angle right angle **
right angle right angle right angle right angle right angle right angle *
我想做的是:
Enter an odd positive integer: 7
Right-Angled Triangle:
*******
******
*****
****
***
**
*
Isosceles Triangle:
*
***
*****
*******
我很高兴XD的头部融化了。
答案 0 :(得分:0)
此代码可以工作:
# loop till a valid answer is given
while True:
# this may raise ValueError if not a valid integer; optionally
# add try ... except ...
n = int(input('Enter an odd positive integer:'))
if n % 2 != 0 and n > 0:
# exit while loop
break
print()
print('Right-Angled Triangle')
# build and print a string with decreasing amount of stars
for i in range(n):
print('*' * (n - i))
# build and print a string with decreasing amount of stars, but also
# print an increasing amount of space in front
for i in range(n):
print(' ' * i, '*' * (n - i), sep='')
print()
print('Isosceles Triangle')
# loop starting at 1 increasing 2 at a time
for i in range(1, n+1, 2):
print(' ' * ((n - i) // 2), '*' * i, sep='')
输出:
Enter an odd positive integer:7
Right-Angled Triangle
*******
******
*****
****
***
**
*
*******
******
*****
****
***
**
*
Isosceles Triangle
*
***
*****
*******