python输出星号等腰三⾓形_星号三⾓形Python(带输⼊)
(AsteriskTria。。。
星号三⾓形Python(带输⼊)(Asterisk Triangle Python (with input))
我正在做⼀个关于python 3的初学者课程,并且必须形成⼀个星号三⾓形,输出如下。 星号三⾓形格式
到⽬前为⽌,我的尝试如下:
def printRow(c, length) :
line = c * length
print(line)
myLen = 0
stars ="*"
n = myLen-1
spaces = (' '*n)
myLen = int(input("Enter number to make triangle: "))
if myLen<=0 :
print("The value you entered is too small to display a triangle")
elif myLen>=40 :
print("the value you entered is too big to display on a shell window")
while myLen>0 :
print(spaces, stars, myLen)
myLen = myLen-1
从这⼀刻起我很失落,所以任何帮助都会受到赞赏。
I'm doing a beginners course on python 3 and have to form a asterisk triangle that outputs like the following.Asterisk triangle format
My attempt so far looks as follows:
python格式化输出formatdef printRow(c, length) :
line = c * length
print(line)
myLen = 0
stars ="*"
n = myLen-1
spaces = (' '*n)
myLen = int(input("Enter number to make triangle: "))
if myLen<=0 :
print("The value you entered is too small to display a triangle")
elif myLen>=40 :
print("the value you entered is too big to display on a shell window")
while myLen>0 :
print(spaces, stars, myLen)
myLen = myLen-1
From this point I was quite lost, so any help would be appreciated.
更新时间:2019-11-08 11:11
最满意答案
正如Jeff L.提到的那样,你没有调⽤你的函数,所以你确实打印了⼀个空格,⼀个星,然后是myLen的新值。
关于实际问题,让我们尝试从右到左逐⾏绘制。 ⾸先计算⼀个空格的数量,以及⼀⾏的星数。 打印出来,转到下⼀⾏。
见下⾯的代码:
space = ' ';
star = '*';
size = int(input("Enter number to make triangle: \n"))
def printRow(current_row, max_row) :
line = space * (max_row - current_row) + star * current_row;
print(line)
if size<=0 :
print("The value you entered is too small to display a triangle")
elif size>=40 :
print("the value you entered is too big to display on a shell window")
for i in range(1, size + 1) :
printRow(i, size);
As Jeff L. mentionned you are not calling your function, so you are indeed printing one space, one star and then the new value of myLen.
Regarding the actual problem, lets try to draw line by line, from right to left. First compute the number of spaces, and the number of stars for a row. Print it, go to next row.
See code bellow :
space = ' ';
star = '*';
size = int(input("Enter number to make triangle: \n"))
def printRow(current_row, max_row) :
line = space * (max_row - current_row) + star * current_row;
print(line)
if size<=0 :
print("The value you entered is too small to display a triangle")
elif size>=40 :
print("the value you entered is too big to display on a shell window")
for i in range(1, size + 1) :
printRow(i, size);
2016-10-28
相关问答
acos以弧度为单位返回⼀边,所以你必须将它转换为六⼗度,为此你必须乘以180/π 。 我们也知道内⾓的总和是180,所以第三个⾓是180-AB 。 另⼀个问题是必须通过绘制的⾓度,默认情况下从右向左绘制前进,然后你必须旋转180-A,前进c,旋转180-B并前进b a = 70
b = 60
c_pwr = a**2 + b**2
c = math.sqrt(c_pwr)
print("Langste zijde is: ", c)
#Angles
A = math.acos((b**2
...
您正在将输⼊就地转换为int,然后将其丢弃。 您应该将这些⾏更改为: length1 = int(raw_input('enter side 1\n'))
length2 = int(raw_input('enter side 2\n'))
length3 = int(raw_input('enter side 3\n'))
您的代码中还有⼀些其他语法错误。 更正如下: def triangle_check(l1,l2,l3):
if (l1>l2+l3) or (l2>l1+l3) o
...
def print_triangle(length):
for i in range(1, length+1):
print('{0:>{length}}'.format('*'*i, length=length))
⽤法: >>> print_triangle(5)
*
**
***
****
*****
为了分解它,这是使⽤字符串格式化迷你语⾔ : '{0:>{length}}'
第⼀个开始括号索引到第⼀个参数,⽽:表⽰格式规范将遵循它。
...
每次浏览⼀次:虽然通配符导⼊通常被忽略,但它是更常⽤的语法 from turtle import *
from math import *
import math
你说你想输⼊实数; 在Python中,这些数字是类float ,所以这段代码应该读取 a = float(input("enter the value for a: "))
b = float(input("enter the value for b: "))
c = float(input("enter the value for
...
调⽤turtle.fillcolor()时,您没有使⽤颜⾊: 将color_triangle函数更新为: def color_triangle(side_length, color):
turtle.fillcolor(color) # See here! Actually set the fill color!
turtle.begin_fill()
draw_triangle(size)
请注意fillcolor()的⽂档
...
我确定那⾥有⾮常好的解决⽅案,但如果你正在寻⼀些初级⽔平的东西,请查看这个 n = 5 #depth of the pascal tree
pascal = []
for x in range(n):
if x == 0:
help_list = [1]
pascal.append(help_list)
continue
if x==1:
help_list = [1,1]
...
⾸先你的循环都关闭了; 您正在为i和j分配值⽽不使⽤它们。 其次,第⼀个循环是⽆⽤的。 如果您输⼊3个字符,它将重复该块3次,但变量triangle_height在第⼀次通过时减少为0,因此在下⼀次迭代时不会打印任何内容。 只需删除此⾏即可 第三:你说你需要反转三⾓形,所以,不要减少triangle_height ,⽽是在for循环中使⽤你为j的值⽽忘记减少变量。 由于范围从0开始计数,因此需要在print语句中为其添加1: triangle_char = input('Enter a chara
...
关键问题是你对三⾓不等式的检验: if (side1 + side2 > side3) or (side1 + side3 > side2) or (side1 + side3 > side2):
你的逻辑是错误的:你需要所有这三个都是真的,形成⼀个三⾓形,⽽不仅仅是⼀个。 if (side1 + side2 > side3) and (side1 + side3 > side2) and (side2 + side3 > side1):
# Note the change in
...
正如Jeff L.提到的那样,你没有调⽤你的函数,所以你确实打印了⼀个空格,⼀个星,然后是myLen的新值。 关于实际问题,让我们尝试从右到左逐⾏绘制。 ⾸先计算⼀个空格的数量,以及⼀⾏的星数。 打印出来,转到下⼀⾏。 见下⾯的代码: space = ' ';
star = '*';
size = int(input("Enter number to make triangle: \n"))
def printRow(current_row, max_row) :
line = spa
...
我早些时候已经回答了同样的问题。 请记住,您提到的所有函数都不是recursive函数。 您可以在此处阅读有关递归的更多信息。 这是我在这⾥提到的例⼦。 Python 3.X def asterix_triangle(i, t=0):
if i == 0:
return 0
else:
print(' ' * ( i + 1 ) + '*' * ( t * 2 + 1 ))
return asterix_triangle( i - 1
...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论