2017-03-26 23 views
2

私はダイスを巻くプログラムを書いています。これは私のコードです:私はプログラムを実行するとtypeerror:型ではなく、文字列でなければなりません

import random 

Number_of_sides = input("How many sides should the die have?") 
Number_of_sides = int 

print("OK, the number of sides on the die will be" + Number_of_sides) 

number = random.randit(1, Number_of_sides) 

print(number) 

私はこのエラーを取得する:

File "die.py", line 6, in <module> 
    print("OK, the number of sides on the die will be" + Number_of_sides) 
TypeError: must be str, not type 

私の質問です:何が間違っていたと私はそれをどのように修正することができますか?これを避けるにはどうすればいいですか?

+0

あなたは 'int'を連結しようとしています。 'str(Number_of_sides)'を使い、次の行を取り除いてください: 'Number_of_sides = int' – NFriesen

+0

多くのことが間違っています。 'Number_of_sides = int'とは何ですか?なぜタイプに割り当てているのですか?また、連結する前に文字列にキャストする必要があります。 – Li357

+0

@NFriesen間違っているだけではありません... – Li357

答えて

1

文字列をintに正しくキャストしていません。

import random 

number_of_sides = input("How many sides should the die have?") 
number_of_sides_int = int(number_of_sides) 

print("OK, the number of sides on the die will be " + number_of_sides) 

number = random.randint(1, number_of_sides_int) 

print(number) 

むしろint型に文字列をキャストするよりも、あなたはPythonのタイプintに変数number_of_sidesを作っています。だから、エラーが混乱している可能性がありますが、Python intはPython typeです。

+0

@BurhanKhalid何ですか?なぜこれは動作しませんでしたか? –

1

問題は、文の順序が間違っていることです。

確認ステートメントを印刷した後に値を変換して、ランダム関数で正しく使用する必要があります。

あなたはそれを印刷する前に、あなたがそれを変換した場合、Pythonは文字列と一緒に数最後

を追加することはできませんので、あなたがTypeErrorを得るでしょうが、あなたのランダムなコールの小さなタイプミスがあり、この方法はrandintではありませんrandit。一緒にすべてのこれらを置く

、あなたが持っている:

import random 

Number_of_sides = input("How many sides should the die have?") 
# Number_of_sides = int - not here. 
print("OK, the number of sides on the die will be" + Number_of_sides) 

Number_of_sides = int(Number_of_sides) # - this is where you do the conversion 
number = random.randint(1, Number_of_sides) # small typo, it should be randint not randit 

print(number) 
関連する問題