0

関数を書き出す方法に問題があったため、複数の文字を入力すると、区切り記号が長すぎるというステートメントが出力されます。値 none を返しますが、その方法がわかりません。pythonは初めてで、いくつかの情報があれば非常に役立ちます。事前に感謝します。これは私がやったことです。

def my_split(_,_):
    my_sep = input("seperator: ")
    my_str = input("sentence: ")



def main():
    #your main program here
    print("Enter a string to be split: ")
    print("Enter the delimiter character: ") 
    print("the result is: ")


for(my_sep):
    if(my_sep <1):
    print(" the delimeter is too long.")

return None

print("enter a string to be split: ")
print("enter the delimeter character: ")
print(" the result is: ")



main()
4

2 に答える 2

1
if len(my_sep) > 1:
    print(" the delimiter is too long")
    return None

しかし、これをコードのどこに配置するかは明確ではありません。どの関数から戻ろうとしていますNoneか? 私はあなたがこのようなものが欲しいと思います:

def main():
    #your main program here
    my_str = input("Enter a string to be split: ")
    my_sep = input("Enter the delimiter character: ") 
    if len(my_sep) > 1:
        print(" the delimeter is too long.")
        return None
    result = # do the actual splitting code here
    return result

result = main()
print("the result is:", result)

に入力し# do the actual splitting code hereたら、これを 2 回実行すると次のようになります。

Enter a string to be split: Hello, World
Enter the delimiter character: ,
 the result is: ['Hello', ' World']

Enter a string to be split: Hello, World
Enter the delimiter character: lo
 the delimiter is too long.
 the result is: None
于 2012-11-01T20:16:55.097 に答える
0
def my_split(_,_):
    my_sep = input("seperator: ")
    my_str = input("sentence: ")

ここでは、「my_split」という関数を定義しています。「my_split」が 2 つのパラメーターを取ることを Python に伝えていますが、これらのパラメーターの両方に「_」(アンダースコア) という名前を付けています。これは無効です。この関数はプログラムからの入力を必要とせず、代わりにユーザーからの入力を受け取るように見えるため、パラメーターなしで関数を宣言できます。

def my_split():
    my_sep = raw_input("seperator: ")
    my_str = raw_input("sentence: ")
    return my_sep,my_str

また、input() から raw_input() に変更したことに注意してください。input() は端末からのコード入力を実行する関数です。これはあなたがしたいことではありません。収集した値を返す必要もあります。

def main():
    #your main program here
    print("Enter a string to be split: ")
    print("Enter the delimiter character: ") 
    print("the result is: ")

main() 関数に技術的な問題はありませんが、やりたいことを実行しません。これらの 3 行と末尾を出力します。これは、すでに書いた my_split 関数を利用する、より完全な main() です。

def main():
    my_sep,my_str = my_split()
    result = my_str.split(my_sep)
    print "the result is: ", result

関数から 2 つの値を返すことができ、その関数の呼び出しで 2 つの値を設定できることに注意してください。

for(my_sep):
    if(my_sep <1):
    print(" the delimeter is too long.")

ここの最初の行は有効な python ではありません。 forグループの各要素をループするためのループ構造です。また、長さが長すぎるかどうかを知りたかったのですが、あなたの条件は「1未満」です。第 3 に、print 呼び出しは、"if" ステートメントの本体の一部であることを示すためにインデントする必要があります。最後に、これはすべて main() 関数内にある必要があります。したがって、最終的なプログラムは次のようになります。

def my_split():
    my_sep = raw_input("seperator: ")
    my_str = raw_input("sentence: ")
    return my_sep,my_str

def main():
    my_sep,my_str = my_split()
    if len(my_sep) > 1:
        print " the delimeter is too long."
    else:
        result = my_str.split(my_sep)
        print "the result is: ", result


if __name__=='__main__':
    main()
于 2012-11-01T20:32:04.523 に答える