python实践练习:掷色子
我创建了两个色子的实例,通过random函数返回随机选取的值,但是两个色子返回的值是混在一起的。
我改进了代码使其分开显示,但是感觉十分臃肿,劳烦各位教导
#色子
from random import randint
p=[]
n=[]
i=0
while i<11:
class Die:
def __init__(self,sides1,sides2):
self.sides1=sides1
self.sides2=sides2
def roll_die(self):
k=int(self.sides1)
b=int(self.sides2)
num=randint(1,k)
num2=randint(1,b)
p.append(num)
n.append(num2)
die=Die(6,20)
die.roll_die()
i=i+1
print(p)
print(n)
from random import randint
# 把类的声明写在循环外
class Die:
def __init__(self, sides): # 用一个 Die 类只表示一个骰子
self.sides = sides
def roll(self):
return randint(1, self.sides) # 让 roll 简单地返回随机值
if __name__ == '__main__':
die1 = Die(6)
die2 = Die(20)
numbers1 = []
numbers2 = []
for i in range(11):
# 添加到列表的操作在类外进行
numbers1.append(die1.roll())
numbers2.append(die2.roll())
print(numbers1)
print(numbers2)
【以下回答由 GPT 生成】
# 色子
from random import randint
p = []
n = []
class Die:
def __init__(self,sides1,sides2):
self.sides1 = sides1
self.sides2 = sides2
def roll_die(self):
k = int(self.sides1)
b = int(self.sides2)
num = randint(1,k)
num2 = randint(1,b)
return (num, num2)
for i in range(11):
die = Die(6,20)
roll_results = die.roll_die()
p.append(roll_results[0])
n.append(roll_results[1])
print(p)
print(n)
经过优化,优化后的代码如上所示。修改的地方是:
这样优化后的代码更加简洁和高效。
【相关推荐】