おじさんAのプログラムメモ

30代のおじさんの主にプログラムについてのブログです

paizaスキルチェック用、python2ローカル実行テンプレート&文法カンペ

最近暇つぶしを兼ねてpaizaのスキルチェックを解いて遊んでいる。
paiza.jp

仕事で使っている言語でやってもおもしろみもないので、あまり詳しくないpython2を使っている。
普段のローカル実行用のテンプレートと、文法のカンペを紹介します。

ローカル実行用コード

raw_input()で入力値を取得できるように以下のコードをコピペ。
ちなみに実行環境はPyCharmを利用している。

# -*- coding: utf-8 -*-

# ここに問題の入力例を入れる
input = """
str
1
1 2 3
"""
input_list = input.split("\n")
counter = 1

def raw_input():
    global input_list
    global counter
    result =  input_list[counter]
    counter = counter + 1
    return result

# 読み込み例
str = raw_input()
intt = int(raw_input())
int_list = map(int, raw_input().split(" "))

カンペ

pythonの文法をちゃんと覚えてないので、以下のコードをカンペ代わりに利用

# for
for i in range(5):
    print i

for i in range(1, 10 , 2):
    print i

for i in [1,2,3]:
    print i

for i, x in enumerate(["a", "b", "c"]):
    print i, x

# 3項演算子
e = "yes" if 1 == "1" else "no"

# 関数定義(コメント入れておくと、pycharmでコード補完可能)
def func(val1, val2):
    """
    @type val1: int
    @type val2: int
    @rtype: string
    """
    return "result"

# クラス定義
class User(object):
    def __init__(self, items):
        self.items = items

    def score(self):
        return len(self.items)

# 乗数
print 10 ** 2


# 文字列
print ",".join(["a","b","c"])
print "user1:{}. user2:{}".format("TARO", "JIRO")
print "hello {}".format(1)


# list[3][2]
list3_2 = [["*" for i in range(2)] for j in range(3)]
print list3_2

# sort & lambda
users = []
users.append(User([1,2]))
users.append(User([1,2,3,4]))
ranking = sorted(users, key = lambda user: user.score(), reverse=True)

# dict(map的な)
dict = {"a": 1, "b": 2}
dict["c"] = 3
dict["b"] = 20
dict.update({"d": 4, "e": 5})
del dict["e"]
print "z" in dict

print dict.keys()
print dict.values()
print dict.items()
for dic in dict.items():
    print dic[0], dic[1]

さいごに

そのうち、カンペもうちょっと追記します。