0

このファズ テストを Python で作成していますが、いくつか問題があります。このコードをコンパイルすると、次のエラーが発生します。

Traceback (most recent call last): 
  File "vm_main.py", line 33, in <module> 
    import main 
  File "/tmp/vmuser_tgqlkfrnov/main.py", line 44 
    return fuzzit 
SyntaxError: 'return' outside function

アドバイスをいただけますか?

これは私のコードです:

import array

import random

import math

content = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus sollicitudin condimentum libero,
sit amet ultrices lacus faucibus nec.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Cum sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Cras nulla nisi, accumsan gravida commodo et,
venenatis dignissim quam. Mauris rutrum ullamcorper consectetur.
Nunc luctus dui eu libero fringilla tempor. Integer vitae libero purus.
Fusce est dui, suscipit mollis pellentesque vel, cursus sed sapien.
Duis quam nibh, dictum ut dictum eget, ultrices in tortor.
In hac habitasse platea dictumst. Morbi et leo enim.
Aenean ipsum ipsum, laoreet vel cursus a, tincidunt ultrices augue.
Aliquam ac erat eget nunc lacinia imperdiet vel id nulla."""


def fuzzit(content):

    buf = bytearray(content)
    strlst = list()

    for j in range(numwrites):
        rbyte = random.randrange(256)
        rn = random.randrange(len(buf))
        buf[rn] = "%c" %(rbyte)
        strlst[i] = array.tostring(buf)
fuzzed = strlst[:]
return fuzzit

ありがとう!!!

4

2 に答える 2

2

Pythonは、中括弧の代わりにインデントセットの構造を使用します。ステートメントreturnに合わせるためにインデントする必要があります。for

見た目からするとfuzzit、.pyでメソッドを返そうとしているように見えますか?これはPythonを実行することはできません、あなたは何をしようとしていますか?

于 2012-08-21T08:35:28.800 に答える
1

インデントに関してフレドリックを理解していたかどうかはわかりません。あなたのstrlstがあなたが返したいもののようです。これを試して

for j in range(numwrites):
    rbyte = random.randrange(256)
    rn = random.randrange(len(buf))
    buf[rn] = "%c" %(rbyte)
    strlst[i] = array.tostring(buf)
return strlst[:]
于 2012-08-21T13:17:00.847 に答える