第92回【Python】整数と文字列、部分文字列

現在取り組んでいるのは、paiza ラーニング問題集「C ランクレベルアップメニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

Python をゼロから勉強してみよう、のコーナー 92 回目です。

前回の苗字のお話の続き。母の旧姓は、全国に 100 人ちょっとらしいので、いまだに出会ったことがない。ちなみに、LunaSaki(嫁)の旧姓は 160,000 人以上はいらっしゃるらしい。

それでは、今日も頑張ってみようと思います。

整数と文字列

整数 n と、 n 個の整数 a_1, …, a_n が改行区切りで与えられるので、各 a_i (1 ≤ i ≤ n) の文字列としての長さを改行区切りで出力してください。

n
a_1
...
a_n

すべてのテストケースにおいて、以下の条件をみたします。

・1 ≤ n ≤ 50
・各 a_i (1 ≤ i ≤ n) について、 0 ≤ a_i ≤ 10000


入力例

2
10
100

出力例

2
3

桁数を求めるためには、Python での文字、数値の扱いを理解していないといけない。このブログ「月とライオン」の検索履歴にも「各桁の和」というのが多く見られる。

Python
N = int(input())
for _ in range(N):
    a = input()
    print(len(a))

len 関数は文字列の長さを返すものなので、a = int(input()) とすると、「長さ」は別の方法で求める必要が出てしまう。

VBA
Dim A As String
N = Cells(1, 1)
For i = 1 To N
    A = Cells(i + 1, 1)
    Debug.Print Len(A)
Next

A という変数を string 型と指定してあげておくと、セルから入力された値の「長さ」を求められる。数値型にしてしまうと、異なる値(容れ物の大きさ)が出力される(integer 型だと 2、long 型だと 4)。

部分文字列

文字 a と文字列 S が与えられるので、 S に a が含まれているかどうか判定し、含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。

a
S

すべてのテストケースにおいて、以下の条件をみたします。

・a, S はそれぞれ大文字または小文字のアルファベットからなる文字、文字列
・S の長さは 1 以上 10 以下


入力例

Z
Kirishima

出力例

NO

含まれているかどうか、を Python で求めるのは簡単。VBA でもよくやるやつ。

Python
a = input()
S = input()
if a in S:
    print('Yes')
else:
    print('No')

len 関数は文字列の長さを返すものなので、a = int(input()) とすると、「長さ」は別の方法で求める必要が出てしまう。

VBA
A = Cells(1, 1)
S = Cells(2, 1)
If InStr(S, A) > 0 Then
    Debug.Print "Yes"
Else
    Debug.Print "No"
End If

最後に

Python の in や、VBA の InStr は、ホントによく使うイメージがある。使いこなせるようになっておきたい。

まぁ、含まれている場合にどうするか、含まれていない場合にどうするか、であって、単独で使うことはなかなかない気がするけれど。

引き続き、よろしくお願いいたします!

Python学習,Python,paiza

Posted by LeoSaki