У вас есть два решения для этого:
-10000000
(в любом случае не будет работать и уродливо) или -math.inf
(будет работать в любом случае, но все еще безобразно) Помещение первого элемента вашего списка в качестве начального максимума (data[0]
) (будет работать в любом случае).
Пояснение к этому 2-му решению: если первый элемент вашего списка самый большой, условие всегда будет разрешено до False
и будет возвращен этот начальный максимум, или он заменит его другим более крупным элементом. в списке и, наконец, вернуть самый большой.
Вы можете воспользоваться рекомендуемым подходом для установки directx: всегда запускать распространяемый пакет. Поскольку он требуется, и вы уже отправляете его, запускать его не повредит, даже если он уже установлен.
похоже, что есть другое решение , предложенное Microsoft-Developer с использованием MsiQueryProductState API , увы, также опираясь на идентификаторы GUID.
Обновление : код был запущен вчера и, кажется, работает нормально. Вот что делается: проверяется последний из известных мне GUID и путь к тому, где он должен быть установлен. Если оба сбоя, он установлен. Кажется, это работает нормально.
Кроме того, он устанавливается с аргументами командной строки «/ qb», что означает «оставленный без присмотра, но не невидимый». См. этот другой пост в блоге об этих параметрах.
FWIW, GUID для Microsoft Visual C ++ 2008 / VC90 SP1 Вторично распространяемый - x86 9.0.30729
$ WINDIR \ WinSxS \ x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729 *