我想通过原始输入输入我将在公式(a,vi,d,t)中使用的变量,并且只有当它具有全部四个才会运行。
#!/usr/bin/python
def Formula():
Formula = raw_input("What variables do you use?")
if Formula == 'a' and 'v' and 'd' and 't':
return 'd = vi*t + .5*a*t^2'
else:
return 'Wrong Formula'
print Formula()
答案 0 :(得分:0)
您可以使用套装进行检查。减去两个集合将返回第一个集合中不在第二个集合中的成员。不利的一面是,这不会检查不需要的输入,如“fred”。
if set('avdt') - set(raw_input("What variables do you use?")):
return 'Wrong Formula'
else:
return 'd = vi*t + .5*a*t^2'
答案 1 :(得分:0)
目前还不清楚你想要实现的目标,但以下内容可能会给你一些想法:
def select_formula():
equations = {frozenset(('a', 'vi', 'd' ,'t')): 'd = vi*t + .5*a*t^2'}
variables = frozenset(input("Enter the variables to use: ").split())
try:
return equations[variables]
except KeyError:
return "No formula found"
使用中:
>>> select_formula()
Enter the variables to use: a b c
'No formula found'
>>> select_formula()
Enter the variables to use: a d vi t
'd = vi*t + .5*a*t^2'
注意事项:
elif
s; frozenset
s的使用意味着用户可以按任何顺序输入变量;和str.split()
意味着容许变量之间的任何数量的空格;如果你想要,例如以逗号分隔的输入,相应地更新split
。