这就是我拥有的东西,它只在我退出循环后才起作用,我不知道如何解决它。
def Function1(num):
global nStars
nStars=num
def Function2(Stars):
global nStarsOut
nStarsOut=nStars
def Function3(final):
for r in range(final):
print("*")
def Loop():
Number=1
while Number!=-999:
Number=int(input("Enter an integer between 0 and 30(-999 to exit): "))
if 0<=Number<=30:
Function1(Number)
if Number<0 or Number>30:
print("invalid")
Loop()
Function2(nStars)
Function3(nStarsOut)
答案 0 :(得分:0)
查找python的break语句。
答案 1 :(得分:0)
循环内部您只调用<template>
<h3>
Hello, <content select='#prefix'></content> <content select='#name'></content>!
</h3>
</template>
<button id='register'>Register custom-hello</button>
<div>
custom-hello:
<custom-hello>
<span id="prefix">Miss</span>
<span id="name">Kat</span>
<span id="age">30</span>
</custom-hello>
</div>
分配Function1()
然后循环重新开始。所以现在只有当你已经离开循环时才会执行nStars=num
。在调用Function2()
后在循环内添加break
,因为在获得有效输入后,您不想再次启动循环。
答案 2 :(得分:0)
如果您尝试在用户输入输入后立即打印*
而不退出循环。我认为你首先不需要这些功能,你可以这样做:
def Loop():
Number=1
while Number!=-999:
Number=int(input("Enter an integer between 0 and 30(-999 to exit): "))
if 0<=Number<=30:
for r in range(Number):
print("*")
if Number<0 or Number>30:
print("invalid")
在我看来,你甚至可以跳过不必要的功能。
更新
但是如果您想要输入,那么生成那么多*
并保存它们并在退出循环后立即打印它们,您可以这样做:
def Function1(num):
global nStars
nStars=nStars + num*'*'
def Function2(t):
print(t)
def Loop():
Number=1
while True:
Number=int(input("Enter an integer between 0 and 30(negative values to exit): "))
if 0<=Number<=30:
Function1(Number)
if Number<0:
break
if Number > 30:
print("invalid")
nStars = ''
Loop()
Function2(nStars)