私は単純なコードを試して、誰かの名前と年齢を取得し、21歳になったら知らせてくれました...ネガなどを考慮せず、ただランダムに。
この'int' object is not subscriptable
エラーが引き続き発生します。
name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
x = 0
int([x[age1]])
twentyone = 21 - x
print "Hi, " + name1+ " you will be 21 in: " + twentyone + " years."
問題は次のとおりです。
int([x[age1]])
あなたが欲しいのは
x = int(age1)
また、出力用にintを文字列に変換する必要があります...
print "Hi, " + name1+ " you will be 21 in: " + str(twentyone) + " years."
完全なスクリプトは次のようになります。
name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
x = 0
x = int(age1)
twentyone = 21 - x
print "Hi, " + name1+ " you will be 21 in: " + str(twentyone) + " years."
x = 0
と入力すると、新しいint
変数(名前)が作成され、それにゼロが割り当てられます。
x[age1]
を入力すると、x
が配列であるかのように、age1
'番目のエントリにアクセスしようとしています。
x = 0
を記述するとき、x
はint ...です。したがって、x
はint
であるため、x[age1]
はできません。
ここで何をしようとしていますか:int([x[age1]])
??意味がない。
年齢の入力をint
としてキャストする必要があります。
name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
twentyone = 21 - int(age1)
print "Hi, %s you will be 21 in: %d years." % (name1, twentyone)
まず、age1をintに変換する必要があります。そのため、マイナスを実行できます。その後、結果を表示用の文字列に戻します。
name1 = raw_input("What's your name? ")
age1 = raw_input ("how old are you? ")
twentyone = str(21 - int(age1))
print "Hi, " + name1+ " you will be 21 in: " + twentyone + " years."
さて、これらの答えはすべて正しいですが、ここにこれを行うより現代的な方法があります!
name1 : str = input("What's your name? ")
age1 : int = int(input ("how old are you? "))
twentyone : int = 21 - age1
print('Hi, {}, you will be 21 in: {} years'.format(name1, age1))
name1 = input("What's your name? ")
age1 = int(input ("how old are you? "))
twentyone = str(21 - int(age1))
if age1<21:
print ("Hi, " + name1+ " you will be 21 in: " + twentyone + " years.")
else:
print("You are over the age of 21")