Python 在for循环中添加*
我对编程和python完全陌生。目前我正在使用Python3.9,试图完成一个简单的python教程,但其中一个任务给我带来了问题 我应该得到这样一个输出:(在询问用户他想要达到哪个数字后) 目前我的代码如下所示: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, "*") 输出结果如下所示:
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'
在本例中,您希望根据迭代次数乘以字符串
“*”
。请注意,pythonrange
从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)