我的代碼:
import random
class human:
'humans class'
def __init__(self,fname,lname=None,age=None):
self.fname = fname
if lname != None: self.lname = lname
else: self.lname = None
if age != None: self.age = age
else: self.age = None
def new(self,command):
"for define a new variable"
return exec(command)
class soccer_player(human):
"soccer players class"
all_players = []
choised = []
a = []
b = []
def __init__(self, fname, lname=None, age=None):
super().__init__(fname, lname=lname, age=age)
soccer_player.all_players.append(fname)
def start_random_choise():
i=0
while True:
choise = random.choice(soccer_player.all_players)
if choise not in soccer_player.choised:
soccer_player.a.append(choise)
i = i 1
if i == 11:
break
i=0
while True:
choise = random.choice(soccer_player.all_players)
if choise not in soccer_player.choised:
soccer_player.b.append(choise)
i = i 1
if i == 11:
break
hosein = soccer_player("hosain")
maziar = soccer_player("maziar")
akbar = soccer_player("akbar")
nima = soccer_player("mina")
mehdi = soccer_player("mehdi")
farhad = soccer_player("farhad")
mohammad = soccer_player("mohammad")
khashaiar = soccer_player("khashaiar")
milad = soccer_player("milad")
mostafa = soccer_player("mostafa")
amin = soccer_player("amin")
saeed = soccer_player("saeed")
poya = soccer_player("poya")
porya = soccer_player("porya")
reza = soccer_player("reza")
ali = soccer_player("ali")
behzad = soccer_player("behzad")
sohail = soccer_player("sohail")
behrooz = soccer_player("behrooz")
shahrooz = soccer_player("shahrooz")
saman = soccer_player("saman")
mohsen = soccer_player("mohsen")
soccer_player.start_random_choise()
print("A:",end=" ")
for i in list(range(len(soccer_player.a))):
print(soccer_player.a[i],end=" , ")
print()
print("B:",end=" ")
for i in list(range(len(soccer_player.b))):
print(soccer_player.b[i],end=" , ")
print()
我的問題是這個應用程式顯示重復的結果:
[nimafanniasl@fedora prs]$ python -u "/home/nimafanniasl/pr.py"
A: mehdi , porya , maziar , porya , akbar , porya , behzad , amin , khashaiar , maziar , ali ,
B: hosain , mohammad , mostafa , shahrooz , mostafa , poya , mostafa , hosain , farhad , hosain , hosain ,
這個應用程式在 B 隊列印了 4 個 hesein,請幫我制作這個程式,這樣它就不會顯示重復的結果
uj5u.com熱心網友回復:
您沒有將所選玩家添加到choised. 添加這一行
soccer_player.choised.append(choise)
在兩個 while 回圈中。
uj5u.com熱心網友回復:
您的 if 條件被破壞,因為您檢查了錯誤的串列。您將玩家附加到
soccer_player.a.append(choise)orb但您的條件狀態if choise not in soccer_player.choised。您可能也打算將玩家附加到choised串列中。如果你用
random.sample或random.shuffle已經保證它們不會產生重復的代碼替換大部分代碼,你就可以避免做所有這些作業。
def start_random_choise():
soccer_player.a = random.sample(soccer_player.all_players, 11)
soccer_player.b = random.sample(soccer_player.all_players, 11)
- 請查看“生日悖論”,了解為什么您的代碼效率低下
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/357441.html
上一篇:不能訪問同一個類中的私有成員
