Python 在for循环中添加*

Python 在for循环中添加*,python,python-3.x,Python,Python 3.x,我对编程和python完全陌生。目前我正在使用Python3.9,试图完成一个简单的python教程,但其中一个任务给我带来了问题 我应该得到这样一个输出:(在询问用户他想要达到哪个数字后) 目前我的代码如下所示: usercount = int(input("Up to what number do you want to go?")) for x in range(usercount): print(x+1, "*") 输出结果如下所示:

我对编程和python完全陌生。目前我正在使用Python3.9,试图完成一个简单的python教程,但其中一个任务给我带来了问题

我应该得到这样一个输出:(在询问用户他想要达到哪个数字后)

目前我的代码如下所示:

usercount = int(input("Up to what number do you want to go?"))

for x in range(usercount):
    print(x+1, "*")
输出结果如下所示:

1*
2*
3*
4*
5*
6*
7*
我该怎么办


谢谢。

您可以将一个字符串乘以一个整数,将该字符串复制N次。例如:

IN: 'ab' * 3
OUT: 'ababab'

在本例中,您希望根据迭代次数乘以字符串
“*”
。请注意,python
range
0
开始,到
usercount-1
结束。这会起作用,但有很多不同的方法可以起作用:

usercount = int(input("Up to what number do you want to go?"))
stars = ''
for x in range(usercount):
    stars += '*'
    print((str(x+1))+stars)

使用
枚举

usercount = int(input("Up to what number do you want to go? "))

for i in range(usercount):
    print(str(i+1) + (i+1) * "*")

# output 
1*
2**
3***
4****
5*****
6******
7*******

您仅在
print(x+1,“*”
中打印
*
。您应该将打印次数乘以
*
。例如:

1* '*' = *
2* '*' = **

试试看


应该为
*
创建另一个循环,有两种方法

  • 按数字的倍数复制字符串
  • 另一个内部循环用于打印多少个
    *
    ,但如果每次打印不需要换行,则必须指定选项
    end
    以清空方法
    print
    的字符串
  • 您可以这样做:

    In [1687]: usercount = int(input("Up to what number do you want to go?"))
    
    In [1697]: for i in range(1, usercount + 1):
          ...:     print(str(i) + ("*" * i))
          ...: 
    1*
    2**
    3***
    4****
    5*****
    

    您必须打印n开始,其中n是当前编号。要执行某个操作n次,您将使用for循环

    在上面的示例中,您只使用了一个
    打印(“*”
    ),它只打印一个开始。要打印更多,您可以在内部循环中打印星号,或者创建一个包含星号的字符串:

    范围内x的
    (用户计数):
    打印(x+1,end=“”)#end=“”表示打印不会以新行结束
    对于范围(x+1)内的i:
    打印(“*”,end=“”)
    print()#只需在末尾添加新行即可
    
    或者通过创建星形字符串:

    范围内x的
    (用户计数):
    星=“*”*(x+1)
    打印(x+1,星形)
    
    另外,为了避免键入x+1,您可以将范围指定为
    range(1,usercount+1)
    您可以这样尝试

    usercount = int(input("Up to what number do you want to go? "))
    stars = '*'
    for i in range(usercount):
        print(str(i+1)+stars)
        stars += '*'
    
    这个怎么样? 算法与前面的答案相同。 这只是有更少的代码

    result = "\n".join([f"{i}{'*'*i}" for i in range(1, 8)])
    print(result)
    

    你必须加上更多的星星。Python的方式是
    (x+1)*“*”
    。这是否回答了您的问题?这回答了你的问题吗?数字不会在打印之前打印出来stars@pjk很抱歉更新了我的解决方案。谢谢你指出。@pjk:你能收回你的否决票吗?没有理由使用enumerate。我和x是相等的,因为他在一个范围内使用了for循环。哎呀,我错误地发布了我的草稿答案,而不是更新的答案。编辑。谢谢
    usercount = int(input("Up to what number do you want to go? "))
    stars = '*'
    for i in range(usercount):
        print(str(i+1)+stars)
        stars += '*'
    
    result = "\n".join([f"{i}{'*'*i}" for i in range(1, 8)])
    print(result)