Python 将一位数整数输入更改为序数

Python 将一位数整数输入更改为序数,python,Python,第九课关于计算机科学圈的问题2要求用户仅使用4个单独的if/elif案例,将输入的一位数更改为其序数形容词。这是我下面的代码,它给了我“1th”而不是“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()),则会出现以下

第九课关于计算机科学圈的问题2要求用户仅使用4个单独的if/elif案例,将输入的一位数更改为其序数形容词。这是我下面的代码,它给了我“1th”而不是“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+'st'
,您会得到一个
TypeError:+:'int'和'str'的操作数类型不受支持。

但是,如果您尝试将类型转换为字符串的数字与另一个数字组合,如
str(1)+“st”
,则会得到所需的输出,
1st

类似地,在代码中有
x+'st'
,这是整数和字符串之间的非法加法。相反,试着打印一个打印版本的
x
,我称之为
x\u 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')

不能连接整数和字符串。在将整数连接到字符串时,必须对整数使用类似于
str.format()
或调用
str()
。另外,我假设这是Python3,因为
input()
返回一个字符串。如果int(x)==1:,你只需做
if int(x)==1:
就可以解决这个问题。@michaelpri我正在尝试
if int(x)==1:
,同时更改其余的elif案例,但它不起作用。我对提供的其他信息感到困惑。你能举个例子吗?:)另外请注意,
21th
不好。@erip这只适用于单个数字。@Raylon这不是您的代码所说的。tyvm寻求帮助!我很感激,也理解你现在说的话。但是,使用该代码仍然会在网站测试中给我以下错误:未通过测试。请检查下面的详细信息,然后重试。测试用例1的结果(共5个)-输入:1,程序在没有崩溃的情况下执行。程序输出:1次。应该是正确的输出:1st.Yah,此代码仅在Python2中有效。但正如你所说,它在python3上输出了第1个。我刚刚修改了python3的代码,它现在应该可以工作了。很高兴它有帮助!现在能用了吗?如果是,只需单击“检查”标记即可显示您已解决此线程。:)