Python绘制半箭

时间:2017-03-29 02:30:25

标签: python-3.x

我在那里参加我的第一个计算机科学课程,我正在努力解决这个python问题。 该程序输出一个向下的箭头,由一个矩形和一个直角三角形组成。箭头尺寸由用户指定的箭头基本高度,箭头基本宽度和箭头宽度定义。

(1)修改给定程序以使用循环输出高度为arrow_base_height的箭头基础。 (1分)

(2)修改给定程序以使用循环输出宽度为arrow_base_width的箭头基数。 (1分)

(3)修改给定程序以使用循环输出宽度为arrow_head_width的箭头。 (2分)

(4)修改给定程序以仅接受大于箭头基本宽度的箭头宽度。使用循环继续提示用户箭头宽度,直到该值大于箭头基本宽度。 (1分)

while arrow_head_width <= arrow_base_width:
    print ('Enter arrow head width: ')
    arrow_head_width = int(input())

arrow_base_height = 5,arrow_base_width = 2和arrow_head_width = 4的示例输出:

Enter arrow base height: 5
Enter arrow base width: 2
Enter arrow head width: 4
**
**
**
**
**
****
***
**
*

这是它给我的目的。我很想解释如何开始并完成它。

print ('Enter arrow base height: ')
arrow_base_height = int(input())

print ('Enter arrow base width: ')
arrow_base_width = int(input())

print ('Enter arrow head width: ')
arrow_head_width = int(input())


# Draw arrow base (height = 3, width = 2)
print ('**')
print ('**')
print ('**')

# Draw arrow head (width = 4)
print ('****')
print ('***')
print ('**')
print ('*')

1 个答案:

答案 0 :(得分:0)

我刚刚完成了这个问题,这就是我想出来的。我确定在其他地方可能会有一个更容易更精确的答案。 我首先分别处理每个循环,然后将它们合并在一起,输出满足Zybooks条件。

arrow_base_height = int(input('Enter arrow base height:\n'))
arrow_base_width = int(input('Enter arrow base width:\n'))
arrow_head_width = int(input('Enter arrow head width:\n'))

while arrow_head_width <= arrow_base_width:
arrow_head_width = int(input('Enter arrow head width:\n'))
print('')

for i in range (arrow_base_height):
    i = ('*' * arrow_base_width)
    print(i)
for j in range(arrow_head_width):
    j = '*' * arrow_head_width
    print (j)
    arrow_head_width -= 1

当基本高度为5,基本宽度为2且箭头宽度为4时,此脚本的预期输出将为:

**
**
**
**
**
****
***
**
*