我输入了这段代码,但我看不出它有什么问题。
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)
它一直给我“无法将'int'对象隐式转换为str”,即使我将整数转换为字符串
请帮助这个菜鸟吗?
答案 0 :(得分:1)
试试这个:
>>> number='5'
>>> if raw_input('enter number:')!=number:
... print('Nope. The number I was thinking of was {}'.format(number))
或者:
>>> number=5
>>> if int(raw_input('enter number:'))!=number:
... print('Nope. The number I was thinking of was {}'.format(number))
使用format method,您不需要进行显式类型转换来打印它,因为您没有连接两个字符串。您需要确保在if语句中将字符串与字符串或int与int进行比较。
(如果您使用的是Python 3,raw_input
为input的功能相同......)
答案 1 :(得分:0)
您只需将print
放在if
区块内。
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was ' + number)
在您的原始代码中,即使您猜对了,它也会打印出来,这意味着if
块没有执行,因此number
仍然是一个整数。
您还可以使用字符串格式来避免将number
转换为字符串。
print('Nope. The number I was thinking of was %d' % number)
drewk提到了较新的字符串格式化方法。