2017-02-20 11 views
-1

これはおそらく間違った方法に取り組んでいますが、行2では印刷文字列内の2つのユーザー入力を減算しようとしています。文字列内の2つの整数を減算する方法

これは、ユーザーが金額を選択して最初に行ってからコンピュータを再生するニムサムゲームのためのものです。

def setup(startamt, userturn): 
    print(str("there are " + startamt - userturn + " balls left")) 

def main(): 
    startamt = input("How many balls do you want to start with?(15 or more) ") 
    userturn = input("How many balls will you take?(1-4) ") 
    setup(startamt, userturn) 
+0

を動作するようですあなたがint' 'に' startamt'と 'userturn'をキャストする必要があり、現在、彼らはstr'タイプ – ZdaR

+0

@Zdar'のものであり、なぜあなたはコメントで答えていませんあなたの答えのセクションに? –

+0

@MaksimKnellerいくつかの質問には軽微な誤りや訂正が含まれていますので、私はコメントセクションが好きで、特別な質問についてはAnswersセクションを保存しています; – ZdaR

答えて

0

2行目には、startamt - userturnがそれぞれ文字列として評価されています。

は、次のいずれかを行うことができます。よりPython的である

print("there are " + int(startamt) - int(userturn) + " balls left")) 

または使用して文字列フォーマットを:

print("there are {} balls left".format(int(startamt) - int(userturn))) 
+0

'startamt'と' userturn'は文字列です。 – Daniel

+0

@Daniel、ありがとう、私はintとしてキャストするように更新しました。 –

+0

@ JoshP、それぞれをint()にキャストしましたか?投稿を編集して新しいコードを追加できますか? –

1

最初の問題は、これを行うには、input()は、文字列(str)オブジェクトを返すことです(int())または浮動小数点(float())の数値に変換する必要があります。

あなたは3.6になっているので、リテラル文字列補間を使用できます。例えば:

startamt = "52" 
userturn = "9" 
print(f"there are {str(int(startamt) - int(userturn))} balls left") 

先行fは、我々は{ }内部で行われる補間を使用して示しています。

+0

ありがとう、私は意図せずに嘘をつきました、私は3.5を使用します –

+0

@ JoshP:これは大丈夫です。 – cdarke

0

これは

def setup(startamt, userturn): 

    print("there are", str((int(startamt) - int(userturn))), "balls left" 

def main(): 
    startamt = input("How many balls do you want to start with?(15 or more) ") 
    userturn = input("How many balls will you take?(1-4) ") 
    setup(startamt, userturn) 


main() 
関連する問題