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

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

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

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

Q&A

解決済

3回答

4192閲覧

4桁の数字を入れた変数から1桁だけを取り出して表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

0クリップ

投稿2019/05/15 23:10

4桁の数字を入れた変数から、1桁だけを取り出して表示するプログラムを作っているのですが、本来は実行結果に3が表示されるはずなのですが、なぜかエラーが出てしまいます。エラーメッセージで検索しましたが分かりません。文字の打ち間違いやカッコの付け忘れ、大文字小文字のミスなども見当たりません。以下にそのプログラムを記します。

a=[] a=1234 print(a[2])

↓エラーメッセージ

Traceback (most recent call last): File (ファイル名).py", line 3, in <module> print(a[2]) TypeError: 'int' object is not subscriptable

下のプログラムは4桁の数字をキーボードで入力し、その値を1桁のみ出力するプログラムなのですが、なぜかこちらは問題なく実行できました。先ほどとの違いは値が変数に入っているかキーボードで入力するかの違いのみです。

a=[] a=input("4桁の数字を入力してください:") print(a[2])

↓実行結果

4桁の数字を入力してください:1234 3

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

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

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

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

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

guest

回答3

0

ベストアンサー

前者の aの型が数値(int)型、後者が文字(str)型 だからでしょうね。

Python

1a=input("4桁の数字を入力してください:") 2print(type(a)) 3#<class 'str'> 4print(a[2]) 5#3 6 7a = 1234 8print(type(a)) 9#<class 'int'> 10print(a[2]) 11#TypeError: 'int' object is not subscriptable

input() と同様のことを行いたいのであれば、a文字型に変換してください。(または最初から文字列として記述する)

Python

1a = 1234 2a = str(a) 3print(type(a)) 4#<class 'str'> 5print(a[2]) 6#3 7 8# または 9 10a = "1234" 11print(type(a)) 12#<class 'str'> 13print(a[2]) 14#3 15

投稿2019/05/15 23:21

編集2019/05/15 23:22
magichan

総合スコア15898

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

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

退会済みユーザー

退会済みユーザー

2019/05/15 23:24

ご回答ありがとうございます。解決できました。
guest

0

a=1234数値です。数値に対してa[2]のような操作はできません(とエラーメッセージは云っています)。

文字列ならできますが。

投稿2019/05/15 23:17

編集2019/05/15 23:18
can110

総合スコア38258

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

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

退会済みユーザー

退会済みユーザー

2019/05/15 23:24

ご回答ありがとうございます。解決できました。
guest

0

最初のコードではaには整数の1234が入ってます
あとの例では、aには、文字列の'1234'が入ってます。

えらい違いですね

投稿2019/05/15 23:17

y_waiwai

総合スコア87747

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

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

退会済みユーザー

退会済みユーザー

2019/05/15 23:24

ご回答ありがとうございます。解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問