两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

我們引入的模塊通常有三種類型,一種是系統(tǒng)庫(kù)中存在的模塊,一種是第三方模塊,最后一種就是我們自己定義來的模塊。當(dāng)我們?cè)趯懸粋€(gè)程序的時(shí)候,為了避免一個(gè)主程序的代碼過于復(fù)雜,我們會(huì)將一些函數(shù)或功能寫在單獨(dú)的文件中,然后通過主程序調(diào)用這些自己定義的模塊,我們自己定義的模塊注意擴(kuò)展名要以.py結(jié)尾。

本章節(jié)我們通過一個(gè)發(fā)牌游戲來學(xué)習(xí)自定義模塊,題目為:

4個(gè)人玩牌,電腦隨機(jī)將52張牌(不含大小王)發(fā)給4個(gè)人,在屏幕上顯示每位牌手的牌。

問題分析:

1. 52張牌,按梅花0-12,方塊13-25,紅桃26-38,黑桃39-51順序編號(hào)并存儲(chǔ)在pocker列表中(未洗牌之前)。

2. 定義一個(gè)洗牌功能,隨機(jī)產(chǎn)生兩個(gè)位置索引,交換兩個(gè)牌的位置,進(jìn)行100次隨機(jī)交換,達(dá)到洗牌的目的。

3. 發(fā)牌時(shí),交換后pocker列表,按順序加到四個(gè)牌手的列表中。

4. 52張牌發(fā)給4個(gè)人,每人13張,13輪循環(huán),每次循環(huán)發(fā)給四個(gè)人。

5. 每人發(fā)一張牌的動(dòng)作一樣,用函數(shù)main實(shí)現(xiàn)。

6. 發(fā)一張牌的動(dòng)作可以包含兩部分:獲取花色,獲取數(shù)值,分別用get_color和get_value實(shí)現(xiàn)。

1. 創(chuàng)建模塊

我們可以采用自定義模塊來解決上面的問題,首先我們分析一下我們有幾個(gè)功能要?jiǎng)?chuàng)建模塊,洗牌和發(fā)牌這些都是可以放在主程序中的,每張牌的花色和數(shù)值我們是可以放在模塊中的,那么我們就先來創(chuàng)建2個(gè)模塊來完成這兩個(gè)功能。

首先完成獲取顏色的模塊及其函數(shù):

def get_color(n):
    if n<13:
        return '梅花'
    elif n<26:
        return '方塊'
    elif n<39:
        return '紅桃'
    else:
        return '黑桃'

模塊名為getcolor.py。

接下來創(chuàng)建獲取值的模塊及其函數(shù):

def get_value(n):
    if n==0 or n==13 or n==26 or n==39:
        return 'A'
    elif n==12 or n==25 or n==38 or n==51:
        return 'K'
    elif n==11 or n==24 or n==37 or n==50:
        return 'Q'
    elif n==10 or n==23 or n==36 or n==49:
        return 'J'
    else:
        return n%13

模塊名為getvalue.py。

2. 調(diào)用模塊并完善主程序

調(diào)用自己定義的模塊,關(guān)鍵代碼如下:

from getcolor import get_color
from getvalue import get_value

完整代碼如下:

import random
from getcolor import get_color
from getvalue import get_value
n = 52
def gen_pocker(n):
    random.shuffle(n)
    return n
def main():
    List = []  # 代表一副牌,現(xiàn)在表示還沒有牌,只是一個(gè)牌盒
    for i in range(0, 52):
        List.append(i)  # 按順序往牌盒中放入52張牌
    List = gen_pocker(List)  # 將牌盒中的牌打亂順序
    List1 = []  # 定義4個(gè)牌手
    List2 = []
    List3 = []
    List4 = []
    for i in range(0, 52):  # 實(shí)現(xiàn)發(fā)牌
        if i < 13:  # 打亂后的前13張牌發(fā)給牌手1,實(shí)現(xiàn)牌手1手牌中如何含有花色和數(shù)字
            List1.append(get_color(List[i]) + str(get_value(List[i])))
        elif i < 26:
            List2.append(get_color(List[i]) + str(get_value(List[i])))
        elif i < 39:
            List3.append(get_color(List[i]) + str(get_value(List[i])))
        else:
            List4.append(get_color(List[i]) + str(get_value(List[i])))
    print(List)
    print("牌手1", List1)
    print("牌手2", List2)
    print("牌手3", List3)
    print("牌手4", List4)
main()

輸出結(jié)果為:

[48, 30, 25, 51, 10, 34, 41, 19, 38, 8, 13, 3, 24, 28, 43, 35, 6, 49, 37, 0, 
33, 27, 11, 14, 4, 31, 21, 50, 9, 46, 12, 47, 1, 44, 18, 22, 26, 32, 20, 42, 
45, 7, 17, 36, 29, 2, 15, 40, 39, 5, 16, 23]
牌手1 ['黑桃9', '紅桃4', '方塊K', '黑桃K', '梅花J', '紅桃8', '黑桃2', '方塊6', '紅桃K', 
'梅花8', '方塊A', '梅花3', '方塊Q']
牌手2 ['紅桃2', '黑桃4', '紅桃9', '梅花6', '黑桃J', '紅桃Q', '梅花A', '紅桃7', '紅桃1', 
'梅花Q', '方塊1', '梅花4', '紅桃5']
牌手3 ['方塊8', '黑桃Q', '梅花9', '黑桃7', '梅花K', '黑桃8', '梅花1', '黑桃5', '方塊5', 
'方塊9', '紅桃A', '紅桃6', '方塊7']
牌手4 ['黑桃3', '黑桃6', '梅花7', '方塊4', '紅桃J', '紅桃3', '梅花2', '方塊2', '黑桃1',
 '黑桃A', '梅花5', '方塊3', '方塊J']

在這個(gè)題中,我們采用的是導(dǎo)入模塊的第三種方式,直接引入模塊的函數(shù)功能,如果我們采用第一種導(dǎo)入模式的時(shí)候,注意使用方式要加上模塊名,例如:

import getcolor
print(getcolor.get_color(2))

一定要注意模塊名的添加。

3. 總結(jié)

通過這個(gè)例子我們學(xué)習(xí)了怎么去創(chuàng)建自定義模塊及模塊的使用,自己去練習(xí)一下可以學(xué)習(xí)到這種剖析題目的解題思維,下面幾節(jié)我們來學(xué)習(xí)幾個(gè)常用的內(nèi)置模塊。


點(diǎn)贊(2)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)