Python:Raw Input和if语句

时间:2014-06-26 15:06:09

标签: python

我想通过原始输入输入我将在公式(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()

2 个答案:

答案 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'

注意事项:

  • 字典是规范的Python替代品,可以变成一长串的elif s;
  • frozensets的使用意味着用户可以按任何顺序输入变量;和
  • 使用没有分段的str.split()意味着容许变量之间的任何数量的空格;如果你想要,例如以逗号分隔的输入,相应地更新split