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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

704閲覧

二桁の数字と一桁の数字の見分け方

wakahide

総合スコア23

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/03/24 09:54

編集2020/03/24 10:11

入力された数字がリストの何番目に位置するか調べる関数を作りたいです。

しかし、下記のコードだと、どうやら1がactionのB12に含まれているので、i=1となってしまうのですが、
数字を塊としてみて、i=10で返す方法はないでしょうか?

action = "B12" COL = range(0, 20) j = 0 while str(COL[j]) not in action: j = j + 1 j = int(j)

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

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

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

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

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

temps1101

2020/03/24 09:58

B+10のBとはなんですか.
meg_

2020/03/24 10:02

上記コードは「NameError: name 'num' is not defined」のエラーが出ますよ。
wakahide

2020/03/24 10:03

すみません、説明不足でした。 列がアルファベット、行が数値で表される行列の位置情報でtypeはstrです。 行番号を取得したいのですが、行が10を超えてくると、上記の問題で10台の数字は全て1でかえり、20台の数字は全て2で返ってしまいます。
takasima20

2020/03/24 11:11

まず "B12" を "B" と "12" に分けるとこからはじめたほうがいいんじゃないかなあ。前半部分も2文字以上に対応しておけばいろいろと応用がきくと思います。
guest

回答2

0

正規表現を使うのが簡単です。

Python

1import re 2 3action = 'B12' 4 5m = re.search(r'\d+', action) 6assert m is not None 7 8num = int(m.group()) 9print(num)

これならば3桁の数字、4桁の数字... と桁数が増えても対応できます。

投稿2020/03/24 10:27

LouiS0616

総合スコア35660

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

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

0

ベストアンサー

jを大きいほうから小さくしていってはいかがですか?

投稿2020/03/24 10:22

Matsui_hero

総合スコア346

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問