zoukankan      html  css  js  c++  java
  • python学习——练习题(5)

    """
    题目:输入三个整数x,y,z,请把这三个数由小到大输出。
    """
    
    
    def inputInt(i):
        """
        输入并判断输入的是否是整数,不是则重新输入,是则返回输入的整数
        :param i:
        :return:
        """
        while True:
            a = input("整数%d:" % i)
            if a.isdigit():
                a = int(a)
                break
            else:
                print("输入错误,请重新输入")
        return a
    
    
    def sort1(arr):
        """
        利用数组排序输出
        :param arr:
        :return:
        """
        print("输出一", end=":")
        arr.sort()
        print(arr)
    
    
    def sort2(arr):
        """
        直接一个一个的比较
        :param arr:
        :return:
        """
        print("输出二", end=":")
        a = arr[0]
        if a > arr[1]:
            b = a
            a = arr[1]
        else:
            b = arr[1]
        if a > arr[2]:
            c = a
        else:
            c = arr[2]
        print(a, end=",")
        if b > c:
            print(c, end=",")
            print(b)
        else:
            print(b, end=",")
            print(c)
    
    
    def sort3(arr):
        """
        利用sorted函数,排序字典的方式计算,这个函数用的很不习惯
        sorted(d, key=d.get)的结果居然是d的key列表
        sorted(...)
        sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
        可以看到其中第一个参数是可迭代对象,后面的参数都是具有默认值的,重点阐述如下:
        1、cmp,比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0
    
        2、key,主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序
    
        3、reverse,是否反转,默认情况下不反转
        :param arr:
        :return:
        """
        print("输出三", end=":")
        d = {1: arr[0], 2: arr[1], 3: arr[2]}
        for w in sorted(d, key=d.get):
            print(d[w], end=",")
    
    
    def sort4(arr):
        """
        自己写个冒泡排序,好久没写了
        :param arr:
        :return:
        """
        print("
    输出四", end=":")
        for i in range(0, len(arr)):
            for j in range(i + 1, len(arr)):
                if arr[i] > arr[j]:
                    a = arr[i]
                    arr[i] = a[j]
                    a[j] = a
        print(arr)
    
    
    def sort5(arr):
        """
        利用一个变量多个赋值来计算
        :param arr:
        :return:
        """
        print("输出五", end=":")
        if arr[0] > arr[1]:
            arr[0], arr[1] = arr[1], arr[0]
        if arr[0] > arr[2]:
            arr[0], arr[2] = arr[2], arr[0]
        if arr[1] > arr[2]:
            arr[1], arr[2] = arr[2], arr[1]
        print(arr)
        
    
    def sort6(arr):
        """
        利用min函数来输
        :param arr:
        :return:
        """
        print("输出六", end=":")
        while len(arr) > 0:
            a = min(arr)
            arr.remove(a)
            if len(arr) == 0:
                print(a)
            else:
                print(a, end=",")
    
    
    def answer():
        """
        先判断输入的是否是整数,然后再排序输出
        :return:
        """
        arr = []
        for i in range(1, 4):
            arr.append(inputInt(i))
        sort1(arr)
        sort2(arr)
        sort3(arr)
        sort4(arr)
        sort5(arr)
        sort6(arr)
    
    
    answer()
    

      

  • 相关阅读:
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    Live2D 看板娘
    重读《深入理解Java虚拟机》三、Java虚拟机执行的数据入口(类文件结构)
  • 原文地址:https://www.cnblogs.com/longphui/p/8004310.html
Copyright © 2011-2022 走看看