-2

太陽系の惑星に関する次の情報を考慮して、1 つの辞書を作成します。(私はこれの下に出力を入れました。申し訳ありませんが、これはおそらく無意味なテキスト全体の投稿に慣れていません)

水星

半径 - 2,439.7 km

Distance from the sun - 58 million km

Moons - none

Atmosphere? True

Gas planet? False

金星

Radius - 6,051.8 km

Distance from the sun - 108 million km

Moons - none

Atmosphere? True

Gas planet? False

地球

Radius - 6,371.0 km

Distance from the sun - 150 million km

Moons - Moon

Atmosphere? True

Gas planet? False

火星

Radius - 3,396.2 km

Distance from the sun - 207 million km

Moons - Phobos and Deimos

Atmosphere? True

Gas planet? False

木星

Radius - 69,911 km

Distance from the sun - 483 million km

Moons - Io, Ganymede, Callisto, Europa, Adrastea

Atmosphere? True

Gas planet? True

土星

Radius - 60,268 km

Distance from the sun - 1,400 million km

Moons - Pan, Prometheus, Titan, Phoebe, Rhea

Atmosphere? True

Gas planet? True

天王星

Radius - 25,559 km

Distance from the sun - 3,000 million km

Moons - Miranda, Ariel, Umbriel, Titania, Oberon

Atmosphere? True

Gas planet? True

ネプチューン

Radius - 24,764 km

Distance from the sun - 4,500 million km

Moons - Triton, Nereid, Proteus, Naiad, Thalassa

Atmosphere? True

Gas planet? True

プログラムは、上記の情報を 1 つの辞書に格納し、for ループを使用して辞書の内容を出力します。

サンプル出力:

水星

太陽からの距離 : 58

半径 : 2439.7

ガス惑星?: 間違い

雰囲気?: 真実

月 : []

木星

太陽からの距離 : 483

半径 : 69911

ガス惑星?: 真実

雰囲気?: 真実

衛星 : [「イオ」、「ガニメデ」、「カリスト」、「エウロパ」、「​​アドラステア」]

天王星

太陽からの距離:3000

半径 : 25559

ガス惑星?: 真実

雰囲気?: 真実

衛星 : [「ミランダ」、「アリエル」、「ウンブリエル」、「チタニア」、「オベロン」]

火星

太陽からの距離 : 207

半径 : 3396.2

ガス惑星?: 間違い

雰囲気?: 真実

衛星:[「フォボス」、「ダイモス」]

地球

太陽からの距離 : 150

半径 : 6371.0

ガス惑星?: 間違い

雰囲気?: 真実

月 : ['月']

金星

太陽からの距離 : 108

半径 : 6051.8

ガス惑星?: 間違い

雰囲気?: 真実

月 : []

土星

太陽からの距離:1400

半径 : 60268

ガス惑星?: 真実

雰囲気?: 真実

月 : [「パン」、「プロメテウス」、「タイタン」、「フィービー」、「レア」]

ネプチューン

太陽からの距離:4500

半径 : 24764

ガス惑星?: 真実

雰囲気?: 真実

衛星 : ['Triton', 'Nereid', 'Proteus', 'Naiad', 'Thalassa']

したがって、入力を辞書に入れ、上記のように出力する方法を考えています。辞書に保存しようとしましたが、構文エラーが発生し続けるため、正しく実行していないと思います。 「助けていただければ幸いです!!!、私はこれを数時間見つめてきました..

4

1 に答える 1

1

を使用するように特に指示されていない限り、Dictionaryこのデータを格納するための間違ったデータ構造です。辞書は、本質的にリンクされているデータのキーと値のペアを格納するように設計されています (BookTitle:ISBN など)。

補遺: 「Radius:2439.7」などはキーと値のペアの例ですが、この状況で辞書が不適切になるのは、すべてのペアが「メタ」定義 (この場合はすべての情報) に関連付けられているという事実です。ペアは特異な惑星の一部です)。それが理にかなっていれば。

各惑星には多数のデータ フィールドが関連付けられているため、Planetすべてのデータを 1 つのオブジェクト内にカプセル化するクラスを定義する必要があります。

例:

class Planet:  
    def __init__(self, name, radius, distFromSun, moons, atmosphere, isGasPlanet):
        """Planet Constructor"""
        self.name = name
        self.radius = radius
        self.distFromSun = distFromSun
        self.moons = moons
        self.atmosphere = atmosphere
        self.isGasPlanet = isGasPlanet

    def __str__(self):
        """Overwrites the string output of the class (what gets called by print())""" 

        return str.format("{0}\n"
                          "Distance from the sun: {1}\n"
                          "Radius: {2}\n"
                          "Gas Planet: {3}\n"
                          "Atmosphere: {4}\n"
                          "Moons: {5}\n",
                          self.name,
                          self.distFromSun,
                          self.radius,
                          self.isGasPlanet,
                          self.atmosphere,
                          self.moons)

これにより、好きな惑星を定義して簡単に印刷できます。

merc = Planet("Mercury", 2439.7, 58, [], True, False)

print(merc)

あなたに与えるでしょう。

Mercury
Distance from the sun: 58
Radius: 2439.7
Gas Planet: False
Atmosphere: True
Moons: []

さらに、クラスは拡張可能であり、それらの上に構築することができます。たとえば、AddMoon()惑星オブジェクト内の「月の配列」に新月を追加するメソッドを実装できます。

于 2013-04-03T12:36:56.433 に答える