python おさらい その3

python おさらいその3

文字列の分割

input_line = input().split()
print(input_line[0])
print(input_line[1])

とすれば
標準入力を分割し、表示できる

std_in = input()

for string in std_in.split():
    print(string)

でも答えは同じ

次に標準入力で2つの値をいれて合計を出す

a,b= map(int,input().split())
print(a+b)

でも

std_in = input()
result = 0

for num in std_in.split():
    result += int(num)

print(result)

でも答えは同じ

次に文字列の長さを取得
これは len() で簡単にできる

input_line = input()
print(len(input_line))

もっと簡潔に書くなら

print(len(input()))

文字列の長さ(文字数)を取得する

を参考に

次に入力した1番めの文字列を取得

input_line = input()
print(input_line[0])

というように
格納した変数のインデックスで取得表示できる

文字列の指定したインデックスの文字(要素)を取得する

を参考に

次にスペース区切りの入力をすべて表示

nums = input().split()

for i in range(int(nums[0]), int(nums[1]) + 1):
    print(i)

というように range() に範囲指定して行う

split() を使うことで分割され
これはインデックスとして格納される

range() は
第1引数で開始位置
第2引数で範囲
を指定する

Pythonのrange()関数を使ったリスト作成や繰り返し処理の書き方

を参考に

python おさらい その2

python おさらい その2

最初に入力回数をいれて
次に文字列をいれ、それを出力していく

input_line = int(input())
for i in range(input_line):
    string = input()
    print(string)

標準入力で空白区切り、もしくはスペース区切りの場合は

数値の場合なら
Python3 標準入力から複数の値を受け取りたい時

のように

map(int,input(),split())

を使う

文字列の場合は

input().split()

でOK

スペース区切りの文字列を分割して
2行にするのなら

std_in = input()

for string in std_in.split():
    print(string)

というかんじ

次にスペース区切りで2つの整数を入力し
それを足すというもの

a,b =map(int,input().split())
print(a+b)

でOK

2つの整数をそれぞれ足して
最後に合計を出す
もし同じ2つの値のときには掛け算する

time = int(input())
result = 0

for i in range(time):
    std_in = input()
    array = std_in.split()

    if array[0] == array[1]:
        result += int(array[0]) * int(array[1])
    else:
        result += int(array[0]) + int(array[1])

print(result)

python おさらい

python おさらい

python で標準入力するときに
数値入力するのなら
input() を使う

この場合、数値になるので
入力値 +1とするなら

input_line =int(input())
print(input_line +1 )

とすればOK

標準入力関連については
Python3の標準入力やり方まとめ

を参考に

また、最初に入力回数、次に改行で入力値
というものを出力するのなら

input_line = int(input())
for i in range(input_line):
    print(input())

次に入力値がなく
1, 3, 5, 6, 3, 2, 5, 23, 2
のリストの合計値を出力する場合

mylist =[1, 3, 5, 6, 3, 2, 5, 23, 2]
print(sum(mylist))

となる

合計をだすには
sum() を使う

python でのリスト作成には
【Python入門】listの使い方とメソッドまとめ

リストの足し算については
Pythonでリストの要素を足し算する方法を現役エンジニアが解説【初心者向け】

を参考に

次に標準入力で
入力値が5位上なら high
以下なら low とするなら

if int(input()) >= 5:
    print("high")
else:
    print("low")

となる
if の中に入力を判定としていれたほうがコードが短くできる

次に5位上の数だけリストから足し算する場合

mylist =[4, 0, 5, -1, 3, 10, 6, -8]
result = 0

for i in mylist:
    if i >= 5:
        result += i
print(result)

というように格納変数を用意し
for でループしながら
条件に当てはまるものだけ足していく

次に標準入力から5位上のものを足していくというもの

result = 0
num = int(input())

for i in range(num):
    tmp = int(input())

    if tmp >= 5:
        result += tmp

print(result)

result は判定した数値を足すための格納用変数

最初の num で入力回数を把握

これを for でループの回数にセット
tmp で入力した数値を代入し
それを if で判定し足していく

python の if その2

python の if その2

python の if の構文は

if 条件式 :

	処理する内容

となる

else をつけるときの構文は
[/python]
if 条件式:
true のときの処理
else:
false のときの処理
[/python]
となる

python は ruby みたいに改行で区切りなので
ほかの言語からくると最初は間違えやすいかもしれない

else if をつかうときには

if 条件式:
	if の判定が true のときの処理
elif if には当てはならないときの次の条件:
	else if が true のときの処理
else:
	どれにもあてはまらないときの処理

となる

python では if が他の言語みたいに
{} でスコープで囲わない

どちらかというと PHP に近い感覚

ちょっと変わった書き方がドットインストールにあったので
メモ

print "OK" if score > 60 else "NG"

というように
print で表示する時に条件式をつけて
結果により表示を変更することが可能

この場合、else や if の条件式に : はいらないみたい

python で if 文

python で if 文

score = 70
として

socre が 60 より大きければ
メッセージを表示するようにする

構文は

if 条件式 :
	行う処理

となる

python にしては珍しく : などをつかっている
あと、処理を書くときに字下げをしている必要がある

とはいっても、普通に : の後 Enter を押したら字下げされた

字下げされているなら、複数処理を書くこともできる

今回は

#coding: UTF-8
# if example

score = 70
if score > 69:
        print "ok"

とした

#coding:UTF-8

は日本語取扱いのために必要

if で使える比較演算子は
基本的には java とかPHPとほぼ同じ

ただし 論理演算子がちょっと違う
&& ではなく and
|| ではなく or
! ではなく not
と普通に単語でつかうことになる

詳しくは python 論理演算子で検索

論理演算子

が参考になる

ちなみに、書き方には

score = 70
if score > 69 and score <80:
        print "ok"

score = 70
if 64 < score <80:
        print "ok"

というように書くこともできる