Python 如果条件为假,如何打破循环?

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

在我的程序中,我希望输出所有小于10000的数字(例如,如果我将数字154乘以2,它应该只返回小于10000的值)。然而,在我的程序中,我仍然得到一个大于10000的值。有人能帮我吗

这是我的节目:

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