Недействительный синтаксис Horse Race? [Дубликат]

Попробуйте этот код, он отлично работает

назначает переменную post переменной

   $username = $_POST['uname'];

   $password = $_POST['pass'];

  $result = mysql_query('SELECT * FROM userData WHERE UserName LIKE $username');

if(!empty($result)){

    while($row = mysql_fetch_array($result)){
        echo $row['FirstName'];
     }
}
206
задан jonrsharpe 10 November 2015 в 17:37
поделиться

5 ответов

Ваш фрагмент кода,

if number >= 10000 and number >= 30000:
    print ("you have to pay 5% taxes")

действительно проверяет, больше ли число 10000 и 30000.

Предполагая, что вы хотите проверить, что номер находится в диапазоне 10000 - 30000, вы можете использовать сравнение интервалов Python:

if 10000 <= number <= 30000:
    print ("you have to pay 5% taxes")

Эта функция Python далее описана в документации Python .

610
ответ дан Paolo Moretti 27 August 2018 в 05:34
поделиться

Проблема с сравнениями заключается в том, что их трудно отлаживать, когда вы помещаете >=, где должен быть <=

#                             v---------- should be <
if number >= 10000 and number >= 30000:
    print ("you have to pay 5% taxes")

Python позволяет вам просто писать , что вы подразумеваете под словами

if number in xrange(10000, 30001): # ok you have to remember 30000 + 1 here :)

В Python3 вам нужно использовать range вместо xrange.

edit: Люди, похоже, больше озабочены микробизнесом отмечает и как классные операции цепочки. Мой ответ - о защитном (менее атакующем для ошибок) программировании.

В результате претензии в комментариях я добавил здесь микро-тест для Python3.5.2

$ python3.5 -m timeit "5 in range(10000, 30000)"
1000000 loops, best of 3: 0.266 usec per loop
$ python3.5 -m timeit "10000 <= 5 < 30000"
10000000 loops, best of 3: 0.0327 usec per loop

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

$ python3.5 -m timeit -s "R=range(10000, 30000)" "5 in R"
10000000 loops, best of 3: 0.0551 usec per loop
2
ответ дан John La Rooy 27 August 2018 в 05:34
поделиться
r=range(1,4)

>>> 1 in r
True
>>> 2 in r
True
>>> 3 in r
True
>>> 4 in r
False
>>> 5 in r
False
>>> 0 in r
False
45
ответ дан Mohorelien 27 August 2018 в 05:34
поделиться
if number >= 10000 and number <= 30000:
    print ("you have to pay 5% taxes")
6
ответ дан Sandro Munda 27 August 2018 в 05:34
поделиться

Ваш оператор неверен. Должно быть if number >= 10000 and number <= 30000:. Кроме того, у Python есть сокращение для такого рода вещей, if 10000 <= number <= 30000:.

33
ответ дан Silas Ray 27 August 2018 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: