Включая две вещи, он проверит в одном операторе if в python - PullRequest
3 голосов
/ 29 января 2011

Допустим, у меня есть программа, которая работает в Python, как это

x=raw_input("Please enter name: ")
if x=="David" and "Jonathon"
   print "Whatever"

как мне получить две вещи, такие как Джонатон и Дэвид, чтобы исключить оба этих сценария, и для обоих выполняется печать «Что угодно». Я знаю, что ["David" и "Jonathon"] не правильный синтаксис для этого, поэтому я хочу знать, что это такое. Я также знаю, как это сделать, добавив оператор elif, но я хочу знать другой путь.

Ответы [ 3 ]

3 голосов
/ 29 января 2011

Вы можете сделать:

x=raw_input("Please enter name: ")

if x=="David" or x=="Jonathon":

    print "Whatever"

Или вы можете сделать:

names=["Bob","Joe"]
x=raw_input("What is your name?\n")
if x in names:
     print "Whatever"

Если вы имеете дело с большими данными.

2 голосов
/ 29 января 2011
names = ["David", "Jonathon"]
x=raw_input("Please enter name: ")
if x in names:
    print "Whatever"
0 голосов
/ 29 января 2011

Вы ищете логическое ИЛИ.Что я пытаюсь сделать здесь, насколько я понимаю, это сказать, что если x == "David" ИЛИ x == "Jonathon", то сделайте что-нибудь, чтобы вы хотели следующее.

Очевидно, что x не может иметь два значениятак и никогда не оценит как истину.Это был бы правильный код (или версия велоцираптора с использованием массива)

x=raw_input("Please enter name: ")

if x=="David" or x=="Jonathon":

    print "Whatever"

Учитывая обсуждение, вот и вся свинья, использующая простой файл конфигурации (я протестировал conf.read (). Split () так что, пожалуйста, без комментариев об этом).Конфигурационный файл будет содержать одно имя в строке без пробелов (поэтому без «фамилии имени»):

conf = open('/path/to/config.txt','r')
names = conf.read().split()

x=raw_input("Please enter name: ")
if x in names:
    print "Whatever"

Если ваш список имен может быть очень длинным, это будет наиболее приемлемым решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...