引入的模块通常有三种类型,一种是系统库中存在的模块,一种是第三方模块,最后一种就是我们自己定义来的模块。当我们在写一个程序的时候,为了避免一个主程序的代码过于复杂,我们会将一些函数或功能写在单独的文件中,然后通过主程序调用这些自己定义的模块,我们自己定义的模块注意扩展名要以.py结尾。
本章节我们通过一个发牌游戏来学习自定义模块,题目为:
4个人玩牌,电脑随机将52张牌(不含大小王)发给4个人,在屏幕上显示每位牌手的牌。
问题分析:
1. 52张牌,按梅花0-12,方块13-25,红桃26-38,黑桃39-51顺序编号并存储在pocker列表中(未洗牌之前)。
2. 定义一个洗牌功能,随机产生两个位置索引,交换两个牌的位置,进行100次随机交换,达到洗牌的目的。
3. 发牌时,交换后pocker列表,按顺序加到四个牌手的列表中。
4. 52张牌发给4个人,每人13张,13轮循环,每次循环发给四个人。
5. 每人发一张牌的动作一样,用函数main实现。
6. 发一张牌的动作可以包含两部分:获取花色,获取数值,分别用get_color和get_value实现。
1. 创建模块
我们可以采用自定义模块来解决上面的问题,首先我们分析一下我们有几个功能要创建模块,洗牌和发牌这些都是可以放在主程序中的,每张牌的花色和数值我们是可以放在模块中的,那么我们就先来创建2个模块来完成这两个功能。
首先完成获取颜色的模块及其函数:
123456789 |
def get_color(n): if n
相关推荐
问题内容 我正在尝试抓取一个网站。我尝试过使用两种方法,但两种方法都没有为我提供我正在寻找的完整网站源代码。我正在尝试从下面提供的网站 url 中抓取新闻标题。 网址:“https://www.todayonline.com/” 这是我尝试过但失败的两种方法。 方法一:美汤 tdy_url = "https://www.todayonline.com/" page = requests.get(t
首先,为什么这次会出现Optional这篇文章?因为线上总是告警空指针。总是会有各种各样的问题出现。看到各个文章都说能用Optional去优雅的解决空指针。那么到底是怎么优雅的解决的呢?这次就那一篇文章记录一下。 案例1 :只有一个对象 public static void main(String[] args) { Member member = getUser(false); //第一个Opt
golang不是多线程,但通过使用Goroutines和channels模型,它可以高效地实现并发编程,Goroutines提供了一种轻量级的并发抽象,可以在单个线程中同时运行许多函数。通过channels,Goroutines之间可以进行安全的数据传递和同步操作,这种并发模型使得在Golang中编写并发程序变得更加容易和高效。 本文的操作环境:Windows10系统、Go1.20.4版本、Del
函数模板限制:不能声明静态成员函数不能进行模板递归编译时间消耗函数模板优点:代码重用泛型编程安全类型检查高效 C++ 函数模板的限制和优点 简介 函数模板是 C++ 中强大的功能,它允许我们创建定义函数的通用的骨干代码,而无需编写每个类型变化的全套函数。它可以极大地简化代码并提高代码可重用性。 限制 不能声明静态成员函数:函数模板无法为类声明静态成员函数,因为它们是在编译时基于给定类型实例化的。
1. 易用性 python以其清晰的语法和简单的学习曲线而闻名。开发者可以轻松掌握其基础知识,并快速构建区块链应用程序。这使得Python成为初学者和经验丰富的开发者的理想选择。 2. 丰富的库 Python拥有一个庞大的库集合,为区块链开发提供了丰富的功能。从连接到区块链节点到创建智能合约,都有现成的库可供使用。这加速了开发过程,降低了错误的可能性。 3. 跨平台兼容性 Python是一个跨平台
回到顶部
|