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()