将单数字整数输入更改为序数

时间:2015-12-03 04:13:36

标签: python

计算机科学界第九课的问题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'

的不支持的操作数类型

1 个答案:

答案 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')