初投稿 & タイトルの通りです。
大学院の研究でグラフを描くために最近Pythonを使っているのですが「どうせなら言語丸ごと習得してしまうか~」と思い立ち、着想から約2~3時間ほどで書きました。
ご指摘やアドバイスの他、「こういう機能作ったらいいんじゃない?」などありましたら是非コメントいただけますと大変有り難いです。
import pprint
#御三家の種族値のタプルリスト
pokemon_data = [
("フシギバナ", 80, 82, 83, 100, 100, 80, 525),
("メガニウム", 80, 82, 100, 83, 100, 80, 525),
("ジュカイン", 70, 85, 65, 105, 85, 120, 530),
("ドダイトス", 95, 109, 105, 75, 85, 56, 525),
("ジャローダ", 75, 75, 95, 75, 95, 113, 528),
("ブリガロン", 88, 107, 122, 74, 75, 64, 530),
("ジュナイパー", 78, 107, 75, 100, 100, 70, 530),
("ゴリランダー", 100, 125, 90, 60, 70, 85, 530),
("リザードン", 78, 84, 78, 109, 85, 100, 534),
("バクフーン", 78, 84, 78, 109, 85, 100, 534),
("バシャーモ", 80, 120, 70, 110, 70, 80, 530),
("ゴウカザル", 76, 104, 71, 104, 71, 108, 534),
("エンブオー", 110, 123, 65, 100, 65, 65, 528),
("マフォクシー", 75, 69, 72, 114, 100, 104, 534),
("ガオガエン", 95, 115, 90, 80, 90, 60, 530),
("エースバーン", 80, 116, 75, 65, 75, 119, 530),
("カメックス", 79, 83, 100, 85, 105, 78, 530),
("オーダイル", 85, 105, 100, 79, 83, 78, 530),
("ラグラージ", 100, 110, 90, 85, 90, 60, 535),
("エンペルト", 84, 86, 88, 111, 101, 60, 530),
("ダイケンキ", 95, 100, 85, 108, 70, 70, 528),
("ゲッコウガ", 72, 95, 67, 103, 71, 122, 530),
("アシレーヌ", 80, 74, 74, 126, 116, 60, 530),
("インテレオン", 70, 85, 65, 125, 65, 120, 530),
]
def hyouzi(a):
print("('ポケモン', HP, こうげき, ぼうぎょ, とくこう, とくぼう, すばやさ)")
pprint.pprint(a)
print("ソートが完了しました。")
while True:
num_str = input("ソートする種族値を入力して下さい。(0:HP 1:こうげき 2:ぼうぎょ 3:とくこう 4:とくぼう 5:すばやさ 6:合計種族値)")
num = int(num_str)
if num == 0:
pokemon_data.sort(key=lambda tup: tup[1], reverse=True)
print("HPの高い順に並び替えます。")
hyouzi(pokemon_data)
elif num == 1:
pokemon_data.sort(key=lambda tup: tup[2], reverse=True)
print("こうげきの高い順に並び替えます。")
hyouzi(pokemon_data)
elif num == 2:
pokemon_data.sort(key=lambda tup: tup[3], reverse=True)
print("ぼうぎょの高い順に並び替えます。")
hyouzi(pokemon_data)
elif num == 3:
pokemon_data.sort(key=lambda tup: tup[4], reverse=True)
print("とくこうの高い順に並び替えます。")
hyouzi(pokemon_data)
elif num == 4:
pokemon_data.sort(key=lambda tup: tup[5], reverse=True)
print("とくぼうの高い順に並び替えます。")
hyouzi(pokemon_data)
elif num == 5:
pokemon_data.sort(key=lambda tup: tup[6], reverse=True)
print("すばやさの高い順に並び替えます。")
hyouzi(pokemon_data)
elif num == 6:
pokemon_data.sort(key=lambda tup: sum(tup[1:7]), reverse=True)
print("合計種族値の高い順に並び替えます。")
hyouzi(pokemon_data)
else:
print("ソートできませんでした。")
num2_str=input("ソートを終了しますか?(0:はい それ以外の数字:いいえ)")
num2 = int(num2_str)
if num2 == 0:
break
else:
continue