我有点问题。我试图根据用户指定的高度和符号使该程序输出一个直角三角形,但每当我输入所需的符号和高度时,程序将输出正确的形状,但是倒置。我在掌握循环和通过反复试验方面遇到了一些困难,这是迄今为止我能想到的最好的。请有人帮助一个兄弟。提前谢谢。
triangle_char = input('Enter a character:\n')
triangle_height = int(input('Enter triangle height:\n'))
print('')
for i in range (len(triangle_char)):
for j in range (triangle_height):
print((triangle_char) * triangle_height )
triangle_height -= 1
当字符为' *'时,此代码将返回此输出和身高是5:
*****
****
***
**
*
输入这些值时的预期输出应为:
*
**
***
****
*****
答案 0 :(得分:1)
首先你的循环都关闭了;您要将值分配给i
和j
,而不是使用它们。
其次,第一个循环没用。如果您输入3个字符,它将重复该块3次,但变量triangle_height
在第一次传递时减少为0,因此在下一次迭代时不会打印任何内容。
只需删除此行
第三:你说你需要反转三角形,所以,不要减少triangle_height
,而是在for循环中使用你对j
赋值的值而忘记减少变量。
由于范围从0开始计数,因此您需要在print语句中添加1:
triangle_char = input('Enter a character: ')
triangle_height = int(input('Enter triangle height: '))
print('')
for j in range (triangle_height):
print((triangle_char) * (j + 1))
我还用input()方法中的空格替换了/n
,因为它看起来很糟糕。
答案 1 :(得分:0)
你也可以这样做:
triangle_char = input('Enter a character: ')
triangle_height = int(input('Enter triangle height: '))
print('')
j = 0;
while j <= triangle_height :
print triangle_char * j
j += 1
答案 2 :(得分:0)
这是一个脚本。我假设多个输入字符意味着多个输出三角形。此外,该高度:0表示每个三角形中的零线。
我今天学到的棘手的事情是int("20.0")
没有转换为20;它提出了一个例外。代码通过首先转换为float来解决这个问题。
#!/usr/bin/python3
def triangles(characters, height):
# We could call int(height) here except that int("20.0") for example raises
# an error even though there is a pretty clear integer value. To get around
# that, attempt to convert to float first.
try:
lines = float(height)
except ValueError:
# If we raise here, the error is like: cannot convert to float. That's
# confusing, so we let it go.
lines = height
# If the value can't be converted to int, this raises an error like: cannot
# convert to int. If it had already converted to float, this rounds down.
lines = int(lines)
for character in characters:
# Loop will execute no times if lines==0, once if lines==1 and so on.
for line in range(1, lines + 1):
print(str(character) * line)
print("")
if __name__ == '__main__':
try:
triangles(input("Enter characters: "), input("Enter height: "))
except ValueError as error:
print("Couldn't print triangles:", error)
编辑:添加了示例输出。
$ ./triangles.py
Enter characters: jk
Enter height: 8
j
jj
jjj
jjjj
jjjjj
jjjjjj
jjjjjjj
jjjjjjjj
k
kk
kkk
kkkk
kkkkk
kkkkkk
kkkkkkk
kkkkkkkk
$ ./triangles.py
Enter characters: .
Enter height: 3.0
.
..
...
$ ./triangles.py
Enter characters: f
Enter height: 3.7
f
ff
fff
$ ./triangles.py
Enter characters: duff
Enter height: duff
Couldn't print triangles: invalid literal for int() with base 10: 'duff'