到目前为止我所拥有的是:
base = int(input("Enter a value"))
for row in range(base):
for colomb in range(row+1):
print('*', end='')
print()
答案 0 :(得分:2)
你快到了。你只需要取消最后的for row in range(base):
for colomb in range(row+1):
print('*', end='')
print()
。示例 -
Create FUNCTION [dbo].[fn_Split](@text varchar(8000), @delimiter varchar(20))
RETURNS @Strings TABLE
(
position int IDENTITY PRIMARY KEY,
value varchar(8000)
)
AS
BEGIN
DECLARE @index int
SET @index = -1
WHILE (LEN(@text) > 0)
BEGIN
SET @index = CHARINDEX(@delimiter , @text)
IF (@index = 0) AND (LEN(@text) > 0)
BEGIN
INSERT INTO @Strings VALUES (@text)
BREAK
END
IF (@index > 1)
BEGIN
INSERT INTO @Strings VALUES (LEFT(@text, @index - 1))
SET @text = RIGHT(@text, (LEN(@text) - @index))
END
ELSE
SET @text = RIGHT(@text, (LEN(@text) - @index))
END
RETURN
END
select t.StudentID,t.Name ,test.value
from tablename t cross apply fn_Split(t.SubscribedSubject,',') as test
答案 1 :(得分:0)
Sharon的答案是使您可以使用的代码最快的解决方案,但您也可以通过打印(一次)整个字符串来减少for
循环的运行。例如,"a" * 3
为"aaa"
,因此您可以这样做:
for row in range(1, base+1): # now the range runs [1-base] instead of [0-base-1]
print("*" * row)