整数に文字列を追加するこのpythonプログラムがあります。
a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b
a = int(a)
b = int(b)
c = a + b
str(c)
print "a + b as integers: " + c
私はこのエラーが出ます:
Python: TypeError: cannot concatenate 'str' and 'int' objects
整数に文字列を追加する方法
最後のprint
ステートメントによって引き起こされる問題を解決するには2つの方法があります。
str(c)
呼び出しの結果を@jamylakで正しく示されるようにc
に代入してから、すべての文字列を連結するか、最後のprint
を単にこれで置き換えることができます。
print "a + b as integers: ", c # note the comma here
その場合
str(c)
必要ではなく、削除することができます。
サンプル実行の出力:
Enter a: 3
Enter b: 7
a + b as strings: 37
a + b as integers: 10
と:
a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b # + everywhere is ok since all are strings
a = int(a)
b = int(b)
c = a + b
print "a + b as integers: ", c
str(c)
はc
のnew文字列表現を返し、c
自体は変更しません。
c = str(c)
おそらくあなたが探しているものです
Intまたはfloatを文字列に連結したい場合は、これを使用する必要があります。
i = 123
a = "foobar"
s = a + str(i)
c = a + b
str(c)
実際、この最後の行では、変数cの型を変更していません。もしあなたがそうするなら
c_str=str(c)
print "a + b as integers: " + c_str
それはうまくいくはずです。
最も簡単で混乱の少ない解決策:
a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: %s" % a + b
a = int(a)
b = int(b)
c = a + b
print "a + b as integers: %d" % c
私はこれを見つけました http://freecodeszone.blogspot.com/
これで、変数を "、"で区切っているエラーをなくすことができました。
# Applying BODMAS
arg3 = int((2 + 3) * 45 / - 2)
arg4 = "Value "
print arg4, "is", arg3
これが出力です
(プログラムはコード0で終了しました)
"TypeError: 'str'と 'int'オブジェクトを連結できません"というエラーメッセージも表示されました。印刷時に変数の周囲にstr()を追加するのを忘れただけです。これが私のコードです:
def main():
rolling = True; import random
while rolling:
roll = input("ENTER = roll; Q = quit ")
if roll.lower() != 'q':
num = (random.randint(1,6))
print("----------------------"); print("you rolled " + str(num))
else:
rolling = False
main()
私は知っていますが、それはばかげた間違いでしたが、私自身のようにPythonに非常に不慣れな初心者にとっては、それは起こります。
文字列関数を使ってint
をstr
に変換することができます。
user = "mohan"
line = str(50)
print(user + "typed" + line + "lines")
他の答えとは別に、format()
を使うこともできます。
print("a + b as integers: {}".format(c))
例えば -
hours = 13
minutes = 32
print("Time elapsed - {} hours and {} minutes".format(hours, minutes))
出力になります - Time elapsed - 13 hours and 32 minutes