Могу ли я получить свой код для воспроизведения после определенного ввода?

Мне нравится другой ответ здесь, и в основном для использования математики даты вместо операторов даты агрегации, которые, хотя полезно, также могут быть немного неясными.

Единственное, что я хочу добавить здесь, это то, что вы также можете вернуть объект Date из структуры агрегации таким подходом, в отличие от «числовой» метки времени. Это лишь небольшая дополнительная математика на тех же принципах, используя $add :

db.collection.aggregate([
    { "$group": {
        "_id": {
            "$add": [
                { "$subtract": [
                    { "$subtract": [ "$current_date", new Date(0) ] },
                    { "$mod": [ 
                        { "$subtract": [ "$current_date", new Date(0) ] },
                        1000 * 60 * 15
                    ]}
                ] },
                new Date(0)
            ]
        },
        "count": { "$sum": 1 }
    }}
])

Контексты Date(0) в JavaScript здесь представляют ту же самую «эпоху» в более короткая форма, так как 0 миллисекунд от эпохи - эпоха. Но главное, что когда «добавление» к другому объекту даты BSON выполняется с числовым идентификатором, тогда обратное к описанному условию истинно, и конечный результат на самом деле теперь является Date.

Все драйверы вернут родной тип Date на свой язык с помощью этого подхода.

0
задан HewwoCraziness 27 June 2019 в 00:06
поделиться

3 ответа

Вы близки. Необходимо звонить main в файл Python для фактического выполнения его в первый раз, когда скрипт запущен

def main():
    number=int(input("Please enter an integer between 0 and 127: "))
    if number>127 or number<0 :
        print("I'm sorry, that is not an acceptable value. Please try again")
        main()
    elif number<=127 and number>=0 :
        print("WIP")
    else:
        print("I'm sorry, something went wrong. Please try again and be sure to enter an integer between 0 and 127.")
        main()

main()
4
ответ дан FHTMitchell 27 June 2019 в 00:06
поделиться

попробуйте это как другой метод кодирования вашей программы:

 while True:
        number=int(input("Please enter an integer between 0 and 127: "))
        if number>127 or number<0 :
            print("I'm sorry, that is not an acceptable value. Please try again")
        elif number<=127 and number>=0 :
            print("WIP")
            break
        else:
            print("I'm sorry, something went wrong. Please try again and be sure to enter an integer between 0 and 127.")
0
ответ дан Ghassen 27 June 2019 в 00:06
поделиться

Добро пожаловать в кодирование! Это - аккуратная попытка попытки решить проблему. Чтобы заставить это работать, необходимо удостовериться, что вызвали основную функцию в нижней части кода (функции не будут работать, если Вы не скажете им!

def main():
    number=int(input("Please enter an integer between 0 and 127: "))
    if number>127 or number<0 :
        print("I'm sorry, that is not an acceptable value. Please try again")
        main()
    elif number<=127 and number>=0 :
        print("WIP")
    else:
        print("I'm sorry, something went wrong. Please try again and be sure to enter an integer between 0 and 127.")
        main()

main()

, В то время как это будет работать, это могло бы вызвать проблемы в будущем. Я предложил бы использовать while цикл для этого:

while True:
    number=int(input("Please enter an integer between 0 and 127: "))
    if number>127 or number<0 :
        print("I'm sorry, that is not an acceptable value. Please try again")
    elif number<=127 and number>=0 :
        print("WIP")
        break;
    else:
        print("I'm sorry, something went wrong. Please try again and be sure to enter an integer between 0 and 127.")

while цикл будет работать как условие, которое Вы даете ему, true. Вы можете break из цикла рано... хорошо, с помощью break ключевое слово.

-2
ответ дан Oreganop 27 June 2019 в 00:06
поделиться
Другие вопросы по тегам:

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