计算机科学界第九课的问题2要求用户仅使用4个单独的if / elif情况将单个数字输入更改为其序数形容词。这是我的以下代码,它给了我'第1'而不是'1st'..
x = input()
if x == 1:
print (1+'st')
elif x == 2:
print (x+'nd')
elif x == 3:
print (x+'rd')
else:
print (x+'th')
如果我将x = input()
更改为x = int(input())
,则会出现以下错误:
TypeError:+:'int'和'str'
的不支持的操作数类型
答案 0 :(得分:1)
正如评论所示,您不能将整数与字符串组合在一起。 但是,您可以将字符串添加到另一个字符串。
这就是我的意思:
当您尝试将数字与字符串组合在一起时,即1 + 'st'
,您会获得TypeError: unsupported operand type(s) for +: 'int' and 'str'
但是,如果您尝试将数字 typecasted 与另一个字符串(例如str(1) + 'st'
)组合在一起,则会获得所需的输出1st
。
同样,在您的代码中,您有x + 'st'
,这是整数和字符串之间的非法添加。相反,请尝试打印x
的类型转换版本,我称之为x_str
:
x = int(input())
x_str = str(x)
if x == 1:
print (x_str+'st')
elif x == 2:
print (x_str+'nd')
elif x == 3:
print (x_str+'rd')
else:
print (x_str+'th')