【Python3】関数

def Function(str): #関数の定義
    '''関数の説明''' #関数の説明
    return str * 3 #戻り値

Function("Hello ") #呼び出し
help(Function) #関数の説明を見る
def Function(str = "Hello "): #デフォルト引数を指定
    return str * 3

print( Function() )
def Function(s1, s2):
    return s1 + " " + s2

print( Function( s1="Hello", s2="World" ) ) #名前付き引数の指定
def Sum(*args): #可変長引数
    v = 0
    for n in args:
        v += n
    return v

print( Sum(1,2,3) )
print( Sum(1,2,3,4,5) )
def print_args(**args): #辞書型の可変長引数
    print(args)

print_args( a=30, b=50, c=40 )
print_args( aa="hoge", bb="fuga" )

【Python3】文字列操作

s1 = "100 200 300 400"
s2 = s1.split() #区切り文字を指定しない場合は空白文字で区切られる

s1 = "100,200,300,400"
s2 = s1.split(',') #指定した文字で区切られる

s1 = "100,200,300,400"
s2 = s1.split(',', maxsplit=1) #maxsplit を指定すると指定された回数しか区切られない

s1 = ["100", "200", "300"]
s2 = "-".join(s1) #リストを文字列で連結させる

s1 = "This is a pen."
s2 = s1.replace("pen", "note") #pen を note で置き換える

s = "Hello World".find("o") #文字列を検索する
s = "Hello World".find("o", 6) #指定された位置から文字列を検索する
s = "Hello World".find("o", 6, 7) #指定された位置から指定された位置までの間に文字列を検索する

s = "HELLO WORLD".lower() #小文字にする
s = "hello world".upper() #大文字にする

s = ' Hello World '.strip() #先頭と末尾の文字集合を削除。指定しない場合は先頭と末尾の空白を削除
s = '" Hello World "'.strip('"') #先頭と末尾の文字集合を削除。

s = "Hello World".startswith("Hello") #文字列が指定された文字列で始めるなら True を返す

isNumeric = "123456".isnumeric() #文字列が数値を示すなら True をそうでないなら False を返す
isNumeric = "-123456".isnumeric() #文字列が数値を示すなら True を返すが負の値は判定できない模様

【Python3】リスト

l = [10,22,30,45] #配列
l[0] #0 番目の要素
l[3] = 550 #3 番目の要素に代入
l[-1] #末尾から 1 番目の要素

len(l) # 配列の要素数
sum(l) #合計

for elem in l: #配列の各要素にアクセス
    print(elem)

for elem in enumerate(l): #インデックス付きで各要素にアクセス
    print(elem)

l.append(100) #追加
l.extend([33,44]) #リストを追加
del l[2] # 2 番目の要素を削除
del l[2:4] # 2 番目から 4 番目までの要素を削除
l.insert(1, 50) #1 番目の位置に挿入
l.remove(4) #4 を除外
l.pop() #×美の要素と取り出し削除
l.clear() #全要素を削除
l.index(3) #3 番目の要素
l.count(4) #4 が出現する回数
l.sort() #ソート
l.sort(reverse=True) #逆順でソート
l2 = l.copy() #複製(浅いコピー)

l[1:3] #1 から 3 までの要素をスライス
l[1:3:2] #1 から 3 までの要素を 2 ステップでスライス
l[:3] #3 までの要素をスライス
l[1:] #1 からの要素をスライス
l[-2:] #末尾から 2 番目から末尾までの要素をスライス
l[2:8:2] #2 番目から 8 番目の間を 2 ステップでスライス
l[::3] #最初から最後まで 3 ステップでスライス
t = (10,20,30)

t = t[:2] #スライス

l = list(t) #タプルをリストにする
t = list(l) #リストをタプルにする

タプルは要素を変更できないリスト

s = {"red","green","blue"} #集合型を生成
s = set() #空の集合型を生成

box1 = {"ハンマー","釘","ペンチ"}
box2 = {"釘","ペンチ"}
box3 = box1 - box2 #集合方の減算
isIn = "ハンマー" in box1

set は重複できないリスト

args = {"鈴木":30,"井上":20,"伊藤":22} #辞書型
args["鈴木"] #鈴木の値
"井上" in args #含まれるか否か
args.keys() #キーの列挙(dict_keys 型)
list(args.keys()) #キーの列挙(list 型に変換)
sorted(args) #ソート済みの一覧を取得
args.values() #値の列挙(dict_values 型)
list(args.values()) #値の列挙(list 型に変換)
args.items() #値の列挙((dict_items 型))
list(args.items()) #値の列挙(tuple の list 型に変換)

for key, value in args.items(): #for をキーと値でイテレーション
    print("key={0},value={1}".format(key, value))

dict はキーと値を持つリスト

【Python3】制御文

c は論理値とする

if c:
    print("True")
else:
    print("False")
if c:
    print("True")
if c:
    pass #何も書かないとエラーになる。何もしないことを示すために pass 命令を使う
else:
    print("False")

Python はインデントでブロックを定義していている

c = 10

while c >= 0: #繰り返し処理
    c -= 1
    print(c)
else:
    print("Finish") #繰り返し処理後の処理
c = 10

while c >= 0: #繰り返し処理
    c -= 1
    print(c)
    break #途中で処理を抜ける else ブロックは実行されない
else:
    print("Finish") #繰り返し処理後の処理
c = 10

while c >= 0: #繰り返し処理
    c -= 1
    print(str(c)+"(1)")
    continue #処理を中断しループの頭に戻る
    print(str(c)+"(2)")
else:
    print("Finish") #繰り返し処理後の処理
for i in range(5): #回数繰り返し
    print(i)
else:
    print("Finish")
for i in range(1, 10): #範囲繰り返し(終了値は含まない)
    print(i)
else:
    print("Finish")
for i in range(1, 10, 2): #ステップ数を定義しての範囲繰り返し(終了値は含まない)
    print(i)
else:
    print("Finish")

【Python3】文字列

'I would like to be a programmer.' #シングルクォートで囲った文字列
"I would like to be a programmer." #ダブルクォートで囲った文字列

'I\'d like to be a "programmer".' #シングルクォートで囲った文字列
"I'd like to be a \"programmer\"." #ダブルクォートで囲った文字列
"\\" #バックスラッシュ
'\'' #シングルクォート
"\"" #ダブルクォート
"\r\n" #改行(CRLF)
"\n" #改行(LF)
"\t" #タブ文字
"\x41" #16 進数の文字
"\u4e16" #16bit Unicode で 16 進数の文字
"\U00004e16" #32bit Unicode で 16 進数の文字
'''Hello
World''' #シングルクォートの三重引用符で複数行

"""Hello
World""" #ダブルクォートの三重引用符で複数行
"Hello" + " " + "World" #文字列の連結
"python" + str(3) #文字列と数値の連結
"{0}本でもニンジン、{1}足でもサンダル、{2}艘でもヨット".format(1,2,3) #書式文字列
"{key1}本でもニンジン、{key2}足でもサンダル、{key3}艘でもヨット".format(key1=1,key2=2,key3=3) #書式文字列
s = "Hello World."

s + " こんにちは世界" #連結
s * 3 #繰り返し
s[1] #1 文字目
s[1:5] #1 文字目から 5 文字目まで
s[1:] #1 文字目以降
s[:7] #7 文字目まで
s[1:11:4] #1 文字目から 11 文字目まで 4 文字飛ばしで

【Python3】演算

x と y を数値 c を論理値 とする

x + y #加算
x - y #減算
x * y #乗算
x / y #除算
x % y #余り
x ** y #べき乗
x // y #切捨除算
~x #ビット反転
x & y #論理積
x | y #論理和
x ^ y #排他的論理和
x << y #ビット左シフト
x >> y #ビット右シフト
x = y #代入
x += y #x = x + y
x -= y #x = x - y
x *= y #x = x * y
x /= y #x = x / y
x **= y #x = x ** y
x //= y #x = x // y
x &= y #x = x & y
x |= y #x = x | y
x ^= y #x = x ^ y
x <<= y #x = x << y
x >>= y #x = x >> y
x == y #等値
x != y #不等値
x < y #小なり
x > y #大なり
x <= y #小なりイコール
x >= y #大なりイコール
x is y #等価
x is not y #不等価
x and y #論理積
x or y #論理和
not x #否定
x if c else y #三項演算子

インクリメント(++)やデクリメント(--)は使えない

【GDC 2018】記事リンク

4gamer

[GDC 2018]シリコンスタジオのポストエフェクトミドルウェア「YEBIS」がSwitchに対応

[GDC 2018]漁業ゲーム「Fishing: Barents Sea」の開発チームをイベントフロアで発見。なんとタラバガ二をフィーチャーする「Kingcrab DLC」を告知

[GDC 2018]新作VRアクションRPG「GARGANTUA」を先行体験。剣や盾を自由自在に操る本格的なバトルが楽しめる

[GDC 2018]Kalypso Media,「Tropico 6」と「Shadows: Awakening」のライブデモを公開

[GDC 2018]Co-opモードに対応した横スクロール型ストラテジー「Kingdom: Two Crowns」をチェックしてきた

[GDC 2018]「RTX」一色のNVIDIAブースで,ゲームにおけるレイトレーシング技術の活用アイデアをチェック

[GDC 2018]英語圏のゲーマー達を抱腹絶倒させたコメディRPG「West of Loathing」という奇作はどのようにして生まれたのか

スパイク・チュンソフト米国子会社が「428 ~封鎖された渋谷で~」や「STEINS;GATE ELITE」などを欧米で販売

[GDC 2018]王の死を以って,ゲームはプレイヤーのものになった。リチャード・ギャリオット氏達が語る「Ultima Online」のポストモーテム

[GDC 2018]XCOM2の自動生成マップに隠された物語とは? 小さな痕跡を使って物語を語る方法

[GDC 2018]Daydream対応では世界初となるスタンドアロン型VR HMD「Mirage Solo with Daydream」を体験してみた

[GDC 2018]RiftとOculus Go間でも対戦できるVRボードゲーム「Catan VR」

[GDC 2018]SIEのPlayStationブースで,次世代型e-Sports観戦システム「EDS」を体験してみた

[GDC 2018]山あり谷ありだった「Assassin's Creed」10年を振り返る

[GDC 2018]今は雌伏のとき。VRゲームが生き残るためにするべきことが語られた講演をレポート

[GDC 2018]「80 Days」のスクリプターが示す,「プレイヤーに読んでもらえるテキスト」を作る技術とは

[GDC 2018]Qualcommの新VR Development Kitはアイトラッキング対応。実機によるVRゲームデモを体験してみた

[GDC 2018]「Mystery House」はこうして作られた。ゲーム史の研究者によるPostmortem(事後検証)という異色のレクチャー

[GDC 2018]Oculusが2018年のVR戦略を語る。ソフトウェアの改良点から開発中の「Oculus Go」「Santa Cruz」まで

[GDC 2018]Supercellにおける「ゲームデザイン」では,何が行われているのか? 数々の名作を作ったデザイナーが実例を挙げて語った

[GDC 2018]恐竜世界をVRで冒険できる。「ARK Park」ローンチイベントレポート

[GDC 2018]“AIとの会話をゲームにする”ことの難しさとは。「EVENT[0]」の開発者が登壇した講演をレポート

[GDC 2018]「MONSTER HUNTER: WORLD」はなぜ世界的ヒットを成し遂げられたのか? 検証を重ねたプロトタイプの映像が世界初公開

[GDC 2018]約10年ぶりの続編「PixelJunk Monsters 2」が2018年5月25日に世界同時発売。スパイク・チュンソフトブースでデモが公開

[GDC 2018]こんなゲームだったのかと驚かされる「ザンキゼロ」の新情報をレポート。「STEINS;GATE ELITE」のデモも行われる

[GDC 2018]SteamSpyが2017年のSteamデータを総括。史上最高の売り上げを記録するも,その内情は少しいびつに?

[GDC 2018][西川善司の3DGE]DirectX Raytracingにおける最適解は「レイトレーシングを行わないこと」!? Futuremarkが語るその真意

[GDC 2018]ILMxLABの目指す未来は,VRやARを超えた「Hyper Reality」

[GDC 2018]ローグライクなゲームシステムを搭載したミニマリスト風RTS「Bad North」が初公開

[GDC 2018]「Radeon RX Vega M」搭載CPU「Kaby Lake-G」のベンチマークスコアをIntelが公表。GTX 1050 Tiより速い!?

[GDC 2018]新作ゲーム機「Atari VCS」,その正体はAMD製APU搭載のLinuxマシンだ

[GDC 2018]「フィンチ家の奇妙な屋敷でおきたこと」の完成は奇跡だった? 常識外れとも思える開発手法が紹介された講演をレポート

[GDC 2018]「Job Simulator」を生んだOwlchemy Labsの新作は,仕事疲れでバケーションを楽しむ主人公の狂騒曲を描く「Vacation Simulator」

[GDC 2018]HTCのスタンドアロンVR HMD「Vive Focus」,2018年内の発売が決定

[GDC 2018][西川善司の3DGE]DirectX RaytracingにRTX,Optix,ProRenderにRadeon Rays。“レイトレだらけ”の状況をすっきりさせてみる

[GDC 2018]「スプラトゥーン」はもともとウサギゲーだった! イカしたゲームになるまでの紆余曲折

[GDC 2018]日本の小さなゲームメーカーは世界で戦えるのか。Onion Gamesの木村祥朗氏が「Million Onion Hotel」の制作について語った

[GDC 2018]映像やAR/VR,さらにリアルタイムレイトレーシングまで! 2018年のUnreal Engineはこうなる

[GDC 2018] 任天堂が明かす,「ARMS」に活かされた「マリオカート」の経験とは?

[GDC 2018]Futuremark,「DirectX Raytracing」ベースとなるリアルタイム技術デモのムービーを公開

[GDC 2018]「ソニック・ザ・ヘッジホッグ」はいかにして誕生したのか。生みの親がその秘話を語った講演をレポート

[GDC 2018]ついにベールを脱いだ「Oculus Go」のローンチタイトルとなる「Anshar Online」と「They Suspect Nothing」をプレイ

[GDC 2018]視線追跡技術がVRを進化させる。Tobiiの語る「2ステップ・インタラクション」とは

[GDC 2018]「NieR:Automata」はどのような方向性をもって作られたのか。田浦貴久氏とヨコオタロウ氏が語る

[GDC 2018]昨年の最も優れたゲームを選ぶ「Game Developers Choice Awards」が開催。「ゼルダの伝説 ブレス オブ ザ ワイルド」がGame of the Yearを受賞

[GDC 2018]「Far Cry 5」におけるこだわりの「水面」表現法,教えます

[GDC 2018]ひと目でゲームの面白さが分かる画面設計の秘訣は,ポスター制作にあり? 良い画面設計のための,シンプルな方針

ファミ通

ハイエンド向け最新技術から“遊べる広告”のような超小型コンテンツまでカバー。Unity基調講演のトピックをまとめて紹介

『ライフ イズ ストレンジ ビフォア ザ ストーム』のシナリオは、4人のライターが生み出した。複数人が合体して、スーパーライターになるためには【GDC 2018】

宇宙飛行士のVR訓練に、ゲーム開発のノウハウが活かされていた! NASA、ボーイング、そしてゲーム開発者がツール制作について語る【GDC 2018】

esportsの従来スポーツ化の流れの先にあるものは……ゲームのIPは“シェアされるもの”になる?【GDC 2018】

不安定な治安、停電、超遅いネット。それでもそこにゲームで表現したい人がいるはずだから、私はゲーム開発を教えに行く。ある准教授の冒険【GDC 2018】

クリス・チャーラ氏に聞く、開発者がコンシューマーで簡単にソフトをリリースできるようになったのがID@Xboxの成果【GDC 2018】

キーとなるのは音と振動。視覚障害ゲーマーもサポートするためのエレクトロニック・アーツの挑戦【GDC 2018】

Unreal Engine 4の最新事例を紹介する“State of Unreal”詳報、ゲーム開発の未来を拓く最新技術を駆使した映像の数々に来場者も驚嘆【GDC 2018】

ゲームの中に留まらない『スプラトゥーン』という体験を提供していきたい。任天堂 野上恒氏が語る開発秘話と変遷【GDC 2018】

セガを代表するキャラクター、ソニックはいかにして生まれたか。安原広和氏と大島直人氏が『ソニック・ザ・ヘッジホッグ』開発当時を振り返る【GDC 2018】

『NieR: Automata』“触った瞬間に楽しい”アクションへのアプローチと、ヨコオ氏の考える“ゲームの自由”、そして隠された密かな願い【GDC 2018】

『ゼルダの伝説 ブレス オブ ザ ワイルド』が“ゲーム・オブ・ザ・イヤー”を圧巻の勢いで受賞、『NieR:Automata(ニーア オートマタ)』も“Audience Award”に輝く【GDC 2018】

旅人は、ゲーム作りからだけは逃げられない。『ミリオンオニオンホテル』の波瀾万丈な経緯アレコレ【GDC 2018】

リアルの世界で『パックマン』を楽しむ――MRアトラクション『PAC IN TOWN』を開発・運営するうえでの課題、そして気づき【GDC 2018】

『ARMS』と『マリオカート8』は兄弟のようなもの!? 任天堂の矢吹光佑氏が語る、長く遊んでもらうために必要なこと【GDC 2018】

『モンスターハンター:ワールド』プロトタイプの映像を初公開! 新時代の『モンハン』を作るために検証された、挑戦的アイデアの数々【GDC 2018】

ディープラーニングで毎日最大60万試合を解析して『CS:GO』のチーターを探す、Valveのビッグブラザー“VACnet”【GDC 2018】

Steamの外部DB“SteamSpy”創設者が語る2017年総括。中国語プレイヤーの伸びは『PUBG』のネカフェ需要が遠因?【GDC 2018】

『リーグ・オブ・レジェンド』新“名誉システム”に込められた意図とは? より健全なゲーム環境を求めて【GDC 2018】

IGN

[GDC 2018]Cone Marching法で描くフラクタルVRの世界「CORAL」

[GDC 2018]VRでマルチプラットフォーム展開をしていくということ

UnityとUniversalがインディーズゲーム開発者にハリウッド映画IPへのアクセスを与える理由

MoguraVR

VR/ARが視線追跡で進化する6つの理由【GDC2018】

ディズニーが挑む 脚本からVRアニメを自動生成【GDC2018】