Делает ли на ноль в Python сбой Windows 98 и др.? - PullRequest
5 голосов
/ 21 февраля 2012

Профессор сказал мне, что деление на ноль или получение отрицательного квадратного корня в Python дает сбой, если вы делаете это в Windows 98.

Это кажется нелепым, поскольку Python является интерпретируемым языком, но у меня нет способа проверить это, а Windows печально известна ... Кто-нибудь может подтвердить или опровергнуть утверждение? Если да, то связано ли это с тем, что Python написан на C? (И действительно ли в C произойдет сбой всей ОС при делении на ноль!?)

Ответы [ 3 ]

7 голосов
/ 21 февраля 2012
Python 2.7.2 (Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Joke)] on win98
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> math.sqrt(-1) / 0
A fatal exception 0E has occurred at 0028:C0011E36 in VXD VMM(01) +
00010E36.  The current application will be terminated

* Press any key to terminate the current application.
* Press CTRL+ALT+DEL again to restart your computer.  You will
  lose any unsaved information in all applications

enter image description here


* отказ от ответственности : Конечно, я все это придумал.Я склонен согласиться с Тито в этом - профессор троллинга является наиболее вероятным объяснением!

░░░░░▄▄▄▄▀▀▀▀▀▀▀▀101
░░░░░█░░░░▒▒▒▒▒▒▒▒▒▒▒▒░░▀▀▄░░░░
░░░░█░░░▒▒▒▒▒▒░░░░░░░░▒▒▒░░█░░░
░░░█░░░░░░▄██▀▄▄░░░░░▄▄▄░░░░█░░
░▄▀▒▄▄▄▒░█▀▀▀▀▄▄█░░░██▄▄█░░░░█░
█░▒█▒▄░▀▄▄▄▀░░░░░░░░█░░░▒▒▒▒▒░█
█░▒█░█▀▄▄░░░░░█▀░░░░▀▄░░▄▀▀▀▄▒█
░█░▀▄░█▄░█▀▄▄░▀░▀▀░▄▄▀░░░░█░░█101
░░█░░░▀▄▀█▄▄░█▀▀▀▄▄▄▄▀▀█▀█░█░░
░░░█░░░░██░░▀█▄▄▄█▄▄█▄████░█░░░
░░░░█░░░░▀▀▄░█░░░█░█▀██████░█░░
░░░░░▀▄░░░░░▀▀▄▄▄█▄█▄█▄█▄▀░░█░░
░░░░░░░▀▄▄░▒▒▒▒░░░░░░░░░░▒░░░█░
░░░░░░░░░░▀▀▄▄░▒▒▒▒▒▒▒▒▒▒░░░░█░
░░░░░░░░░░░░░░▀▄▄▄▄▄░░░░░░░░█░░

6 голосов
/ 21 февраля 2012

Это должно привести к исключению ZeroDivisionError.Я не могу себе представить, почему в Windows 98 все будет иначе.

>>> 1/0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero

Какая замечательная трата времени.

Под Win98 с Python 2.3.5

Python 2.3.5 (#62, Feb  8 2005, 16:23:02) [MSC v.1200 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

    ****************************************************************
    Personal firewall software may warn about the connection IDLE
    makes to its subprocess using this computer's internal loopback
    interface.  This connection is not visible on any external
    interface and no data is sent to or received from the Internet.
    ****************************************************************

IDLE 1.0.5      
>>> import sys
>>> sys.getwindowsversion()
(4, 10, 67766446, 1, ' A ')
>>> sys.version_info
(2, 3, 5, 'final', 0)
>>> 1/0

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in -toplevel-
    1/0
ZeroDivisionError: integer division or modulo by zero
>>>
2 голосов
/ 21 февраля 2012

Если я не ошибаюсь, я помню, что для некоторых семейств процессоров (AMD?) Деление на ноль вызывает зацикливание процессора и приводит к сбою системы (на win 95 и win 98).

Может быть, ваш профессор имел в виду это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...