前提・実現したいこと
初めての質問です。
テンプレートに従いますが至らない点があるとぜひ問題を指示してください。
現在pythonを使用し人狼もどきゲームを開発をしています。
現在参加者の名前を入力する欄を作成しています。
発生している問題・エラーメッセージ
while文を使用しendが入力されたら配列の名前入力を終了し それまでの間は名前を入力し続けるようにしたいのですがwhileの終了条件が数字しかできず うまくいきません
該当のソースコード
pyhton
1while name == end: 2 name = input("") 3 break
試したこと
whileで変数A終了条件ENDにして
inputを使用しましたがうまくいきませんでした
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
anaconda jupyter Notebook pyhson3を使用しています
改行で入力終了ではだめなのですか。
改行での入力終了だといくつも名前を入力するときに不憫と思い辞めました。
> テンプレートに従いますが
うまくいかなかったソースコードを提示して下さい。
コード確認しました。
whileとbreakと変数を勉強しなおした方がよさそうです。
これ・・・事前にnameやendは定義されているのでしょうか?
あと、質問文中で気になっていましたが、endとENDと両方の書き方をしていますが、プログラミングではこういうのは全く別物として扱われる事がほとんどですので、雑に書かないようにしましょう。
また、endやENDが変数であればこのままでいいですが、文字列という事であれば、'end'、"END"のように明らかに文字列と分かるように書きましょう。
そうしないと当然エラーになりますし、他の人が見た時に理解できません。
whileとbreak勉強しなおしてきます
多くの問題点の指摘ありがとうございます。
また1からやり直してみます
> 改行での入力終了だといくつも名前を入力するときに不憫と思い辞めました。
これの意味もちょっと不明です。
ppaulさんの
> 改行で入力終了ではだめなのですか。
は、
「文字列 + 改行」の場合は入力続行で「改行のみ」入力された場合は入力終了ではだめなのですか?
という質問です。
つまり、「終了させるのに「'END' + 改行」を入力させるのはいいアイディアと思えない」という事です。
良くない理由
・'END'や'end'、'End'さらに全角入力される場合があり処理が面倒
・'END'(やそれに類した)名前が使えなくなる
・そもそも、入力を終了させるだけなのに文字を打たせるのは不親切
みたいな事があり、改行のみ入力で終了が良いのでは?という事です。
確かにそれもそうですね...
改行での入力終了で作ってみます
一応、こういう時の常套手段は、
while True:
として、無限ループにします。
その上で、例えば
name = input()
などとして、nameが特定の文字列ならbreakで強制終了。
別に終了条件は何でもいいですし、複数付けてもいいんです。
何度もありがとうございます!
やってみます!
while True:
print("名前を入力して下さい")
name = input()
if name == "":
break
else:
print("参加者:",name)
おかげさまでできました