0

1~10の番号を付けた名前のリストを作成しました。ユーザーが数字 (1 ~ 10) を入力して名前を選択できるようにしたい。次のコードがありますが、まだ動作しません。私はpythonが初めてです。助けてくれてありがとう

def taskFour():

    1 == Karratha_Aero
    2 == Dampier_Salt
    3 == Karratha_Station
    4 == Roebourne_Aero
    5 == Roebourne
    6 == Cossack
    7 == Warambie
    8 == Pyramid_Station
    9 == Eramurra_Pool
    10 == Sherlock


    print''
    print 'Choose a Base Weather Station'
    print 'Enter the corresponding station number'
    selection = int(raw_input('Enter a number from: 1 to 10'))
    if selection == 1:
        selectionOne()
    elif selection == 2:
        selectionTwo()
    elif selection == 3:
        selectionThree()
4

3 に答える 3

5

あなたはアンチパターンに従っています。100 万の異なるステーション、またはステーションごとに複数のデータがある場合、どうしますか?

selectionOne()すべてをselectionOneMillion()手動で行うことはできません。

このようなものはどうですか:

stations = {'1': "Karratha_Aero",
            '2': "Karratha_Station",
            '10': "Sherlock"}

user_selection = raw_input("Choose number: ")

print stations.get(user_selection) or "No such station"

入出力:

1 => Karratha_Aero
10 => Sherlock
5 => No such station
于 2013-04-30T13:19:42.613 に答える
2

まず、実際のリストが必要です。現在持っているもの ( 1 == Name) は、リストでも有効な構文でもありません (それぞれの名前にちなんで名付けられた変数がない限り)。リストを次のように変更します。

names = ['Karratha_Aero', 'Dampier_Salt', 'Karratha_Station', 'Roebourne_Aero', 'Roebourne', 'Cossack', 'Warambie', 'Pyramid_Station', 'Eramurra_Pool', 'Sherlock']

次に、下部のコードを次のように変更します。

try:
  selection = int(raw_input('Enter a number from: 1 to 10'))
except ValueError:
  print "Please enter a valid number. Abort."
  exit
selection = names[selection - 1]

selectionユーザーの選択の名前になります。

于 2013-04-30T13:13:13.667 に答える
0

これがあなたのための実用的なコードです:

def taskFour():
    myDictionary={'1':'Name1','2':'Name2','3':'Name3'}
    print''
    print 'Choose a Base Weather Station'
    print 'Enter the corresponding station number'
    selection = str(raw_input('Enter a number from: 1 to 10'))
    if selection in myDictionary:
        print myDictionary[selection]
        #Call your function with this name "selection" instead of print myDictionary[selection] 

taskFour()
于 2013-04-30T13:15:05.720 に答える