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