Python3.5:if语句的计算结果为true,即使被告知要执行某些操作,也不执行任何操作

Python3.5:if语句的计算结果为true,即使被告知要执行某些操作,也不执行任何操作,python,debugging,python-3.5,Python,Debugging,Python 3.5,这是你的噩梦。。python3.5完全失灵 print(value.time()>marketclosed)prints True if value.time() > marketclosed: #somecode 不执行if语句中包含的代码 目前在这种情况下使用它。没有错误,也没有编译器对该if语句的窥视。只是没什么 import datetime as dt 范围内的i(0,int(总间隔)): 真可怕。。这就像当有人在伟大的边缘时,世界就停止了转动 为什么您认为代码没有执行

这是你的噩梦。。python3.5完全失灵

print(value.time()>marketclosed)
prints True

if value.time() > marketclosed:
   #somecode
不执行if语句中包含的代码

目前在这种情况下使用它。没有错误,也没有编译器对该if语句的窥视。只是没什么

import datetime as dt
范围内的i(0,int(总间隔)):


真可怕。。这就像当有人在伟大的边缘时,世界就停止了转动

为什么您认为代码没有执行

您每次都将“value”重置为basevalue,这样您就看不到“if”语句中调用的任何效果


在“if”语句中放入一行打印行,检查它是否正在执行。

我很确定这段代码执行时,它什么也不做,因为
value+timedelta
value.combine()
的结果将被丢弃(它们创建一个新对象,而不改变原始对象)。这应该起作用:

if value.time() > marketclosed:  # advance to next day
    value += dt.timedelta(days=1)
    value = value.combine(value.date(), marketopen)

Pylint必须至少将
+
部分报告为
W0104,无意义语句

这5条打印语句中的每一条都打印了什么?
value+timedelta(days=1)
实际上什么都不做。您可能需要
+=
。下一行也一样。
if value.time() > marketclosed:  # advance to next day
    value += dt.timedelta(days=1)
    value = value.combine(value.date(), marketopen)