ludwig125のブログ

頑張りすぎずに頑張る父

pythonアルゴリズムなどメモ

内容

自分がよく使うpython3の書き方のまとめ 大体はpython2でも使えるはず(?)

Tips

文字列を受け取って整数にする

N = int(input())

文字列を受け取って整数の配列にする

A = list(map(int, input().split()))

またはリスト内包表記を使って A = [int(a) for a in input().split()]

文字列を受け取って整数の変数に個別に代入

以下のようにリストの左辺をカンマ区切りで別々の変数にすればそれぞれに格納される

N, A, B = [int(x) for x in input().split()]
print(N)
print(A)
print(B)
3 53 94 ← 入力値
3
53
94

a ~ bまでfor

0~3をfor

for x in range(4):
  print(x)
0
1
2
3

1から始めて4まで出したい場合は 「1, 4+1」を指定する

for x in range(1, 5):
  print(x)
1
2
3
4

listに対してfor

l=[1, 2, 3]
for i in l:
    print(i)

結果

1
2
3

数字の各桁をすべて足す

考えた方法1.

以下ではlist(map(int, list(str(n))) で、 いったん数字nを文字列にしてからそれをlistで一文字ずつ区切ったリストにして、それらをintに戻している

n=12345
summary = 0
for i in list(map(int, list(str(n)))):
   summary += i

summary : 15

考えた方法2.こちらのほうがわかりやすい
s = 0
while n > 0:
    s += n % 10
    n //= 10

s: 15

ファイル読み込み

以下をopen.pyの名前で保存

import sys

args = sys.argv
#print(args[1])
path = args[1]

with open(path) as f:
    print(f.read())

python open.py <対象ファイル>