Python 我如何确保这些数字在使用后不会再次打印?
此代码必须能够识别已经使用过的号码,以便不再打印Python 我如何确保这些数字在使用后不会再次打印?,python,Python,此代码必须能够识别已经使用过的号码,以便不再打印 def Bingo(): import random import time while True: try: command = input("Do you want to generate a number Y/N: ") except: print("You colossal spanner")
def Bingo():
import random
import time
while True:
try:
command = input("Do you want to generate a number Y/N: ")
except:
print("You colossal spanner")
if command.lower() == "y":
text_file = open("Cache.txt", "a")
text_file.write("Numbers Used \n")
print("Welcome to the Bingo number generator")
UserNumber = str((random.randint(1,90)))
print(UserNumber)
text_file.write (UserNumber)
text_file.close()
elif command.lower == "N":
print("Try generating another one: ")
Bingo()
text_file.close()
您需要列出使用过的数字,当您说
UserNumber=str((random.randint(1,90))
时,将其放入while
循环中,并将其添加到数字列表中:
def Bingo():
import random
import time
used = []
while True:
try:
command = input("Do you want to generate a number Y/N: ")
except:
print("You colossal spanner")
if command.lower() == "y":
text_file = open("Cache.txt", "a")
text_file.write("Numbers Used \n")
print("Welcome to the Bingo number generator")
UserNumber = None
while UserNumber is None or UserNumber in used:
UserNumber = str((random.randint(1,90)))
used.append(UserNumber)
print(UserNumber)
text_file.write (UserNumber)
text_file.close()
elif command.lower == "N":
print("Try generating another one: ")
Bingo()
text_file.close()
您需要列出使用过的数字,当您说
UserNumber=str((random.randint(1,90))
时,将其放入while
循环中,并将其添加到数字列表中:
def Bingo():
import random
import time
used = []
while True:
try:
command = input("Do you want to generate a number Y/N: ")
except:
print("You colossal spanner")
if command.lower() == "y":
text_file = open("Cache.txt", "a")
text_file.write("Numbers Used \n")
print("Welcome to the Bingo number generator")
UserNumber = None
while UserNumber is None or UserNumber in used:
UserNumber = str((random.randint(1,90)))
used.append(UserNumber)
print(UserNumber)
text_file.write (UserNumber)
text_file.close()
elif command.lower == "N":
print("Try generating another one: ")
Bingo()
text_file.close()
您可以列出所有可用号码,并从中删除已生成的号码。您将在这些数字的列表中生成索引,而不是生成数字。这将使生成具有确定性:
numbers = list(range(1, 90))
def Bingo():
import random
import time
while True:
try:
command = input("Do you want to generate a number Y/N: ")
except:
print("You colossal spanner")
if command.lower() == "y":
text_file = open("Cache.txt", "a")
text_file.write("Numbers Used \n")
print("Welcome to the Bingo number generator")
remaining_numbers = len(numbers)
if remaining_numbers == 0:
print('No more numbers')
exit(-1)
index = random.randrange(remaining_numbers)
user_number = numbers.pop(index)
print(user_number)
text_file.write (str(user_number))
text_file.close()
elif command.lower == "N":
print("Try generating another one: ")
Bingo()
text_file.close()
您可以列出所有可用号码,并从中删除已生成的号码。您将在这些数字的列表中生成索引,而不是生成数字。这将使生成具有确定性:
numbers = list(range(1, 90))
def Bingo():
import random
import time
while True:
try:
command = input("Do you want to generate a number Y/N: ")
except:
print("You colossal spanner")
if command.lower() == "y":
text_file = open("Cache.txt", "a")
text_file.write("Numbers Used \n")
print("Welcome to the Bingo number generator")
remaining_numbers = len(numbers)
if remaining_numbers == 0:
print('No more numbers')
exit(-1)
index = random.randrange(remaining_numbers)
user_number = numbers.pop(index)
print(user_number)
text_file.write (str(user_number))
text_file.close()
elif command.lower == "N":
print("Try generating another one: ")
Bingo()
text_file.close()
我建议您生成如下数字:
numbers = range(1,90)
len(numbers) > 0
然后在宾果游戏中,做这样的事情来获得下一个数字:
number = random.randrange(len(numbers))
v = numbers.pop(number)
print v
您可以检查是否可以提取其他数字检查数字的长度,如下所示:
numbers = range(1,90)
len(numbers) > 0
在函数中生成数字,以便每次调用Bingo()时,都有一个新的数字列表可在游戏中使用。我建议您生成如下数字:
numbers = range(1,90)
len(numbers) > 0
然后在宾果游戏中,做这样的事情来获得下一个数字:
number = random.randrange(len(numbers))
v = numbers.pop(number)
print v
您可以检查是否可以提取其他数字检查数字的长度,如下所示:
numbers = range(1,90)
len(numbers) > 0
在函数中生成数字,以便每次调用Bingo()时,都有一个新的数字列表可在游戏中使用。我敢肯定这是一个重复的列表。标准的解决方案是生成一个范围的随机随机洗牌(或一个范围的随机选择),并从洗牌列表中一次生成一个元素。我很确定这是一个重复。标准的解决方案是生成一个随机的范围无序排列(或一个范围的随机选择),并从无序排列的列表中一次生成一个元素。向上投票选择
list.pop(index)
,忘记它。向上投票选择list.pop(index)
,忘记它。