ユーザーは入力として名前を挿入し、3語の名前に中間の名前が含まれているかどうかを確認して、はいまたはいいえ(またはその派生語のいずれか)で確認する必要があります。これまでのところ、回答が「はい」の場合はループが機能しています。しかし、回答が「いいえ」であれば、質問を繰り返しています。なぜこのループの2番目の部分は機能しませんか?
目的:答えが「はい」の場合、プログラムは中間の名前を持つ3語の名前を理解し、したがって中間の名前で名前の組み合わせを実行します。それがnoの場合、プログラムは中間名の代わりに2番目の姓を持つ3語の名前を理解し、それに応じて名前の組み合わせを実行します。
私は共有目的で多くのコードを除外しています。
私は間違っていますか?私の質問は、ループのelif部分に関するものです。
print ('enter name')
providedname = input()
while providedname != 'quit':
if len(providedname.split())==4:
pass
elif len(providedname.split())==3:
print ('Does the name include a middle name or middle initial? Please type yes or no:')
userinput = input()
if userinput.startswith ('ye' or 'Ye' or 'YE' or 'ya' or 'Ya' or 'YA'):
firstname, middlename, lastname = providedname.split()
elif userinput.startswith ('no' or 'No' or 'NO' or 'na' or 'Na' or 'NA'):
firstname, lastname, secondlastname = providedname.split()
else:
pass
print ('enter name or type quit or q to exit')
providedname=input()
continue
。また、スペースが1つだけインデントされているため、読みにくいです。 **実際に問題を再現する[mcve]を与えてください**。 – jonrsharpe
ヒント: '{'ye'、 'ya'}のuserinput [:2] .lower()の場合: –
ジョンさん、長いコードなので、私はそれを削除しなければなりませんでした。私は読みやすいようにインデントとして二重スペースを追加しました。私は3つの言葉の名前の入力をどのように分割するつもりかを追加しました。 – adriaanbd