Python 3.x 如何创建一段代码,将整数转换为具有序号的字符串?

Python 3.x 如何创建一段代码,将整数转换为具有序号的字符串?,python-3.x,indexing,Python 3.x,Indexing,我一直在尝试创建一个代码块,当给定一个整数时,它输出一个带有序号的字符串 number = int(input('input a number')) number = str(number) if number[-2] == 1: ordinalnumber = str(number) + 'th' elif number[-1] == 1: ordinalnumber = str(number) + 'st' elif number[-1] == 2: ordina

我一直在尝试创建一个代码块,当给定一个整数时,它输出一个带有序号的字符串

number = int(input('input a number'))

number = str(number)

if number[-2] == 1:
    ordinalnumber = str(number) + 'th'
elif number[-1] == 1:
    ordinalnumber = str(number) + 'st'
elif number[-1] == 2:
    ordinalnumber = str(number) + 'nd'
elif number[-1] == 3:
    ordinalnumber = str(number) + 'rd'
else:
    ordinalnumber = str(number) + 'th'

print(ordinalnumber)
我的代码接受一个整数输入,将其转换为字符串,然后将其放入这些if语句中。第一个数字是指在十位数中有一个1的任何数字的末尾有一个“th”。第二个、第三个和第四个表示一个带有1、2或3的数字,其末端分别为“st”、“nd”或“rd”。第五个数字意味着在所有其他数字的末尾加一个“th”

所有内容都只输出(数字)+“th”,或类似于第31位的内容。 我知道这是最后一行代码,后缀是“th”


抱歉,如果这是一个非常愚蠢的问题,我5天前才开始编程。

这是因为您正在进行的比较是一个带字符串的整数
number[-2]
是一个字符串,而
1
是一个整数

number = int(input('input a number'))

number = str(number)

if number[-2] == 1:
    ordinalnumber = str(number) + 'th'
elif number[-1] == 1:
    ordinalnumber = str(number) + 'st'
elif number[-1] == 2:
    ordinalnumber = str(number) + 'nd'
elif number[-1] == 3:
    ordinalnumber = str(number) + 'rd'
else:
    ordinalnumber = str(number) + 'th'

print(ordinalnumber)
因此,要么将数字[-2]与字符串
“1”
进行比较,要么将
数字[-2]
转换为整数
int(数字[-2])


此外,您可能还应该添加一些逻辑来检查数字是否为一位数字,因为如果输入的数字是一位数字,
数字[-2]
比较将导致错误。

这是因为您正在进行的比较是一个带字符串的整数
number[-2]
是一个字符串,而
1
是一个整数

number = int(input('input a number'))

number = str(number)

if number[-2] == 1:
    ordinalnumber = str(number) + 'th'
elif number[-1] == 1:
    ordinalnumber = str(number) + 'st'
elif number[-1] == 2:
    ordinalnumber = str(number) + 'nd'
elif number[-1] == 3:
    ordinalnumber = str(number) + 'rd'
else:
    ordinalnumber = str(number) + 'th'

print(ordinalnumber)
因此,要么将数字[-2]与字符串
“1”
进行比较,要么将
数字[-2]
转换为整数
int(数字[-2])

此外,您可能还应该添加一些逻辑来检查数字是否为一位数字,因为如果输入的数字是一位数字,
number[-2]
比较将导致错误