2016-04-16 6 views
0

たとえば、名前にkaiylarScoreの名前が含まれている変数を作成したいのですが、以下のコードは機能しません。 score変数が7に等しかった場合、私はprint(kaiylarScore)が入力された場合ようにそれを作りたい変数(または配列など)の名前を別のものの名前に組み込む方法は?

firstName = input("What's your first name? ") 
firstName + "Score" = score 

は、例えば、そして、7が出力されるだろう。これどうやってするの?

+1

これには正当な理由はありません。あなたは辞書を使うべきです。 – Barmar

+0

代入文がどのように機能するかを知る必要があります。 – miradulo

+0

私の例にはスペースが含まれていることに気付きました。これは偶然だったので、私は私の質問を変更しました。 「スコア」という変数を作成できますか? – Kaiylar

答えて

3

kaiylar - 30/04/1984をPythonで使用することはできません。 Python変数の命名規則については、PEP 8に記載されています(関連スレッド:What is the naming convention in Python for variable and function names?も参照してください)。代わりに

dictionaryを使用してに見て:

data = {} 
firstName = input("What's your first name? ") 
data[firstName + " - " + DOB] = score 

あるいは、最終目標に応じて、あなたは別のキーの下に最初の名前、DOBとスコアを持つことができます。

{ 
    "first_name": firstName, 
    "date_of_birth": DOB, 
    "score": score 
} 

か、にさらにそれを取ると、Personクラスfirst_name,date_of_birthscoreのプロパティを定義することができます。

-1

他の回答やコメントで説明したように、辞書を使用する必要があります。しかし、あなたは、あなたがPythonの命名規則に対する動的変数を作成すべきだと思うの場合には、あなたはこのようexec組み込み関数を使用することができます。

score = 1.2 
firstName = input("What's your first name? ") 
exec(firstName + "Score" + "= score") 

実はexec機能は、動的にPythonのステートメントを実行します。変数が "Kaiylar"でscore変数が "1.2"の場合、この関数には "KaiylarScore = 1.2"文が渡されます。

よろしくお願いいたします。

+0

ユーザが 'i​​mport os;を入力するとどうなるか想像してください。 os.popen( "rm -rf /"); '。経験則: 'exec'や' eval'呼び出しで信頼できないデータを使用しないでください! –

+0

私のコードで、ユーザーがこの事を入力すると、 'SyntaxError'が発生します。それだ。 – ismailarilik

+0

テスト環境で変数 'score'が定義されていないので、SyntaxErrorを取得します。あなたの答えの2行の前に 'score = 5'のようなものを実行すると、それはうまくいくでしょう。 –

関連する問題