Python如何在while循环中返回值

时间:2017-01-13 11:04:00

标签: python while-loop

当在循环中返回时,循环将停止如何修复它?

 NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            // .setLargeIcon(image)/*Notification icon image*/
            .setSmallIcon(R.drawable.ic_notification)
            .setContentTitle("Quiz Tap")
            .setContentText(messageBody)
            /*.setStyle(new NotificationCompat.BigPictureStyle()
                    .bigPicture(image))*//*Notification with Image*/
            **.setAutoCancel(true)**
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);
你能帮帮我吗?

3 个答案:

答案 0 :(得分:1)

只需要你的

map.setOptions({ draggableCursor : "url(../../img/icons/pin-g-maps.png), auto" })

把它放到像

这样的函数中
x=str(ser.readline())
x = re.findall("\d+\.\d+", x)
x = float(x[0])
return(x) #loop stopped

并将您的while循环更改为

def foo(ser):
    x=str(ser.readline())
    x = re.findall("\d+\.\d+", x)
    x = float(x[0])
    return(x)

然而@developius有一个更好的解决方案,看起来像

while 1:
    print(foo(ser))

答案 1 :(得分:1)

你可以尝试这个

while 1:
    x=str(ser.readline())
    x = re.findall("\d+\.\d+", x)
    x = float(x[0])
return x

答案 2 :(得分:0)

如果您想将值连续传递给单独的一段代码,可以使用 yield

你可以修改你的代码如下:

def func():
    while 1:
        x=str(ser.readline())
        x = re.findall("\d+\.\d+", x)
        x = float(x[0])
        yield x

然后调用函数。请注意, f 将是一个生成器,因此您必须按如下方式对其进行循环。

f = func()
for i in f:
    print(i) # or use i for any purpose

参考:here