python學習——練習題(5)

來源:互聯網
上載者:User

標籤:sort   sdi   函數   [1]   規則   冒泡   eve   one   就是   

"""題目:輸入三個整數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 adef 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("\n輸出四", 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()

  

python學習——練習題(5)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.