Python:如何用两种方法对一个数字进行排序,然后减去这些数字

2024-04-28 20:45:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我是编程新手,有一个Python问题!
我想做的是:

  1. 让用户输入一个数字(例如4512)

  2. 对这个数字进行排序,从最大的数字(5421)开始。

  3. 排序相同的数字,但从最小的数字(1245)开始。

  4. 减去两个数字(5421-1245)

  5. 打印结果

以下是我尝试过的:

print("type in a number")
number = (input())

start_small = "".join(sorted(number))

start_big = "".join(sorted(number, reverse=True))

subtraction = ((start_big)-(start_small))
print(subtraction)

我发现错误了

^{pr2}$

Tags: 用户innumber排序type编程数字start
3条回答

你在做算术之前忘了把数字转换成整数。将做减法的行改为

subtraction = int(start_big) - int(start_small)

试试这个

number = input('Please enter a number')

number = sorted(number, reverse=True)

number = ''.join(number)

print(int(number) - int(number[::-1]))

^{cd1>}反转字符串,这是python的一个特性,称为切片,通常切片的语法是 [start:stop:step]所以,将前两个参数留空,最后一个参数填充-1,告诉我们通过负1(从最后一个元素开始)逐步遍历列表,到索引为^{{cd3>}的第二个元素到最后一个元素,直到它到达字符串的末尾

iterables也可以被切片,这样这个技术将在元组和列表上工作

关于这个问题有几个答案,可以解释更多关于切片Explain Python's slice notation

尝试:

print("type in a number")
number = input()

start_small = "".join(sorted(str(number)))

start_big = "".join(sorted(str(number), reverse=True))

subtraction = int(start_big)-int(start_small)
print(subtraction)

使用Python2.7。您必须使用str()int()

相关问题 更多 >