所以我正在构建一个允许我执行不同程序的程序。我有一个菜单,它有17种不同的选择。最后一个是生成一个随机数,但我如何让程序生成数字并使用该数字输入它:下面是我的代码示例......
import os
import random
print ("""
Press enter to exit
1.)BeamNG Drive
.....
17.)Random
""")
if answer == "1":
os.startfile("D:\Games\BeamNG Drive\BeamNG.drive.exe")
print("Launching BeamNG")
elif answer == "17":
from random import randint
print(random.randint(0, 14))
答案 0 :(得分:2)
您可以使用递归来完成此操作。如果您将处理放在一个函数中,它可以在数字为17
时自行调用import os
import random
def choose_program(number)
if number == "1":
os.startfile("D:\Games\BeamNG Drive\BeamNG.drive.exe")
print("Launching BeamNG")
elif number == "17":
number = str(random.randint(0, 14))
print(number)
choose_program(number)
number = input("""
Press enter to exit
1.)BeamNG Drive
.....
17.)Random
""")
choose_program(number)
答案 1 :(得分:0)
您可能不知道在Python中处理多个选择的一种常见方法涉及使用字典。这是使用该方法解决该问题的另一种方法。
import os
import random
game = {
'1': 'D:\Games\BeamNG Drive\BeamNG.drive.exe',
'2': 'game 2',
'3': 'game 3',
'4': 'game 4',
'5': 'game 5',
'6': 'game 6',
'7': 'game 7',
'8': 'game 8',
'9': 'game 9',
'10': 'game 10',
'11': 'game 11',
'12': 'game 12',
'13': 'game 13',
'14': 'game 14',
'15': 'game 15',
'16': 'game 16',
}
game['17'] = game[str(random.randint(1,16))]
for n in range(1, 17):
print (n, game[str(n)])
print (17, 'Random choice of one of these')
choice = input()
print (game[choice])
优点是代码比一系列if
,elif
和else
语句更紧凑,更易于阅读。在这种情况下,请注意,涉及random
的替代方法必须在game
字典的主要定义之外声明,因为它包含game
本身的提及,因此game
具有在被引用之前定义。在您的情况下,您需要创建一个包含列表的字典,一个包含要打印的项目名称的列表项和一个包含要执行的文件名的列表项。