153

文字列を整数に追加するこの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

文字列を整数に追加するにはどうすればよいですか?

4

9 に答える 9

185

print最後のステートメントによって引き起こされた問題を修正するには、2 つの方法があります。

str(c)呼び出しの結果をc@jamylak によって正しく示されているように割り当ててから、すべての文字列を連結するか、最後の文字列を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
于 2012-08-07T10:38:04.110 に答える
86

str(c)の新しい文字列表現を返し、それ自体cを変更しませんc

c = str(c) 

おそらくあなたが探しているものです

于 2012-08-07T10:37:09.117 に答える
23

int または float を文字列に連結する場合は、これを使用する必要があります。

i = 123
a = "foobar"
s = a + str(i)
于 2012-08-07T10:37:34.610 に答える
3

他の回答とは別に、使用することもできます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

詳細については、ドキュメントをご覧ください。

于 2018-07-21T15:57:40.183 に答える
1

「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に非常に慣れていない初心者にとっては起こります.

于 2016-12-10T23:20:36.237 に答える
1

これは、変数を「、」で区切るこのエラーを取り除くために私が行ったことです。

# Applying BODMAS 
arg3 = int((2 + 3) * 45 / - 2)
arg4 = "Value "
print arg4, "is", arg3

ここに出力があります

値は -113

(プログラムはコード: 0 で終了しました)

于 2017-09-07T08:59:47.513 に答える
1

最も簡単で混乱の少ない解決策:

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/で見つけました

于 2016-06-26T11:28:52.080 に答える