我想要做的是我自己写我的第一个程序。我不想要答案,但只是一些指导已经两天了,我还没有取得任何实际进展。我是一个新手,所以对我很容易。代码不会产生错误,但运行,我知道它不正确
四名同事拼车上班每天。随机选择一个驱动程序让驱动器工作,然后随机选择驱动器回家。每个司机都有一只脚,并且每个人都有机会获得超速驾驶。驾驶员A每次开车时有10%的机会获得机票,驾驶员B有15%的机会,驾驶员C有20%的机会,驾驶员D有25%的机会。国家将立即撤销其第三张车票后的驾驶执照,一旦驾驶执照被吊销,司机将停止在拼车区驾驶。由于只有一个警察的拼车路线上,最大的一票将每早发和一个的最大每晚上
import random
day_counter = 0
alan_tickets = 0
betty_tickets = 0
charles_tickets = 0
diana_tickets = 0
drivers = ["Alan", "Betty", "Charles", "Diana"]
#def head_to_work(): is the driver selection process when heading to work.
def head_to_work():
if random.choice(drivers) == "Alan":
print "Alan it's your turn."
global alan_tickets
if alan_tickets == 3:
print "i cant"
head_to_work()
else:
return alan_drives_tw()
elif random.choice(drivers) == "Betty":
print "Betty it's your turn."
global betty_tickets
if betty_tickets == 3:
print "nope"
head_to_work()
else:
return betty_drives_tw()
elif random.choice(drivers) == "Charles":
print "Charles it's your turn."
global charles_tickets
if charles_tickets == 3:
print "no way"
head_to_work()
else:
return charles_drives_tw()
elif random.choice(drivers) == "Diana":
print "Diana it's your turn."
global diana_tickets
if diana_tickets == 3:
print "sorry guys"
head_to_work()
else:
return diana_drives_tw()
else:
print "All drivers have their Licenses suspended."
print "Take the Bus."
# driver alan is heading to work he has a 10% chance of getting a ticket
def alan_drives_tw():
global alan_tickets
print "Yo i'm driving"
print "..."
print "Now driving"
print "..."
print "your getting pulled over"
if random.random <= 0.10:
print "your getting a ticket"
alan_tickets += 1
print "i got a ticket, but we have arrived at work"
head_home()
else:
print "just a warning today"
print "we have arrived at work"
head_home()
# driver betty is heading to work she has a 15% chance of getting a ticket
def betty_drives_tw():
global betty_tickets
print "Hi i'll drive"
print "..."
print "we outta here"
print "your getting pulled over"
if random.random() <= 0.15:
print "your getting a ticket"
betty_tickets += 1
print "i got a ticket but, made it to work"
head_home()
else:
print "just a warning today"
print "made it to work"
head_home()
#driver charles is heading to work he has a 20% chance of getting a ticket
def charles_drives_tw():
global charles_tickets
print "I'll take the wheel"
print "..."
print "lets roll out"
print "your getting pulled over"
if random.random() <= 0.20:
print "your getting a ticket"
charles_tickets += 1
print "i got a ticket but, made it to work"
head_home()
else:
print "just a warning today"
print "made it to work"
head_home()
#driver charles is heading to work she has a 25% chance of getting a ticket
def diana_drives_tw():
global diana_tickets
print "I got it today"
print "..."
print "whippin it"
print "your getting pulled over"
if random.random() <= 0.25:
print "its ticket time"
diana_tickets += 1
print "i got a ticket but, were here at work"
else:
print "just a warning today"
print "were here at work"
return head_home()
#def head_home(): is the driver selection process when heading home
def head_home():
if random.choice(drivers) == "Alan":
print "Alan it's your turn"
global alan_tickets
if alan_tickets == 3:
print "i cant"
return head_home()
else:
return alan_drives_h()
elif random.choice(drivers) == "Betty":
print "Betty it's your turn"
global betty_tickets
if betty_tickets == 3:
print "nope"
return head_home()
else:
return betty_drives_h()
elif random.choice(drivers) == "Charles":
print "Charles it's your turn"
global charles_tickets
if charles_tickets == 3:
print "no way"
return head_home()
else:
return charles_drives_h()
elif random.choice(drivers) == "Diana":
print "Diana it's your turn"
global diana_tickets
if diana_tickets == 3:
print "sorry guys"
return head_home()
else:
return diana_drives_h()
else:
print "Drivers are not eligible to drive"
# driver alan is heading to work he has a 10% chance of getting a ticket
def alan_drives_h():
global alan_tickets
global day_counter
print "Yo i'm driving"
print "..."
print "Now driving"
print "your getting pulled over"
if random.random <= 0.10:
print "your getting a ticket"
alan_tickets += 1
else:
print "just a warning today"
print "were home"
day_counter += 1
head_to_work()
# driver betty is heading to work she has a 15% chance of getting a ticket
def betty_drives_h():
global betty_tickets
global day_counter
print "Hi i'll drive"
print "..."
print "we outta here"
print "your getting pulled over"
if random.random() <= 0.15:
print "your getting a ticket"
betty_tickets += 1
else:
print "just a warning today"
print "made it home"
day_counter += 1
head_to_work()
# driver charles is heading to work he has a 20% chance of getting a ticket
def charles_drives_h():
global charles_tickets
global day_counter
print "I'll take the wheel"
print "..."
print "lets roll out"
print "your getting pulled over"
if random.random() <= 0.20:
print "your getting a ticket"
charles_tickets += 1
else:
print "just a warning today"
print "made it home guys"
day_counter += 1
head_to_work()
# driver diana is heading to work she has a 25% chance of getting a ticket
def diana_drives_h():
global diana_tickets
global day_counter
print "I got it today"
print "..."
print "whippin it"
print "your getting pulled over"
if random.random() <= 0.25:
print "its ticket time"
else:
print "just a warning today"
print "were home everyone"
day_counter += 1
head_to_work()
print head_to_work()
print "Alan %d tikets." % (alan_tickets)
print "Betty %d tickets." % (betty_tickets)
print "Charles %d tickets." % (charles_tickets)
print "Diana %d tickets." % (diana_tickets)
print "%d days has passed." % (day_counter)
有,我遇到了一些问题。
获得代码继续运行,直到每个人都有3票
有时停止后1,2,3,或4天最大,我不知道为什么
在此先感谢记住没有答案只是线索和指导
对于每个驱动程序,您确实应该使用列表而不是单独的变量和函数,因此您没有太多重复的代码。 – Barmar
这实际上是一个'班级司机'的好申请,你可以在这里获得一张车票的概率和驾驶员获得的车票数量。 – Barmar
当你递归地调用'head_to_work()'时,你不会返回值,它应该是'return head_to_work()'。或者使用循环代替递归。 – Barmar