Python函数回溯:它只是显示我所走的路径,还是我的程序继续运行“旧”函数?

2024-10-03 17:26:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是PyCharm,当我出错的时候,它会打印出这个整洁的小回溯。你知道吗

在这种情况下:

Traceback (most recent call last):
  File "C:/Users/Chris/PycharmProjects/Learning Project/tgrooms.py", line 127, in <module>
    blueRoom()
  File "C:/Users/Chris/PycharmProjects/Learning Project/tgrooms.py", line 70, in blueRoom
    blueRoom()
  File "C:/Users/Chris/PycharmProjects/Learning Project/tgrooms.py", line 67, in blueRoom
    redRoom()
  File "C:/Users/Chris/PycharmProjects/Learning Project/tgrooms.py", line 38, in redRoom
    choice = int(raw_input("> "))
ValueError: invalid literal for int() with base 10: 'yes'

我知道错误是什么,或多或少知道如何解决它,但我想确保当程序移动到另一个地方时while循环不会继续运行。你知道吗

代码如下:

def blueRoom():
    print "This is a very, very blue room.  There is a door on the other side."
    print "Do you walk through?"

    while True:
        print "inwhile"
        choice = raw_input("> ")
        if choice == "yes":
            blueRoomComplete = True
            print "You walk safely through the door into the next room."
            room = random.choice(rooms)
            print "%r" % room
            if room == "gold_room":
                print "goldroom"
                gold_room()
            elif room == "redRoom":
                print "redroom"
                redRoom()
            else:
                print "blueroom"
                blueRoom()
                break
        else:
            exit(0)

所以我的问题是: 当程序转到另一个函数(即redRoom())时,while循环是否仍在运行并占用资源?你知道吗

我确实试着四处寻找类似的问题,但找不到任何合适的。 谢谢大家! Llurendt公司


Tags: inpyprojectlineuserschrisfileroom
1条回答
网友
1楼 · 发布于 2024-10-03 17:26:27

不太清楚你在问什么。调用redRoom()时,控件将传递到redRoom,并且在redRoom完成之前不会返回while循环。并不是说有多个东西同时运行。–布伦巴恩,2014年9月11日3:04

正如BrenBarn在注释中所述,当调用redRoom()时,程序中的其他内容当前没有运行,while循环使用的资源也会被释放。你知道吗

相关问题 更多 >