繁体   English   中英

Python列表似乎没有更新

Python list doesn't seem to be updating

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我是python的新手,正在尝试创建二十一点。 但是,当我尝试打印出玩家的手牌时,我遇到了一些困难。
这是我的打(发卡)代码:

def hit(card, deck):
    global money, choice

    choice = input("How much would you like to bet?\n")
    money -= int(choice)
    print("You have decided to bet $" + str(choice))
    card = card.drawCard(deck.deck)
    card.getPt()
    deck.addScore(card)
    deck.addCard(card)
    c = str(card)
    p = str(deck)
    print("You have drawn: " + str(c) + "\n")
    print("The player has:\n" + str(p) + "\n")
    print("Total score:", deck.score)

这是我用于打印卡的代码:

def __str__(self):
    for i in range(0, len(self.deck)):
        self.print = self.print + "\n" + str(self.deck[i])
    return self.print

我的代码要做的第一件事是为发牌者和玩家抽两张牌,效果很好。 但是,在玩家抽出一张牌之后,它就会变得有些古怪。 输出是这样的:

The player has drawn Card A  
The player has drawn Card B
Total score: number

How much would you like to bet?  
number

You have bet number  
You have drawn Card B

Player has:  
Card A  
Card B  
Card A  
Card B  
Card B  

当我抽出一张新卡时,该卡不会更改,而是保留我绘制的最后一张卡。 然后,当我打印卡座时,它会同时打印我的旧卡座和新卡座。 但是,分数是正确的,这表明我的名单只有三张卡。 怎么回事,为什么要打印五张卡?

完整代码
输出示例

1 个回复

好吧,简而言之,答案是: 您永远不会重置Deck.print。 因此,每次调用__str__它都会不断累积

但总的来说,可以大大改善此代码,例如__str__函数远非__str__ 遵循以下原则

return '\n'.join(self.deck)

看起来会好很多。

通常,没有必要在每个变量前加上“自我”。 如果仅在函数中使用它们。 在大多数情况下,在类方法中,您要么更新对象变量(self.something),要么从函数中返回一些值,但不能同时返回两者。 当然,可能会有例外,但是在您的情况下,这似乎是规则,而不是例外。

您还应尽可能避免使用全局变量。

1 列表未更新并且似乎在循环我的 Python 代码以进行 pcap 分析

我一直在尝试从 pcap 文件中提取电子邮件并将它们添加到列表中。 我已经尝试了所有我能想到的方法,但除了看起来像循环之外,似乎无法以任何其他方式输出它。 样本输出 这个想法是,我想找到电子邮件,将它们添加到列表中,删除重复项,然后以漂亮的表格格式将它们打印出来。 到目前为止,这是 ...

2 Python版本似乎没有更新

这是在终端中运行以下命令时得到的结果: 我运行了Python3下载随附的“ Update Shell Profile.command”文件,但它仍然不会更改 当我运行它时。 我的问题是,这正常吗? 除了需要键入“ python3 file.py”以运行“ file.py”以 ...

3 python列表似乎随机消失

我编写了一个脚本来测试我编写的不同排序算法的运行时间。 代码在这里: 当调用函数sort.merge(integers) ,出于某种原因会将一个空列表传递给它。 我通过在其中放置print(integers)进行了测试,但据我所知应该与传递给sort.selection(intege ...

4 Python3 Flask 会话似乎没有更新

我正在使用下面的代码来调试我的会话变量没有正确更新的问题。 print(session) session['review_status'] = 'Pending' print('Session review_status is now: ' + session['review_status']) p ...

5 Python嵌套列表:递归似乎停止得太早

我正在尝试通过递归(下面的代码)扫描嵌套列表。 如果嵌套列表以列表停止,则效果很好。 范例(python 3): 可能有更好的方法来展平嵌套列表。 我只是想了解我在这里缺少什么,即“ 7”在哪里? ...

6 Python列表类似乎有纠缠索引

我是 python 的新手,在我的第一个项目中遇到了一些意想不到的行为。 我制作了一个将坐标字典转换为列表的类。 在我尝试在初始化后更改坐标之前,它似乎工作正常。 我想沿一个索引移动所有坐标(索引 1 变为 2,0 变为 1)并在索引 0 中放置一个新坐标。但是,当我在移动其余坐标后更改索引 0 ...

7 python似乎无法获得正确返回的列表

我的输出应该在列表的格式列表中。 我的代码似乎将清单中的每个元素都给了newHand(也是清单)。 我只希望将一个元素插入到newHand列表中,并将newhand列表附加到listofLists中。 我在下面格式化了 所需的清单输出清单 ...

8 Python列表遍历和更新

我正在尝试更改z列表的列表元素的最后一个索引处的元素,但出现错误 z应该是 但是它给列表元素的最后一个索引仅为n3即 我无法弄清楚为什么它没有给出正确的结果。 ...

9 Python列表更新自身[重复]

这个问题在这里已有答案: 列表更改列表反映在子列表中意外 13个答案 那么这是一个基本问题,但在这里: 请考虑以下代码: 输出如下: 但是,输出不应该是: 到底发生了什么? 我怎么能得到预期的输出? 提前致谢 :) ...

10 Python通过类更新列表

我试图有一个列表,每当调用一个函数时都会添加到列表中。 例如,如果您按下按钮1会调用一个将5加到listone的函数,或者如果您按下按钮2将数字10加到listone。并且我希望列表1在更新时不断显示结果。 例如,我创建一个类Class MyClass(object)def init (自己 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM