質問するログイン新規登録
Python

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

Q&A

解決済

1回答

340閲覧

Python キーボード入力した複数の数値をリストにするプログラムを作成したい

kouchan_dd

総合スコア20

Python

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

0グッド

0クリップ

投稿2023/07/20 09:10

0

0

実現したいこと

Pythonでキーボード入力した複数の整数値をリストにするプログラムを作成したい

前提

次のようなプログラムA1.py を作る.
(1)キーボードから整数値を入力し, 10個まで順次リストに蓄積する。
(2)10個未満でも負の値が入力されたら,その時点で入力を終了する。
(3)入力を終了したら、リストの内容を表示する。

そして、実行画面は以下のようになる。
input an integer 3
input an integer 1
input an integer 4
input an integer -9
Variable x has value [3, 1, 4].
Type of x is <class 'list'>.

なお、以下のモジュール”Mod1.py”のdisplayで結果を表示、get_intで整数値を入力することとする。

Python

1def display(var, name='x', dispType=True, dispId=False): 2 print(f'Variable {name} has value {var}.') 3 if dispType: 4 print(f'Type of {name} is {type(var)}.') 5 if dispId: 6 print(f'ID of {name} is {id(var)}.') 7 print() 8 return 0 9 10def get_int(prompt='input an integer '): 11 return int(input(prompt))

A1のソースコードを以下(発生している問題・エラーメッセージ欄)のように作っていたが、「forループで10個まで順次リストに蓄積し、負の値が入力されると入力を終了する」ということはわかっているが、このプログラム文をうまく作れない。

発生している問題・エラーメッセージ

Python

1[] 2Traceback (most recent call last): 3 File "A1.py", line 5, in <module> 4 M1.get_int(ls_prime) 5 File "A1.py", line 9, in get_int 6 return int(input(prompt)) 7 ^^^^^^^^^^^^^^^^^^ 8ValueError: invalid literal for int() with base 10: ''

該当のソースコード

Python

1import Mod1 as Md 2 3ls_prime = [] 4for i in range(10): 5 Md.get_int(ls_prime) 6 ls_prime.append(ls_prime) 7 8Md.display(ls_prime)

試したこと

forループを使うことはわかっていたため、まずそれをソースコードにした。しかし、if文を使おうと思ったのだが、実行結果がうまく出なかったため、記載のソースコードでは消去している。
おそらく、forとifを使うことと、Md.get_intの()の中などが違うと考えている。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Md.get_int(ls_prime)

上記はどのような意図のコードですか?

Md.get_int()関数の引数は無しか入力を求めるときのプロンプトです。また、入力された文字を整数と解釈して返します。

python

1 input_num = Md.get_int()

としましょう。

ls_prime.append(ls_prime)

はどのような意図のコードですか?

リストls_primeに、自分自身を追加しようとしています。
前の処理で得た値を取得したいのでしょうから、ここは、

python

1 ls_prime.append(input_num)

としましょう。

これで、入力したデータが整数でリストに入り、表示されると思います。

投稿2023/07/20 09:27

TakaiY

総合スコア14545

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

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

kouchan_dd

2023/07/20 09:50

ありがとうございます。 "input an integer"の文が表示されました。 負の値が入力されたら、整数値の入力を終了するif文ってどのように書けばいいですか?
TakaiY

2023/07/20 10:22

入力された値は input_num に入っていますから、これが負の数かどうか判定しましょう。 入力を終了するのには「ループを中断」すればOKです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問