Python 忽略 if/elif 语句

你好,编译器忽略了 if/elif 语句,我不知道为什么


我添加了一些印刷品以了解问题的根源,但我没有明白


def decode_frame(frame_dir, caesarn):

    #take the first frame to get width, height, and total encoded frame

    # first_frame = Image.open(str(frame_dir) + "/0.jpg")

    first_frame = Image.open(str(frame_dir) + "/" + "1.png")

    print("1")


    r, g, b = first_frame.getpixel((0, 0))

    print("2")


    total_encoded_frame = g

    print("3")

    msg = ""

    print("4")

    for i in range(1, total_encoded_frame+1):

        print("5")

        frame = Image.open(str(frame_dir) + "/" + str(i) + ".png")

        print("6")

        width, height = frame.size

        index = 0

        print("7")

        for row in range(height):

            print("8")

            for col in range(width):

                print("10")

                try:

                    print("9")

                    r, g, b = frame.getpixel((col, row))

                    print("11")

                except ValueError:

                    print("12")

                    # for some ong a(transparancy) is needed

                    r, g, b, a = frame.getpixel((col, row))

                    print("13")

                print("aa")

                if row == 0 and col == 0 :

                    print("14")

                    length = r

                    print("15")

                elif index <= length:

                    # put the decrypted character into string

                    print("tt")

                    msg += caesar_ascii(chr(r), "dec", caesarn)

                print("18")

                index += 1

            print("cc")

    #remove the first and the last quote

    msg = msg[1:-1]

    print("17")

    recovered_txt = open("data/recovered-text.txt", "w")

    print("19")

    recovered_txt.write(str(msg.encode().decode('string_escape')))

    print("20")

这是输出


9

11

aa

18

10

9

11

aa

18

10

9

11

aa

18

10

9

11

aa

18

10

9

11

aa

18

10

9

11

aa

18

10

9

11

aa

18

10

9

11

aa

18

cc

17

19


四季花海
浏览 138回答 1
1回答

偶然的你

错误消息表明错误在行中:&nbsp;&nbsp;&nbsp;&nbsp;recovered_txt.write(str(msg.encode().decode('string_escape')))特别是,该decode方法不知道什么'string_escape'意思;它需要编码的名称,例如'utf-8'.您正试图msg通过四个修改:[1:-1]、encode和decode;&nbsp;str这可能不是你想要的。你可能想要的是写出msg文本:&nbsp;&nbsp;&nbsp;&nbsp;recovered_txt&nbsp;=&nbsp;open("data/recovered-text.txt",&nbsp;"wt") &nbsp;&nbsp;&nbsp;&nbsp;recovered_txt.write(msg)注意"wt"通话中的open。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python