0

リスト形式で表示された文字列をユーザーが保存および編集できる非常に単純なプログラムを作成するのに問題があります(数週間前にプログラミングを開始しました)。プログラムを実行するときはいつでも、ユーザー入力は文字列を編集しません。これが私のコードです。その下に、プログラムが現在実行していることと、パッチが適用された後に実行する予定のコードがあります(エラーが発生しないことを忘れないでください)。

Code:

#Program that stores up to 5 strings

def main():
    line1="hello"
    line2=""
    line3=""
    line4=""
    line5=""
    print("[1]"+line1)
    print("[2]"+line2)
    print("[3]"+line3)
    print("[4]"+line4)
    print("[5]"+line5)
    print("")
    print("Which line would you like to edit?")
    lineChoice=''
    while lineChoice not in ('1', '2', '3', '4', '5'):
        lineChoice=input("> ")
    if lineChoice=="1":
        print("You are now editing Line 1.")
        line1=input("> ")
        main()
    if lineChoice=="2":
        print("You are now editing Line 2.")
        line2=input("> ")
        main()
    if lineChoice=="3":
        print("You are now editing Line 3.")
        line3=input("> ")
        main()
    if lineChoice=="4":
        print("You are now editing Line 4.")
        line4=input("> ")
        main()
    if lineChoice=="5":
        print("You are now editing Line 5.")
        line5=input("> ")
        main()

main()

これが私のプログラムの機能です。

>>> ================================ RESTART ================================
>>> 
[1]hello
[2]
[3]
[4]
[5]

Which line would you like to edit?
> 1
You are now editing Line 1.
> hello world
[1]hello
[2]
[3]
[4]
[5]

Which line would you like to edit?
> 

これが私のプログラムにやらせようとしていることです。

>>> ================================ RESTART ================================
>>> 
[1]hello
[2]
[3]
[4]
[5]

Which line would you like to edit?
> 1
You are now editing Line 1.
> hello world
[1]hello world
[2]
[3]
[4]
[5]

Which line would you like to edit?
> 

さらに情報を提供する必要がある場合は、喜んで提供します。

  • ジェイコブ・デンズモア
4

1 に答える 1

0

実際にはmain、変数がリセットされるたびに再帰的に呼び出しているためです。あなたがする必要があるのは、への再帰呼び出しをループに置き換えることmainですwhile。コードをできるだけ変更しないと、次のようになります (3.x を使用inputしていて、その理由で使用していると仮定します)。

def main():
    line1="hello"
    line2=""
    line3=""
    line4=""
    line5=""
    while True:
        print("[1]"+line1)
        print("[2]"+line2)
        print("[3]"+line3)
        print("[4]"+line4)
        print("[5]"+line5)
        print("")
        print("Which line would you like to edit?")
        lineChoice=''
        while lineChoice not in ('1', '2', '3', '4', '5'):
            lineChoice=input("> ")
        if lineChoice=="1":
            print("You are now editing Line 1.")
            line1=input("> ")
        if lineChoice=="2":
            print("You are now editing Line 2.")
            line2=input("> ")
        if lineChoice=="3":
            print("You are now editing Line 3.")
            line3=input("> ")
        if lineChoice=="4":
            print("You are now editing Line 4.")
            line4=input("> ")
        if lineChoice=="5":
            print("You are now editing Line 5.")
            line5=input("> ")

main()
于 2013-03-20T04:19:47.680 に答える