【问题标题】:"if statement" in pythonpython中的“if语句”
【发布时间】:2018-01-21 23:39:59
【问题描述】:

我有下面的代码(附上)。我想要做的是提示用户从 Quandl 网站(金融/经济数据)输入代码,以便检索数据集。一个条件,数据应该是从用户输入股票时开始的 1 个月长度。假设程序在 22/01/2018 运行,那么数据应该从 22/12/2017 到 22/ 01/2018 (这是我正在努力解决的第一件事)。其次,我想确保代码输入正确,所以我想做出一个条件,使得“如果命令“quandl.get(“ticker”,start_date=trim_start,end_date=trim_end)”不检索数据- 重新输入代码” 请告诉我这个问题。

'''Installation steps - go to "Command line" and pass "pip install quandl"'''
 import quandl                        #To extract the data from Quandl 
 website
 import matplotlib.pyplot as plt      #Plotting library
 import datetime
def MainFormula():
ticker = None 
while ticker is None:
    ticker = input("Please, enter stock ticker (should be available in Quandl Website): ")
    try:
        trim_end=datetime.datetime.now()
        trim_start= trim_end - 30
        if quandl.get("ticker", start_date=trim_start, end_date=trim_end) == True:
            print("Here are the results: ")             
        else:            
            print("Please, enter correct stock ticker (check Quandl website)! ")
    except ValueError as e1:
        print("Please, enter correct alpha (should be float - example: 0.2) ")                 

 program = MainFormula()               
 print(program)

【问题讨论】:

标签: python if-statement error-handling conditional


【解决方案1】:

回答第一部分。您可以使用datetime 模块。像这样

from datetime import datetime, timedelta

date_time = datetime.now()

one_month_ago = date_time - timedelta(weeks=4)

print('NOW: ', date_time)
print('ONE_MONTH_AGO: ', one_month_ago)

NOW:  2018-01-22 10:49:59.967355
ONE_MONTH_AGO:  2017-12-25 10:49:59.967355

我不熟悉quandle API。我将为简要阅读documentation

更新

以下是我尝试解决您的问题的方法。你可以看到我只是试图得到一些我知道会失败的东西。我导入正确的异常并在 try except 块中处理它们。我希望这会有所帮助。

>>> import quandl
>>> result = quandl.get('NOTHING')
Traceback (most recent call last):
SyntaxError: Invalid format used for Quandl database code.         The correct format is: `DATABASE_CODE/DATASET_CODE`
>>> result = quandl.get('GOOG/NYSE_IBM')
Traceback (most recent call last):
quandl.errors.quandl_error.NotFoundError: (Status 404) (Quandl Error QECx02) You have submitted an incorrect Quandl code. Please check your Quandl codes and try again.
>>> from quandl.errors.quandl_error import NotFoundError
>>> def example_error_handling(*args, **kwargs):
...     try:
...         result = quandl.get(*args, **kwargs)
...     except (SyntaxError, NotFoundError):
...         print('INCORRECT ARGUMENTS. PLEASE TRY AGAIN')
...         # Should probably raise an exception here. Handle it better than a print!
...     else:
...         return result
...     
>>> result = example_error_handling('GOOG/NYSE_IBM')
INCORRECT ARGUMENTS. PLEASE TRY AGAIN

【讨论】:

  • 非常感谢!我使用了你的陈述并修改了我的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-22
相关资源
最近更新 更多