パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Python3の超基礎プログラムを公開(3)

2020-03-18 | Python超基礎プログラム

3回目 メソッド(関数)とタプルを使った例です

はっきり言って超基礎ではない何か...

 

都市対抗トーナメントの実施内容

https://blog.goo.ne.jp/field_light/e/e951d5dee291c9779b17a398baa73477

 

作成に利用した データ100.txtとpythonのプログラム

googleコラボラトリーに公開

https://colab.research.google.com/drive/1Xbx0altWlVMUtjR6eGShvJk9BMNK7bSq  

 

解説

1 乱数のライブラリ使う宣言

2 battle関数 2つの都市のデータからバトルさせ次のステージに上がる都市を返す

18 win関数 1つのバトル結果の表示と勝った都市を少し強くする

23 oneLine関数 各回戦の実施 teamに入った都市を順に戦わせる

nextTeamは免除されたチームが入っている(一回戦のみ使用)

27-33 cityに各都市のデータを入れる city[0]に入る

34 組み合わせ抽選会

36-38 一回戦免除の28チームを二回戦用データcity[1]に写す

39 一回戦だけ免除とかあるので別途実施

40-42 以後決勝まで同じように繰り返し、勝ったチームがcity[2],city[3]と移っていく

技の解説

2 def は関数宣言 battleにはc1とc2 2つの値から何かを計算する

3 c1変数にname,hp,apのタプルデータが入っているので分ける処理

6 random.randint(n1,n2) n1からn2の範囲にある適当な値を返す

11 return 関数から戻る 返す値があれば後ろに記述

この場合はwin関数を呼び出してそこから返ってきたものを返す

21 absは()内の数値の絶対値(-をとるだけ)を作成

21 intは数値の小数点をカットして整数にする

30 i.count(",") iの文字列にある","(カンマ)の数

31 n,hp,ap=i[:-1].split(",") iの文字列の改行コードを取ったものを

カンマでわけn hp apに入れる(数が合わないとエラーになる)

32 line+=[(n.replace(" City","Ku"),int(hp),int(float(ap)*10**9))]

nに" City"が入っていれば"Ku”に変換

hpは文字列の数値に整数に変換

apは文字列の数値を少数に変え、10の9乗をかけて最後に整数に変換

したものをタプル(n' ,hp' ,ap')にしてLine配列に追加

34 city[0]に入っている配列を適当に入れ替える

38 next+=[city[0].pop(0)]

city[0]の先頭を取って(削除) next配列に追加する

 

 

そしてこの後、私は気がついた誤字脱字を修正し続ける


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。