Python 如果条件为假,如何打破循环?
在我的程序中,我希望输出所有小于10000的数字(例如,如果我将数字154乘以2,它应该只返回小于10000的值)。然而,在我的程序中,我仍然得到一个大于10000的值。有人能帮我吗 这是我的节目:Python 如果条件为假,如何打破循环?,python,inheritance,while-loop,Python,Inheritance,While Loop,在我的程序中,我希望输出所有小于10000的数字(例如,如果我将数字154乘以2,它应该只返回小于10000的值)。然而,在我的程序中,我仍然得到一个大于10000的值。有人能帮我吗 这是我的节目: import statistics def verdoppeln(zahl): liste = [] if zahl > 10000: print("Zahl nicht gültig.") else: pr
import statistics
def verdoppeln(zahl):
liste = []
if zahl > 10000:
print("Zahl nicht gültig.")
else:
print(zahl)
while zahl < 10000:
print(zahl * 2)
zahl_neu = zahl * 2
liste.append(zahl_neu)
zahl = zahl_neu
if zahl > 10000:
print("Zur Kontrolle: Summe = ", sum(liste), "Anzahl: ", len(liste))
print("Mittelwert: ", statistics.mean(liste))
verdoppeln(154)
导入统计信息
def verdoppeln(zahl):
列表=[]
如果zahl>10000:
打印(“Zahl nicht gültig.”)
其他:
印刷品(扎尔)
而zahl<10000:
打印(zahl*2)
zahl_neu=zahl*2
liste.append(zahl_neu)
zahl=zahl_neu
如果zahl>10000:
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
打印(“米特沃特:”,统计。平均值(列表))
威尔多佩恩(154)
问题在于,while
-检查仅在每个循环开始时进行。因此,如果zahl
大于10000
在zahl*2
之后,它仍将被打印并添加到liste
。如果将while
终止条件更改为True
,并在zahl
的值大于10000
时使用break
-语句从内部中断while循环,则应能得到所需的结果
另外,不需要使用zahl_neu
,您可以只使用zahl
,这样就可以了
试试这个:
导入统计信息
def verdoppeln(zahl):
列表=[]
如果zahl>10000:
打印(“Zahl nicht gültig.”)
其他:
印刷品(扎尔)
while True:#将终止条件更改为True,换句话说,永不停止
扎尔*=2
如果(zahl>=10000):#从循环内部添加终止条件
打破
印刷品(扎尔)
liste.append(zahl)
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
if(len(liste)>=1:#statistics.mean需要liste至少有一个元素
打印(“米特沃特:”,统计。平均值(列表))
威尔多佩恩(154)
这将输出:
154
308
616
1232
2464
4928
9856
Zur Kontrolle: Summe = 19404 Anzahl: 6
Mittelwert: 3234
问题在于,
while
-检查仅在每个循环的开始处进行。因此,如果zahl
大于10000
在zahl*2
之后,它仍将被打印并添加到liste
。如果将while
终止条件更改为True
,并在zahl
的值大于10000
时使用break
-语句从内部中断while循环,则应能得到所需的结果
另外,不需要使用zahl_neu
,您可以只使用zahl
,这样就可以了
试试这个:
导入统计信息
def verdoppeln(zahl):
列表=[]
如果zahl>10000:
打印(“Zahl nicht gültig.”)
其他:
印刷品(扎尔)
while True:#将终止条件更改为True,换句话说,永不停止
扎尔*=2
如果(zahl>=10000):#从循环内部添加终止条件
打破
印刷品(扎尔)
liste.append(zahl)
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
if(len(liste)>=1:#statistics.mean需要liste至少有一个元素
打印(“米特沃特:”,统计。平均值(列表))
威尔多佩恩(154)
这将输出:
154
308
616
1232
2464
4928
9856
Zur Kontrolle: Summe = 19404 Anzahl: 6
Mittelwert: 3234
我认为你需要改变你的限制:
导入统计信息
def verdoppeln(zahl):
列表=[]
如果zahl>=5000:
打印(“Zahl nicht gültig.”)
其他:
印刷品(扎尔)
而zahl<5000:
扎尔*=2
印刷品(扎尔)
liste.append(zahl)
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
打印(“米特沃特:”,统计。平均值(列表))
威尔多佩恩(154)
我认为您需要更改您的限制:
导入统计信息
def verdoppeln(zahl):
列表=[]
如果zahl>=5000:
打印(“Zahl nicht gültig.”)
其他:
印刷品(扎尔)
而zahl<5000:
扎尔*=2
印刷品(扎尔)
liste.append(zahl)
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
打印(“米特沃特:”,统计。平均值(列表))
威尔多佩恩(154)
def verdoppeln(zahl):
列表=[]
如果zahl>10000:
打印(“Zahl nicht gültig.”)
其他:
而zahl<10000:
印刷品(扎尔)
zahl=zahl*2
如果zahl>10000:
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
打印(“米特沃特:”,统计。平均值(列表))
其他:
liste.append(zahl)
def verdoppeln(zahl):
列表=[]
如果zahl>10000:
打印(“Zahl nicht gültig.”)
其他:
而zahl<10000:
印刷品(扎尔)
zahl=zahl*2
如果zahl>10000:
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
打印(“米特沃特:”,统计。平均值(列表))
其他:
liste.append(zahl)
不间断的替代方案:
import statistics
def verdoppeln(zahl):
liste = []
if zahl > 10000:
print("Zahl nicht gultig.")
else:
print(zahl)
zahl *= 2
while zahl < 10000:
print(zahl)
liste.append(zahl)
zahl *= 2
print("Zur Kontrolle: Summe = ", sum(liste), "Anzahl: ", len(liste))
print("Mittelwert: ", statistics.mean(liste))
verdoppeln(154)
导入统计信息
def verdoppeln(zahl):
列表=[]
如果zahl>10000:
印刷品(“Zahl nicht gultig.”)
其他:
印刷品(扎尔)
扎尔*=2
而zahl<10000:
印刷品(扎尔)
liste.append(zahl)
扎尔*=2
打印(“Zur-Kontrolle:Summe=”,sum(列表),“Anzahl:”,len(列表))
打印(“米特沃特:”,统计。平均值(列表))
威尔多佩恩(154)
不间断的替代方案:
import statistics
def verdoppeln(zahl):
liste = []
if zahl > 10000:
print("Zahl nicht gultig.")
else:
print(zahl)
zahl *= 2
while zahl < 10000:
print(zahl)
liste.append(zahl)
zahl *= 2
print("Zur Kontrolle: Summe = ", sum(liste), "Anzahl: ", len(liste))
print("Mittelwert: ", statistics.mean(liste))
verdoppeln(154)
导入统计信息
def verdoppeln(zahl):
列表=[]
如果zahl>10000:
P