python おさらい その5
文字列の長さを表示するには len() を使う
print(len(input()))
で標準入力で入力した文字数を表示できる
次に文字列のインデックスの表示
input_line = input() print(input_line[0])
というように 0 からインデックスが振られるので
最初の入力文字を表示するなら0を指定する
次にリストのループ表示
list =["Nara", "Shiga", "Hokkaido", "Chiba"]
for item in list:
print(item)
今回は標準入力ではなく
リストの中身の表示
for の構文がわかっていれば
あとはリストの中身を表示するだけでOK
解説としては
【Python入門】for文を使った繰り返し文の書き方
がわかりやすいかも
次に標準入力を1文字ずつ表示
とはいっても入力自体を1文字ずつなので
別に分割するとか考えなくてOK
string=input()
for item in string:
print(item)
最初の string の中身がリストから標準入力になっただけ
次に2つの入力値があり
最初に文字列
次に文字を入力し
文字の出現回数を計算する
string = input()
char = input()
count = 0
for item in string:
if item == char:
count +=1
print(count)
最初に2つの input で文字列と文字を取得
あとは回数を格納する変数を用意して
for で文字列をループしながら単語に分解
その中で文字と一致したら
カウントを増やして最後に print() で出力
次に
標準入力の
文字列の n 文字目と n + 1 文字目
という場合
count = int(input())-1
string = input()
if count +1 < len(string):
print(string[count]+" "+string[count+1])
インデックスはゼロから数えるので
入力の時点で -1 したほうが計算が楽
文字列の長さを超えることがあるので
if で判定しておく
文字列連結は + でできる
これは java とかもおなじ
php だと . で連結なのでわかりにくいかも
s が t の中で何回出現するかカウントして出力
の場合
pattern = input()
string = input()
result = 0
for i in range(len(string) - len(pattern) + 1):
portion = string[i:i + len(pattern)]
if portion == pattern:
result += 1
print(result)
次に標準入力+1で出力する場合
num= int(input())+1 print(num)
int() で整数にして+1しておけばOK
次に
n m
というように空白区切りで入力して
n 個の整数を改行区切りで標準
num = int(input())
for i in range(num):
print(input().split()[1])
最初の num で入力回数を取得
次に for で回数分ループ
split() で分けて インデックス1の部分なら
2番めに入力したものがでるのでこれでOK
次に標準入力したものをソートして出力
input()
string = input().split()
nums=[]
for num in string:
nums.append(int(num))
nums.sort()
for i in nums:
print(i)
となる
格納リストを用意し
ループで入力したものを代入
代入するときに整数に変換
ループ後に sort() でソート
あとはこれをループさせて
1つずつ表示
次に入力されるn個の組を整数の値で昇順にソートして
文字列を表示
num = int(input())
inputs = {}
for i in range(num):
tmp = input().split()
inputs[int(tmp[1])] = tmp[0]
inputs = sorted(inputs.items())
for i in inputs:
print(i[1])
最初に入力数を受け取る
次に 配列格納変数inputs を用意
for で range の範囲を入力値にして
tmp に格納しながら標準入力したものをループでまわす
inputs[int(tmp[1])] = tmp[0]
の部分で key value 形式で格納
inputs = sorted(inputs.items())
の部分で
sorted() で昇順にソート
sort() と sorted() の違いについては
Pythonでリストをソートするsortとsortedの違い
を参考に
基本的に文字列をソートするなら sorted() を使う
items() はすべてのキーと値の組み合わせを取得
なお値だけなら values()
キーだけならkeys() を使う
これらの辞書関連メソッドについては
辞書に含まれるすべてのキーと値を取得する
を参考に
今回は inputs に key -value 形式で格納
あとは
for i in inputs:
print(i[1])
で 値のみループで表示すればOK