python如何输入任意三个数,通过函数的调用,要求从大到小排列

python如何输入任意三个数,通过函数的调用,要求从大到小排列

img


def sort(a, b, c):
 
    nums = [a, b, c]
    nums.sort(reverse=True)
    return nums
a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
c = int(input("请输入第三个数字:"))

sorted_nums = sort(a, b, c)
print("从大到小排列的结果为:", sorted_nums)

csdn不是有一大堆吗,都是现成的,如果是浮点数,自己修改格式就可以

img


def sort_numbers(a, b, c):
    numbers = [a, b, c]
    numbers.sort(reverse=True)
    return numbers
 
nums = input('请输入三个数字,用空格分隔:\n').split()
num1, num2, num3 = map(int, nums)

sorted_nums = sort_numbers(num1, num2, num3)
print('从大到小排列:', sorted_nums)

参考代码:

def sort_numbers():  
    num1 = float(input("请输入第一个数字: "))  
    num2 = float(input("请输入第二个数字: "))  
    num3 = float(input("请输入第三个数字: "))  
  
    if num1 >= num2 and num1 >= num3:  
        largest = num1  
    elif num2 >= num1 and num2 >= num3:  
        largest = num2  
    else:  
        largest = num3  
  
    if largest == num1:  
        if num2 > num3:  
            middle = num2  
            smallest = num3  
        else:  
            middle = num3  
            smallest = num2  
    elif largest == num2:  
        if num1 > num3:  
            middle = num1  
            smallest = num3  
        else:  
            middle = num3  
            smallest = num1  
    else:  
        if num1 > num2:  
            middle = num1  
            smallest = num2  
        else:  
            middle = num2  
            smallest = num1  
  
    print("从大到小排序:", largest, middle, smallest)  
  
sort_numbers()

一行解决。

print(sorted([eval(input(f"请输入第{x}个数字:")) for x in range(1, 4)], reverse=True))

加点提示就是:

print("排序后的数字为:", " >= ".join(map(str, sorted([eval(input(f"请输入第{x}个数字:")) for x in range(1, 4), reverse=True))))

img


print('----请输入三个整数----')
print('---实现从大到小排列---')
 
"""录入信息提示"""
a=int(input('a的值:'))        #input默认输入类型是字符串
b=int(input('b的值:'))        #所以要用类型转换
c=int(input('c的值:'))
print("排列前:",a,b,c)
 
"""固定条件"""
if a<b:             #始终让a大于b
    a,b=b,a
    
'''判断'''
if b>c:          #前提条件是a>b,如果b>c的话,那就是a>b>c
    print("排列后:",a,b,c)
elif a>c:       #前提条件是a>b,如果b<c的话,那就是a>c>b
    print("排列后:",a,c,b)
else:            #前提条件a>b,如果a<c的话,那就是c<a<b
    print("排列后:",c,a,b)
print('----------结束----------')

def sort_numbers(a, b, c):
    # 使用列表存储输入的三个数
    numbers = [a, b, c]
    # 使用列表的sort方法进行排序,默认为升序
    numbers.sort(reverse=True)
    return numbers

# 输入三个数
num1 = float(input("请输入第一个数: "))
num2 = float(input("请输入第二个数: "))
num3 = float(input("请输入第三个数: "))

# 调用函数进行排序
sorted_nums = sort_numbers(num1, num2, num3)

# 输出排序结果
print("从大到小排序结果为:", sorted_nums)

这段代码定义了一个名为sort_numbers的函数,该函数接受三个参数a,b和c,并将它们存储在一个列表中。然后,使用列表的sort方法对这个列表进行降序排序,最后返回排序后的列表。
在主程序中,首先通过input函数获取用户输入的三个数num1,num2和num3。然后,调用sort_numbers函数,并将这三个数作为参数传递给它。最后,将排序后的结果打印输出。

之前写过 需要吗

def sort_descending(a, b, c):
    nums = [a, b, c]
    nums.sort(reverse=True)
    return nums

a = eval(input("请输入第一个数:"))
b = eval(input("请输入第二个数:"))
c = eval(input("请输入第三个数:"))

result = sort_descending(a, b, c)
print(result)


首先定义一个函数sort_descending,三个参数表示输入的数字;函数内将abc三个数存放在一个列表中,赋值给变量nums,使用列表排序的函数nums.sort(reverse=True),其中reverse=True表示倒序,函数最后输出排序后的返回值。


def sort_numbers(a, b, c):
    # 将三个数放到一个列表中
    numbers = [a, b, c]
    # 使用 sorted 函数对列表进行排序,reverse=True 表示从大到小排序
    sorted_numbers = sorted(numbers, reverse=True)
    # 返回排序后的列表
    return sorted_numbers

# 依次输入三个数
num1 = input("请输入第一个数:")
num2 = input("请输入第二个数:")
num3 = input("请输入第三个数:")

# 将输入的字符串转换为对应的数值类型
try:
    num1 = int(num1)
    num2 = int(num2)
    num3 = int(num3)
except ValueError:
    try:
        num1 = float(num1)
        num2 = float(num2)
        num3 = float(num3)
    except ValueError:
        print("输入的不是数值类型!")
        exit()

# 调用函数进行排序
sorted_nums = sort_numbers(num1, num2, num3)

# 输出排序后的结果
print("从大到小排序后的结果为:", sorted_nums)

简单的直接用float转类型了:nums.sort(reverse=True)

while True:
    try:
        nums = input('请输入多个数字,空格分隔').split(' ')
        if 'exit' in nums:
            break
        nums = [float(x) for x in nums]
        print(f'排序前:{nums}')
        nums.sort(reverse=True)
        print(f'排序后:{nums}')
    except ValueError as e:
        print('输入值异常')

可以使用Python内置的sorted()函数来实现从大到小的排序,然后封装为一个函数,代码如下:

将以下代码保存为一个.py文件,然后在命令行中运行该文件即可。在交互模式下,可以使用input()函数来获取用户输入的三个数,代码如下:

def sort_numbers(a, b, c):
    numbers = [a, b, c]
    sorted_numbers = sorted(numbers, reverse=True)
    return sorted_numbers

print("欢迎使用数字排序脚本!")
while True:
    a = float(input("请输入第一个数:"))
    b = float(input("请输入第二个数:"))
    c = float(input("请输入第三个数:"))

    result = sort_numbers(a, b, c)
    print("从大到小排列的结果为:", result)

    choice = input("是否继续排序?(Y/N)")
    if choice.upper() == "N":
        break

print("感谢使用数字排序脚本!")

在命令行中运行该文件后,即可进行数字排序,并且可以根据用户的选择来决定是否继续排序。

确实是网上一大堆,用gtp给你找了一个demo

def sort_numbers(num1, num2, num3):  
    """  
    输入三个数,将其从大到小排序并输出  
    """  
    # 交换两个数  
    if num1 > num2:  
        num1, num2 = num2, num1  
    if num1 > num3:  
        num1, num3 = num3, num1  
      
    # 交换两个数  
    if num2 > num3:  
        num2, num3 = num3, num2  
    if num1 > num2:  
        num1, num2 = num2, num1  
      
    # 输出排序结果  
    print(num1, num2, num3)  
  
# 测试函数  
sort_number_test = input("请输入三个数,用空格分隔:")  
sort_numbers(int(sort_number_test.split()[0]), int(sort_number_test.split()[1]), int(sort_number_test.split()[2]))


def sort_numbers(num_list):
    """
    输入一个列表,将列表中的元素从小到大排序
    """
    return sorted(num_list, reverse=True)

def main():
    """
    从用户输入中获取三个数字,并调用 sort_numbers 函数进行排序
    """
    num_list = []
    for i in range(3):
        num = float(input("请输入一个数字:"))
        num_list.append(num)
    sorted_num_list = sort_numbers(num_list)
    print("从大到小排序后的结果为:", sorted_num_list)

if __name__ == '__main__':
    main()


 
def sort(a, b, c):
 
    nums = [a, b, c]
    nums.sort(reverse=True)
    return nums
a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
c = int(input("请输入第三个数字:"))
 
sorted_nums = sort(a, b, c)
print("从大到小排列的结果为:", sorted_nums)
 

三个数设为 a,b,c,若 a 大于 b,则交换 a 和 b 的值;若 c 小于 a,则交换 a 和 c 的值,若 c 大于 a,则继续比较 c 和 b 的大小,c 小于 b 则交换 b 和 c 的值,最后 a,b,c 就是从小到大有序的。


def sort_numbers(a, b, c):
    """将三个数从大到小排列"""
    numbers = [a, b, c]
    sorted_numbers = sorted(numbers, reverse=True)  # 使用sorted函数进行排序,reverse=True表示降序排列
    return sorted_numbers
 # 调用函数并输入三个数
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
c = int(input("请输入第三个数:"))
 # 调用函数进行排序并输出结果
sorted_numbers = sort_numbers(a, b, c)
print(sorted_numbers)

您可以看看这个代码,运用打擂台的算法:

# 打擂台算法
def solve(l):
    for i in range(0, len(l)):
        for j in range(i, len(l)):
            if l[i] < l[j]:
                l[i], l[j] = l[j], l[i]
    return l

num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
num3 = int(input('请输入第三个数:'))
lst = [num1, num2, num3]
result = solve(lst)
print(result)

或者使用这个代码,运用内置函数sort():

# 使用Python内置的sort()函数
def solve(l):
    l.sort(reverse=True)
    return l

num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
num3 = int(input('请输入第三个数:'))
lst = [num1, num2, num3]
result = solve(lst)
print(result)

或者使用冒泡排序:

# 冒泡排序
def solve(l):
    for i in range(3):
        for n in range(2-i):
            if l[n] < l[n+1]:
                l[n], l[n+1] = l[n+1], l[n]
    return l

num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
num3 = int(input('请输入第三个数:'))
lst = [num1, num2, num3]
result = solve(lst)
print(result)

希望这些代码对您有帮助,各种算法各有优缺点,您可以根据您的需要来选择三段代码中合适的一段代码,麻烦点个采纳的按钮,谢谢啦


# 获取用户输入
num1 = float(input("请输入第一个数字: "))
num2 = float(input("请输入第二个数字: "))
num3 = float(input("请输入第三个数字: "))

# 使用 sorted() 函数对数字进行排序
sorted_nums = sorted([num1, num2, num3])

# 输出排序结果
print("排序结果为:", sorted_nums)

这种一般就是书上的简单例题,看看书籍吧

def sort_descending(x, y, z):
    # 利用元组和sorted函数快速实现排序
    sorted_tuple = sorted((x, y, z), reverse=True)
    # 将排序后的元组转换为列表
    sorted_list = list(sorted_tuple)
    # 返回从大到小排列的列表
    return sorted_list

# 输入三个数
a = float(input("请输入第一个数:"))
b = float(input("请输入第二个数:"))
c = float(input("请输入第三个数:"))
# 调用函数进行排序
sorted_numbers = sort_descending(a, b, c)
# 输出结果
print("从大到小排序的结果为:", sorted_numbers)

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

def sort_num(a, b, c):
    # 使用列表推导式将三个参数构成列表,然后调用列表自带的 sort() 方法进行排序
    nums = [a, b, c]
    nums.sort()

    # 返回排序后的结果
    return nums

# 获取用户输入的三个数字
num1 = int(input("请输入第一个数字: "))
num2 = int(input("请输入第二个数字: "))
num3 = int(input("请输入第三个数字: "))

# 调用 sort_num() 函数对用户输入的数字进行排序
result = sort_num(num1, num2, num3)

# 输出排序后的结果
print(result)

可以通过定义一个函数来实现输入三个数,然后按照从大到小的顺序输出的功能。具体步骤如下:

  1. 定义一个函数,接受三个参数作为输入。

  2. 在函数内部,使用 if/else 语句或者三目表达式判断这三个数的大小,以确定它们的排列顺序,并将它们存储到一个列表中。

  3. 返回排好序的列表。

代码如下

def sort_numbers(num1, num2, num3):
    sorted_nums = [num1, num2, num3]
    sorted_nums.sort(reverse=True)  # 从大到小排序
    return sorted_nums

# 调用函数并输出结果
a, b, c = input("请输入三个数字,以空格分隔:").split()
result = sort_numbers(int(a), int(b), int(c))
print(result)

在上述代码中,我们首先定义了 sort_numbers 函数来对输入的三个数字进行排序。在这个函数中,我们首先创建了一个包含三个输入数字的列表,然后使用 Python 的 sort() 方法和 reverse=True 参数将这个列表按照从大到小的顺序排序。最后,我们返回排好序的列表。

在主程序中,我们首先使用 input() 函数要求用户输入三个数字,并利用字符串的 split() 方法将这些数字分开。然后,我们将这些数字作为参数传递给 sort_numbers() 函数,计算出排好序的列表并存储在 result 变量中。最后,我们使用 print() 函数输出结果。
如需其他帮助直接联系我, 我这有py 的教程

img