为了账号安全,请及时绑定邮箱和手机立即绑定

如何在轮盘游戏中使用列表?

如何在轮盘游戏中使用列表?

撒科打诨 2022-07-26 11:04:07
我刚刚开始学习 Python,如果我在这里遗漏了任何明显的东西,我深表歉意。我正在尝试根据 Code Academy 上的问题创建轮盘游戏。我决定使用列表而不是 randomint,因为我想将 00 添加到列表中。这是我正在努力解决的第一件事,因为我使用 append 尝试添加 00,但它仅将其添加为 0。我正在努力解决的第二件事是修复此错误:类型错误:不支持的操作数类型为 %:'list' 和 'int'我的代码在下面,所以它是 roulette_number 部分不起作用,因为它来自列表,因此不被识别为 int。我们欢迎所有的建议!from random import seedfrom random import sample# seed random number generatorseed (1) # Seed is a reference to your random number so if you reference the same seed you will always get the same random number. Even having this randint doesn't make a difference. So in that case it doesn't matter what number you put in the brackets next to the seed?# prepare a sequencen = 1  sequenceroulette = [i for i in range(37)] * n #The sequence is starting from 0 to 36sequenceroulette.append(00) ## Try to work out how to add this as a double zero rather than one zeroprint (sequenceroulette)#select a subset without replacementsubset = sample(sequenceroulette,1) # we only want to pick 1 number a time from the listprint(subset)roulette_number = subsetprint (roulette_number)money = 100def roulette (Bet,Guess1, Guess2):     if roulette_number % 2 == 0 and Guess1 == "Even" and Guess2 == "N/A":         return (money - Bet) + (Bet * 2)     elif roulette_number % 1 == 1 and Guess1 == "Odd" and Guess2 == "N/A":         return (money - Bet) + (Bet * 2)     elif roulette_number == Guess1 and Guess2 == "N/A":         return (money - Bet) + (Bet *37)      elif roulette_number == Guess1 or roulette_number == Guess2:         return (money - Bet) + (Bet * 18.5)     else:         return moneyprint (roulette(10,"Even","N/A"))Python
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

在 Python 中,保存为int. 如果您想存储这些,您需要将它们保存为字符串。

sequenceroulette.append('00')

关于你的TypeError

类型错误:不支持的操作数类型为 %:'list' 和 'int'

您不能在 和 的实例之间使用运算%符。listinteger

这是由于您如何从listwith 中提取一个数字;

subset = sample(sequenceroulette,1)
#[8]

注意,sample()仍然返回你的结果,在一个list. 如果您将您的更新roulette_number为始终调用元素0,则可以解决此错误。

roulette_number = subset[0]

希望这会有所帮助,如果您想做更多,深入阅读您在此处遇到的一些问题是一些链接!



查看完整回答
反对 回复 2022-07-26
?
炎炎设计

TA贡献1808条经验 获得超4个赞

random.sample(population, k)

是一个返回长度为 k 的列表的方法。

所以,

 sample(sequenceroulette,1)

将返回一个带有一个数字的列表。为了访问列表中的这个号码,您需要做

roulette_number = subset[0]

当您开始使用 Python 时,记住您使用的方法返回的数据类型很重要,因此您需要在代码中相应地使用它们:)


查看完整回答
反对 回复 2022-07-26
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

替换这一行:

roulette_number = subset

经过:

roulette_number = subset[0]

由于子集如果一个值的列表,您必须获取它才能进行 % 操作


查看完整回答
反对 回复 2022-07-26
  • 3 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号