python - 如何从导入的类中添加数据
问题描述
我正在上一个初学者编程课程,学习有关 Class 的知识。这是我第一次发帖。我正在尝试从导入的类中添加卡片,但卡片的结果是非类型。我已经在导入的类中创建了每张卡片,但是当卡片附加到卡片组时,它会输出废话。如果格式不令人满意,请道歉,并感谢您的帮助。
class Card:
def __init__(self,suite,number):
self.suite=suite
self.number=number
def making_cards(suite,number):
card=[]
suite=["Clubs","Diamonds","Hearts","Spades"]
card_numbers=range(1,14,1)
number.append("Ace")
for x in suite:
for y in card_numbers:
card=[x, y]
if isinstance(int(1), int):
card_numbers[0]="Ace"
if isinstance(int(11), int):
card_numbers[10]="Jack"
if isinstance(int(12), int):
card_numbers[11]="Queen"
if isinstance(int(13), int):
card_numbers[12]="King"
return card
def get_display_string(self):
print number,"of", suite
这是该类正在导入的主程序,不能编辑或修改这部分:
import random
from cards import Card
def create_deck():
# The deck array-list will contain Cards
deck = []
# Build the deck, assuming the Card class was imported correctly
for i in range(1, 4+1):
for j in range(1, 13+1):
deck.append(Card(i,j))
return deck
def main():
print ("The dealer opens a new pack of playing cards.")
my_deck = create_deck()
print my_deck
print ("The dealer shuffles.")
random.shuffle(my_deck)
print ("The dealer pulls five cards from the top.")
print ("And we see...")
for c in my_deck[:5]:
print ('\t' + c.get_display_string())
if __name__ == "__main__":
# execute only if run as a script
main()
废话输出如下: 庄家打开一副新的扑克牌。[<cards.Card instance at 0x00000000051F2648>, <cards.Card instance at 0x00000000051F2FC8>, <cards.Card instance at 0x00000000051F2488>, <cards.Card instance at 0x00000000051F2188>, <cards.Card instance at 0x00000000051F20C8>, <cards.Card实例在0x00000000051F2DC8>,<卡片实例0x0000000000051F2408>,<卡片实例at 0x0000000000051f2148>,<卡片card.Card at 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> 200051f2988> card.card实例<cards.Card instance at 0x00000000051EF508>, <cards.Card instance at 0x00000000051EF188>, <cards.Card instance at 0x00000000051EFD08>, <cards.Card instance at 0x00000000051EFC88>, <cards. Card instance at 0x00000000051EE0C8>, <cards.Card instance at 0x00000000051EEA88>, <cards.Card instance at 0x00000000051E2248>, <cards.Card instance at 0x00000000051E20C8>] 庄家洗牌。庄家从顶部抽出五张牌。而我们看到...
解决方案
就像一个“警告”一样,检查你的第一个代码块,making_cards 真的没有意义,我不确定你为什么把它放在 for 中,返回总是在 for 循环的第一次迭代和生病返回 [Ace, Clubs] 等。试着多考虑一下那部分。
现在,关于您在运行时在控制台中看到的内容,我想您会看到类似 <******.Tee object at 0x.................> 的内容。这是因为当您打印时,您打印的是 Card对象,而不是字符串,因此 Python 会执行它的工作并告诉您有关该对象的详细信息。如果要打印,假设套件和号码,您必须在打印中调用这些属性,如下所示:
print(card.suite)
print(card.number)
# or
print("{} {}".format(card.suite, card.number)
此外,您做的一件事是 Card 类的构造函数。再次检查一下,您正在使用 [] 而不是实际值来初始化 self.suite 和 self.number,如果您按照我上面所说的进行打印,Python 将在控制台 [] 上打印并且您会回来说它也在印刷废话。
你走在正确的轨道上,但再想想你在代码中写的东西,因为它并没有真正的意义(而且你肯定因为它而对它的理解更少,而且你对它不工作感到恼火) . 如果这是来自课程,我建议您回到解释类如何工作、返回语句和循环的部分。之后,想想应用程序应该如何工作并在纸上画一些流程图,这可能会帮助你编写代码。
推荐阅读
- go - 在 Go 中使用 Jose 加密/解密 JWE
- snowflake-cloud-data-platform - 雪花 - 将序列添加到现有列
- powershell - Powershell 查询 - 找不到路径的一部分
- python - 如何将数据从 excel 传输到网站并为每个输入打印结果?
- python - 由数字组成的切片字符串有时会返回可变长度
- apache-spark - 在火花中将 DD-MMM-YYYY 转换为 DD_MM_YYYY
- javascript - 单击网格并旋转它,使面在地板上
- linux - 如何通过命令行删除以“--”开头的文件夹
- c# - 将 2 个列表合并到一个新列表中,该列表包含列表 1 和列表 2 中的数据 - 其中唯一键是“VariantId”
- automation - 如何使用 JMeter 使用命令行参数?