python 4.16实验室:预热:画直角三角形

e4yzc0pl  于 2023-08-02  发布在  Python
关注(0)|答案(8)|浏览(109)

此程序将根据用户指定的高度triangle_height和符号triangle_char输出一个直角三角形。
(1)给定的程序使用 * 字符输出一个固定高度的三角形。修改给定的程序以输出使用用户指定的triangle_char字符的直角三角形。
(2)修改程序以使用循环输出高度为triangle_height的直角三角形。第一行将有一个用户指定的字符,如%或 *。随后的每一行都将有一个额外的用户指定字符,直到三角形底部的数字达到triangle_height。在每个用户指定的字符后输出一个空格,包括行的最后一个用户指定的字符。
我不知道如何在我的角色之间创造空间。示例输入是%和5。我的代码是:

triangle_char = input('Enter a character:\n')
triangle_height = int(input('Enter triangle height:\n'))
print('')

for i in range (triangle_height):
    print((triangle_char) * (i + 1))

字符串
我的输出是:

%
%%
%%%
%%%%
%%%%%


而预期输出为:

% 
% % 
% % % 
% % % % 
% % % % %

lyr7nygr

lyr7nygr1#

您需要使用join()。这将工作:

for i in range(triangle_height):
    print(' '.join(triangle_char * (i + 1)))

字符串
它在每个字符之间添加空格,因为字符串是可迭代的。
这可以通过具有字符列表并在每次迭代中追加1个字符来进行优化,而不是每次都构造triangle_char * (i+1)

h43kikqp

h43kikqp2#

这将修复白色错误:

for i in range(triangle_height):
    print(' '.join(triangle_char * (i + 1)) + ' ')

字符串

pinkon5k

pinkon5k3#

for i in range(triangle_height+1):
     print(f'{triangle_char} '*i)

字符串

ejk8hzay

ejk8hzay4#

到目前为止,我看到最流行的方法是使用join,但另一种方法是在尝试保持原始想法的同时,您只需在每个字符后添加一个白色。见下文:

triangle_char = input('Enter a character:\n')
triangle_height = int(input('Enter triangle height:\n'))
print('')

for i in range(triangle_height):
    print((triangle_char + ' ') * (i + 1))

字符串

w8f9ii69

w8f9ii695#

这里有一些非常好的建议。另一种方法是在while循环中使用递增的变量,如下所示:

triangle_char = input("Enter a character:\n")[0]
triangle_height = int(input("Enter triangle height:\n"))
i = 0

while (i <= triangle_height):
    print((triangle_char + ' ') * i)
    i += 1

字符串
在上面的例子中,i迭代直到它等于triangle_height,并使用多态性来基于i的值生成(triangle_height +“”)的量。这将生成本实验所需的直角三角形。空格用于根据实验室要求格式化三角形。
另一种方法是使用.join()特性,它在这里当然可以很好地工作,但直到本书的第7章才开始教授,在那里你学习了输入和CSV文件。我不确定你的教授是否会同意使用这个,我这么说只是因为我的教授对使用未涵盖的材料很严格。
已经提到的另一种方法是使用for循环,并使用包含表达式的range()特性:

triangle_char = input("Enter a character:\n")[0]
triangle_height = int(input("Enter triangle height:\n"))

for i in range((triangle_height + 1)):
    print((triangle_char + ' ') * i)


range()的终点仅仅是triangle_height是不够的,因为指定为终点的值不包括在序列中。即使triangle_height为5,这也会生成一个高为4的直角三角形。因此,必须使用表达式(triangle_height + 1)。从那里,输出设置类似于我的第一个解决方案。

az31mfrm

az31mfrm6#

尝试在print语句中添加空格。

height = int(input())
symbol = (input())
print()

for i in range(height):          #Loop for every index in the range 0-height
    print((symbol + ' ') * (i + 1))  #Add whitespace to symbol

字符串

a64a0gku

a64a0gku7#

triangle_char = input('Enter a character:\n')
triangle_height = int(input('Enter triangle height:\n'))
print('')
ctrl = 1
while ctrl != triangle_height + 1:
    print(*ctrl*(triangle_char,),sep=' ',end=' \n')
    ctrl = ctrl +1

字符串
这就是我用来解决这个问题的方法。奥卡姆剃刀

vvppvyoh

vvppvyoh8#

for i in range(triangle_height):
     print(' '.join(triangle_char * (i + 1)), end=" \n")

字符串
这是我的答案,它对我起作用了。

相关问题