私は一般的なプログラミングの学習から始めていますが、これまでのところ、理解するのが最も難しいのは、「goto」を使用するのではなく、正しい方法でループから抜け出す方法です。悪い習慣だと聞きました。Pythonに「goto」機能がないことは知っていますが、ある場合は、どの言語を使用していても、次のループから抜け出す方法を知る唯一の方法です。ループは私を混乱させます。また、プログラムするときにどれだけ繰り返されるコードを使用するかは好きではありませんが、それを回避する方法はよくわかりません。関数を使っているのかもしれませんが、よくわかりません。
誰かが私のコードを見て、これを正しく機能させる方法を教えてもらえますか?唯一の問題は、ユーザーがこれ以上変更を加えたいかどうかを尋ねられたときです。「y」と入力すると、「Haveaniceday」という無限ループに入ります。戻って、代わりにオプションABとCのどちらかをもう一度選択するようにユーザーに依頼したいと思います。他のすべてが機能しているように見えます。あなたが私のコードを短くするのを手伝ってくれるなら、それは素晴らしいことです。ありがとう!
#Global variables
more='y'
#Enter your name
name = raw_input("What is your first name? \n")
##print('Your first name is ') + name
lastName = raw_input("What is your last name? \n")
##print('Your last name is ') + lastName
##raw_input('Press enter to continue...')
fullName = name + " " + lastName
nameList = list(fullName)
print('Your full name is ') + fullName + '. Would you like to \
edit your name? If yes, type "y" and if no type "n".\n'
ans = raw_input()
#Check if changing the name
while more != 'n':
if ans == 'y':
ans=raw_input('Would you like to A) change a letter B) remove a \
letter or C) add a letter?\
\n\n(Note: For all changes write the position of the letter to be affected \
starting at 1 and going from left to right.)\n')
#If yes, change the name
if ans=='A' or ans=='a':
#Change letter
change=input('Which letter would you like to change? ')
change -= 1
ans=raw_input('What would you like to change it to? ')
nameList[change]=ans
#Change the name
fullName = ''.join(nameList)
#Check if you want more changes
more=raw_input("Your name is now " + fullName + ".\n" + "Would you \
like to do anything else? Type 'y' if yes or 'n' if no. ")
elif ans=='B' or ans=='b':
#Remove letter
remove=input('Which letter would you like to remove? ')
remove -= 1
del nameList[remove]
#Change the name
fullName = ''.join(nameList)
#Check if you want more changes
more=raw_input("Your name is now " + fullName + ".\n" + "Would you \
like to do anything else? Type 'y' if yes or 'n' if no. ")
elif ans=='C' or ans=='c':
#Add letter
add=input('After which letter would you like to add one? ')
ans=raw_input('What letter would you like to add? ')
nameList.insert(add,ans)
#Change the name
fullName = ''.join(nameList)
#Check if you want more changes
more=raw_input("Your name is now " + fullName + ".\n" + "Would you \
like to do anything else? Type 'y' if yes or 'n' if no. ")
#Otherwise say goodbye
else:
print('Have a nice day.')