猿问

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

我刚刚开始学习 Python,如果我在这里遗漏了任何明显的东西,我深表歉意。


我正在尝试根据 Code Academy 上的问题创建轮盘游戏。我决定使用列表而不是 randomint,因为我想将 00 添加到列表中。这是我正在努力解决的第一件事,因为我使用 append 尝试添加 00,但它仅将其添加为 0。


我正在努力解决的第二件事是修复此错误:


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


我的代码在下面,所以它是 roulette_number 部分不起作用,因为它来自列表,因此不被识别为 int。我们欢迎所有的建议!


from random import seed

from random import sample


# seed random number generator



seed (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 sequence

n = 1  

sequenceroulette = [i for i in range(37)] * n #The sequence is starting from 0 to 36

sequenceroulette.append(00) ## Try to work out how to add this as a double zero rather than one zero


print (sequenceroulette)


#select a subset without replacement


subset = sample(sequenceroulette,1) # we only want to pick 1 number a time from the list

print(subset)


roulette_number = subset


print (roulette_number)



money = 100


def 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 money




print (roulette(10,"Even","N/A"))

Python


撒科打诨
浏览 213回答 3
3回答

牧羊人nacy

在 Python 中,保存为int. 如果您想存储这些,您需要将它们保存为字符串。sequenceroulette.append('00')关于你的TypeError类型错误:不支持的操作数类型为 %:'list' 和 'int'您不能在 和 的实例之间使用运算%符。listinteger这是由于您如何从listwith 中提取一个数字;subset = sample(sequenceroulette,1) #[8]注意,sample()仍然返回你的结果,在一个list. 如果您将您的更新roulette_number为始终调用元素0,则可以解决此错误。roulette_number = subset[0]希望这会有所帮助,如果您想做更多,深入阅读您在此处遇到的一些问题是一些链接!

炎炎设计

random.sample(population, k)是一个返回长度为 k 的列表的方法。所以, sample(sequenceroulette,1)将返回一个带有一个数字的列表。为了访问列表中的这个号码,您需要做roulette_number = subset[0]当您开始使用 Python 时,记住您使用的方法返回的数据类型很重要,因此您需要在代码中相应地使用它们:)

繁华开满天机

替换这一行:roulette_number = subset经过:roulette_number = subset[0]由于子集如果一个值的列表,您必须获取它才能进行 % 操作
随时随地看视频慕课网APP

相关分类

Python
我要回答