首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >random.shuffle不会洗牌

random.shuffle不会洗牌
EN

Stack Overflow用户
提问于 2021-05-09 18:44:12
回答 1查看 42关注 0票数 0

我正在构建一副具有洗牌功能的纸牌。我使用的是random.shuffle,但它根本不是随机的。当我运行以下代码时,整个打印板都打印得井井有条。请看一看,谢谢!

代码语言:javascript
复制
import random


class Card(object):
    def __init__(self, suit, value):
        self.suit = suit
        self.value = value

    def show(self):
        print("{} of {}".format(self.value, self.suit))
        return self.value


class Deck(object):
    def __init__(self):
        self.cards = []
        self.build()

    def build(self):
        for s in ["Spades", "Clubs", "Diamonds", "Hearts"]:
            for v in range(1, 14):
                self.cards.append(Card(s, v))
                print("{} of {}". format(v, s))

    def show(self):
        for cards in self.cards:
            print(cards.show())

    def shuffle(self):
        random.shuffle(self.cards)
        return self.cards

    def draw_card(self):
        return self.cards.pop()


deck = Deck()
deck.shuffle()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-09 18:51:12

我刚刚测试了您的代码,您看到的顺序良好的控制台输出消息是从self.build()函数创建的,如果您在最后调用deck.show(),您将看到随机排列的消息。

代码语言:javascript
复制
deck = Deck()
deck.shuffle()
deck.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67456795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档