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()
    

      

  • 相关阅读:
    【校招面试 之 C/C++】第23题 C++ STL(五)之Set
    Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".
    Redhat Linux安装JDK 1.7
    ORA-10635: Invalid segment or tablespace type
    Symantec Backup Exec 2012 Agent for Linux 卸载
    Symantec Backup Exec 2012 Agent For Linux安装
    You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
    YourSQLDba介绍
    PL/SQL重新编译包无反应
    MS SQL 监控数据/日志文件增长
  • 原文地址:https://www.cnblogs.com/longphui/p/8004310.html
Copyright © 2011-2022 走看看