欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

7個(gè)關(guān)于Python的經(jīng)典基礎(chǔ)案例

 更新時(shí)間:2021年11月06日 09:45:15   作者:小小程序員ol  
這篇文章主要給大家分享 7個(gè)關(guān)于Python的經(jīng)典基礎(chǔ)案例,列表排序、調(diào)換字典鍵值、刪除列表中的重復(fù)元素、輸出質(zhì)數(shù)、判斷是一年中第幾天、猜數(shù)字、進(jìn)制轉(zhuǎn)換;,需要的朋友可以參考一下

1.列表排序

def que6():
    # 6.輸入三個(gè)整數(shù)x, y, z,形成一個(gè)列表,請(qǐng)把這n個(gè)數(shù)由小到大輸出。
    # 程序分析:列表有sort方法,所以把他們組成列表即可。
    li = np.random.randint(-100, 100, size=10)
    # 就地轉(zhuǎn)化
    li = li.tolist()
    # 用sort()結(jié)果
    li_sort = sorted(li, reverse = False)
    print('用sort方法,重新排列結(jié)果:{}'.format(li_sort))

    # 不用sort方法,自己寫排序方法做,

    # 冒泡排序
    def bubbleSort(m):
        m = m.copy()
        for time in range(1, len(m)):
            for index in range(len(m) - time):
                if m[index] > m[index+1]:
                    m[index], m[index+1] = m[index+1] , m[index]
        return  m

    # 選擇排序
    def selectSort(m):
        m = m.copy()
        for seat_L in range(len(m)-1):
            for seat_R in range(seat_L+1, len(m)):
                if m[seat_L] > m[seat_R]:
                    m[seat_L], m[seat_R] = m[seat_R], m[seat_L]
        return m

    # 插入排序1(內(nèi)部寫成函數(shù)):
    def insertSort_1(m):
        result = []

        # 單個(gè)元素k插入列表li
        def to_insert(li, k):
            # 標(biāo)識(shí)符
            tab = False

            # 尋找插入位置
            # 循環(huán)次數(shù)應(yīng)該至少大于列表長(zhǎng)度+1,None也占一位(空列表),即認(rèn)為撲克牌最末尾還有一張‘空牌'
            for i in range(len(li) + 1):
                # 修改標(biāo)識(shí)符,標(biāo)志‘遍歷完后的下一個(gè)循環(huán)',即在和‘空牌'比較
                if i == (len(li)):
                    tab = True

                # 如果在對(duì)li[-1]比較完成(包含)之前,且尋找到位置,即把撲克從左往右比較一遍
                if not tab and k < li[i]:
                    li.insert(i, k)
                    break
            # 如果遍歷完成,多循環(huán)一次,即和‘空牌'不需要比較,直接把牌替換掉‘空牌'
            if tab:
                li.append(k)
            return li
        # 遍歷列表
        # result = result[:1]
        for length in range(len(m)):
            result = to_insert(result, m[length])

            # print(result,m[length])
        return result

    # 插入排序2(直接嵌套循環(huán)):
    def insertSort2(m):
        m = m.copy()
        result = m[:1]
        for index_choose in range(1, len(m)):
            # 手上已經(jīng)有index_choose張牌,比較第index_choose+1張牌則append
            # 逐個(gè)比對(duì)手上的牌,如果都對(duì)比了一遍,則加到最后
            for index_insert in range(len(result) + 1):
                print(result, index_insert,'\n',m, index_choose,'\n\n')
                if index_insert != index_choose and m[index_choose] < result[index_insert] :
                    result.insert(index_insert, m[index_choose])
                    break
                if index_insert == index_choose:
                    result.append(m[index_choose])
            # print(result, m[index_choose])
        return result



    # print(li)
    print('插入排序:',insertSort3(li))
    print('選擇排序:',selectSort(li))
    print('冒泡排序:',bubbleSort(li))
que6()

2.調(diào)換字典鍵值

# 1. 調(diào)換元素.\
def que1():
    d={1:"one",2:"two"}

    # 方法1 --- 動(dòng)態(tài)賦值
    def method1(d):
        d = d.copy()
        result = {}
        for k,v in d.items():
            result[v] = k
        return result

    # 方法2 --- 生成器
    def method2(d):
        d = d.copy()
        result = {v:k for k,v in d.items()}
        return result

    # 方法3 --- 由值尋找鍵
    def method3(d):
        d = d.copy()
        # 由鍵尋找值
        def match(dic, b):
            return [k for k,v in dic.items() if v == b]
        # 先生成key-None,再賦值
        result = {}
        result = result.fromkeys(d.values())
        for k in result.keys():
            result[k] = match(d, k)[0]
        return result

    # 方法4 --- 列表轉(zhuǎn)字典 < 直接轉(zhuǎn)換/動(dòng)態(tài)賦值 >
    def method4(d):
        d = d.copy()
        key = d.keys()
        val = d.values()
        data = list(zip(key, val))

        # 方法4-1
        result1 = {}
        for i in range(len(data)):
            result1[data[i][1]] = data[i][0]

        # 方法4-2
        result2 = dict(zip(val, key))

        return result1, result2

    print('新列表動(dòng)態(tài)賦值方法:{}'.format(method1(d)))
    print('生成器方法:{}'.format(method2(d)))
    print('由鍵尋值方法:{}'.format(method3(d)))
    print('動(dòng)態(tài)賦值列表轉(zhuǎn)字典方法:{}'.format(method4(d)[0]))
    print('直接列表轉(zhuǎn)字典方法:{}'.format(method4(d)[1]))
# que1()

3.刪除列表中的重復(fù)元素

遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:531509025
尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書!

刪除重復(fù)元素list =[1,2,5,4,1,5,6,8,0,2,5]

a = np.random.randint(-100, 100, size=10)
a = a.tolist()

def method1(a):
    a = a.copy()
    a = set(a)
    return a
def method2(a):
    b = a.copy()
    c = 0
    for i in range(len(a)-1):
        if b[i+c] in b[:i+c]+b[i+c+1:]:
            b.pop(i+c)
            c -= 1
    return b
print('集合法:',method1(a))
print('遍歷法:',method2(a))

4.輸出質(zhì)數(shù)

def prime(end):

    prime_list = []
    if end <= 1:
        print('必須大于1')
    else:
        # prime_list.append(2)
        for i in range(2, end+1, 1):
            count = 0
            if i == 2:
                if i%2 != 0:
                    prime_list.append(2)
            else:
                for m in range(2, i):
                    # 能夠整除,則跳出循環(huán)
                    if (i % m) == 0:
                        # print(i, m)
                        break
                    # 否則計(jì)數(shù)+1
                    else:
                        count += 1
                    # 判斷是否整除完成(0/n)
                    if count == i - 2:
                        prime_list.append(i)

                    print(count, i, m)

    return (prime_list)

num = int(input('想輸出2到多少?'))
print(prime(num))

5.判斷是一年中第幾天

def que3():
    # 3.輸入某年某月某日,判斷這一天是這一年的第幾天?:
    # 閏年判斷函數(shù)
    def judge_leap(num):
        date = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        # (四年一閏 and not百年) or 四百年閏
        if (num % 4 == 0 and num % 100 != 0) or num % 400 ==0:
            date[1] =29
        return date

    # 格式轉(zhuǎn)換
    date = (input('請(qǐng)輸入一個(gè)日期,格式如:“2018.02.12”:'))
    date_list = (list(map(int, (date.split('.')))))
    # 遍歷計(jì)算天數(shù)
    day = date_list[2]
    for i in range(date_list[1]):
        day += judge_leap(date_list[0])[i]
    print('{}月{}日是{}年的第{}天\n'.format(date_list[1], date_list[2], date_list[0], day))
# que3()

6.猜數(shù)字

# 重新猜數(shù)字
import random

def judge_num(num, num_random):
    if num > num_random:
        print('It\'s too big')
        return 1
    elif num < num_random:
        print('It\'s too small')
        return 1
    else:
        print("Congratulation!! That\' right!")
        return 0

# 產(chǎn)生隨機(jī)數(shù)
num_start = int(input('Digital lower limit of guess number:\n'))
num_end = int(input('Digital upper limit of guess number:\n'))
num_random = random.randint(num_start, num_end)

# 參數(shù)初始化
result = 1      # 判斷結(jié)果
i = 0           # 循環(huán)次數(shù)
frequency = 3   # 循環(huán)限制次數(shù)

# 提示總猜測(cè)次數(shù)、剩余次數(shù)
print('WARNING: You have【{}】 chances you guess '.format(frequency), end = '--&&>>--')
print('【{}】 chances left now:\n'.format(frequency - i +1))

while result and i != frequency:
    # 猜數(shù)字
    num = int(input('Please guess a int_number:\n'))
    result = judge_num(num, num_random)
    i += 1

7.進(jìn)制轉(zhuǎn)換

# 任意進(jìn)制轉(zhuǎn)十進(jìn)制
def other_to_decimal(hex, num):
    # 整型轉(zhuǎn)化為列表,
    num_str = str(num)
    # map()將List對(duì)象中的元素(list類型)轉(zhuǎn)化為集合(set)類型
    num_list = list(map(int, num_str))
    # 列表反序
    num_list = num_list[::-1]
    print(list(map(int, num_str)))

    # 獲取數(shù)字位數(shù)
    digit = len(num_list)
    num_decimal = 0

    # 累加
    for i in range(digit):
        numi = num_list[i]
        # print(numi, hex**i)
        num_decimal += numi*(hex**i)   # 對(duì)每一位數(shù)的冪指數(shù)累加

    return num_decimal

# 十進(jìn)制轉(zhuǎn)任意進(jìn)制
def decimal_to_other(hex, num):
    # 獲取數(shù)字位數(shù)
    digit = len(str(num))

    num_hex = []
    quotient = 1

    # 相除,余數(shù)計(jì)入列表num_hex
    while quotient:
        # 取余和取商
        quotient = num // hex
        remainder = num % hex
        # print(quotient, remainder)
        # 余數(shù)計(jì)入列表
        num_hex.append(remainder)
        # 商做下一次循環(huán)
        num = quotient

    # 列表反序,通過(guò)切片和sort()函數(shù)可以實(shí)現(xiàn)
    num_hex = num_hex[::-1]
    # num_hex.sort(reverse=True)

    # 如果超過(guò)十進(jìn)制,用ASCII碼轉(zhuǎn)化為字母
    for i in range(len(num_hex)):
        if num_hex[i] > 9:
            num_hex[i] = chr(int(num_hex[i])+87)
    # print(num_hex)

    # 列表轉(zhuǎn)化為字符串
    result = (''.join('%s' %m for m in num_hex))
    return result


Type = bool(input("十進(jìn)制轉(zhuǎn)任意進(jìn)制請(qǐng)輸入1,任意進(jìn)制轉(zhuǎn)十進(jìn)制請(qǐng)輸入0\n"))
if Type:
    hex = int(input("需要把十進(jìn)制轉(zhuǎn)換為多少進(jìn)制?請(qǐng)輸入正整數(shù)\n"))
    num = int(input("需要轉(zhuǎn)換的數(shù)字是:"))
    print("換算結(jié)果是:", decimal_to_other(hex, num))
else:
    hex = int(input("需要把多少進(jìn)制轉(zhuǎn)換為十進(jìn)制?請(qǐng)輸入正整數(shù)\n年"))
    num = int(input("需要轉(zhuǎn)換的數(shù)字是:"))
    print("換算結(jié)果是:", other_to_decimal(hex, num))

到此這篇關(guān)于 7個(gè)關(guān)于Python的經(jīng)典基礎(chǔ)案例的文章就介紹到這了,更多相關(guān)Python 經(jīng)典案例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論