質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

712閲覧

コンソールに特定の文字("r")を入力すると、特定の返答("Now Processing...")が返ってくるようにしたいです。

NiziMasu

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/08 07:19

前提・実現したいこと

PythonでISBN(図書に関する国際規格コードの一種)を登録・検索できるプログラムを作っています。
タイトルの通り、コンソールに表示されている"Enter an Option"の隣に"r"を入力すると、"Now Processing..."という文字列が返ってくるようにしたいです。

プログラム画面

#consoleに"r"と入力すると、コンソールに"Now Processing..."と表示させたい def kudo(): input("""What would you like to do? [r] Record a Book [f] Find a Book [l] List all Books [q] Quit Enter an option: """ + name) name = ("") if name == "r": print("Now Processing...") kudo()

コンソール画面

Console

1>>> %Run isbn_index.py 2What would you like to do? 3 [r] Record a Book 4 [f] Find a Book 5 [l] List all Books 6 [q] Quit 7 Enter an option: r 8>>> (何も表示されない)

試したこと

エラーは発生しませんが、どのようにプログラムを組んでもコンソールには何も表示されません。

補足情報(FW/ツールのバージョンなど)

Thonnyで実施。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

こんな感じでしょう。

python

1def kudo(): 2 return input("""What would you like to do? 3 [r] Record a Book 4 [f] Find a Book 5 [l] List all Books 6 [q] Quit 7 Enter an option: """) 8 9name = kudo() 10 11if name == "r": 12 print("Now Processing...") 13

投稿2021/07/08 07:45

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NiziMasu

2021/07/08 07:55

ありがとうございます! name = kudo()とする発想は思いつきませんでした。 大変参考になりました。
guest

0

コードは

  1. 入力をさせる関数kudoを定義する。 (定義だけで実行はしない)
  2. nameを空にする
  3. nameが'r'なら、メッセージを出力する。
  4. kudoを実行する。

となっています。
おわかりと思いますが、3と 4は逆にしなければなりません。

また、関数kudoは入力された値を保持していないし、何も返しません。
入力された文字列を保持して、返すようにするなどの変更が必要ですし、呼び出す側も返り値をnameに入れるようにしなければなりません。

投稿2021/07/08 07:40

TakaiY

総合スコア13790

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NiziMasu

2021/07/08 07:56

ありがとうございます! ifのプロセスを正しく踏めていなかったのは盲点でした。 大変参考になりました。
guest

0

name = ("")

nameに空文字列代入してますが、これでいいんでしょうか

投稿2021/07/08 07:26

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NiziMasu

2021/07/08 07:37 編集

ご回答ありがとうございます。 いえ、私の間違えです... 「nameがrである時に、"Now Processing..."を出力する」為のコードを作成した所存であります。 該当部分はどのように修正するべきでしょうか。 宜しくお願い致します。
y_waiwai

2021/07/08 07:38

name=input("""What would you like to do? ... でいいんでは #文字列の後ろの +name ってのも余計?
NiziMasu

2021/07/08 07:53 編集

ありがとうございます! name= とするのですね。 無事にコードも実行できました。 大変参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問