{"id":12277,"date":"2023-12-27T17:42:53","date_gmt":"2023-12-27T17:42:53","guid":{"rendered":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/?p=12277"},"modified":"2023-12-28T18:04:44","modified_gmt":"2023-12-28T18:04:44","slug":"%e6%95%b0%e5%80%a4%e3%81%ae%e3%82%aa%e3%83%bc%e3%83%80%e3%83%bc%e3%81%ae%e5%8f%96%e5%be%97%ef%bc%88%ef%bc%89","status":"publish","type":"post","link":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/?p=12277","title":{"rendered":"\u6570\u5024\u306e\u30aa\u30fc\u30c0\u30fc\u306e\u53d6\u5f97\uff08order of magnitude\uff09"},"content":{"rendered":"<p>Pyhton \u3067\u3001\u6570\u5024\u306e\u30aa\u30fc\u30c0\u30fc\u3092\u53d6\u5f97\u3059\u308b\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u307f\u307e\u3057\u305f\u3002\u4f8b\u3048\u3070\u3001\u6570\u5024\u304c 123 \u306a\u3089\u30012 \u3092\u5f97\u307e\u3059\u3002\u3042\u307e\u308a\u81ea\u4fe1\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<pre><code style=\"color: midnightblue; font-size: 12px; white-space: pre-wrap;\">%reset -f\r\n\r\nimport sys\r\n#from sympy import *\r\nimport sympy\r\n\r\ndef getOrderOfMagnitude(tmpStr):\r\n    \r\n    orderOfMagnitude = None\r\n    sign = None\r\n\r\n    #typeArray = [&quot;&lt;class &#39;sympy.core.numbers.Integer&#39;&gt;&quot;, &quot;&lt;class &#39;sympy.core.numbers.Float&#39;&gt;&quot;, &quot;&lt;class &#39;sympy.core.numbers.Zero&#39;&gt;&quot;, &quot;&lt;class &#39;sympy.core.numbers.One&#39;&gt;&quot;]\r\n    typeArray = [&quot;&lt;class &#39;sympy.core.numbers.Integer&#39;&gt;&quot;, &quot;&lt;class &#39;sympy.core.numbers.Float&#39;&gt;&quot;, &quot;&lt;class &#39;sympy.core.numbers.Zero&#39;&gt;&quot;, &quot;&lt;class &#39;sympy.core.numbers.One&#39;&gt;&quot;, &quot;&lt;class &#39;sympy.core.numbers.NegativeOne&#39;&gt;&quot;]\r\n\r\n    \r\n    try:\r\n        expr = sympy.sympify(tmpStr, evaluate=True)\r\n    except Exception as ex:\r\n        expr = ex\r\n        \r\n    print(&#39;expr : &#39;, expr)\r\n\r\n    exprClass = str(type(expr))\r\n\r\n    if exprClass == &quot;&lt;class &#39;sympy.core.sympify.SympifyError&#39;&gt;&quot;:    \r\n        return sign, orderOfMagnitude, &quot;is not numerical value or expression.&quot;\r\n    \r\n\r\n    # \u4ee5\u4e0b\u3001\u3068\u308a\u3042\u3048\u305a\u6570\u5f0f\u306b\u306f\u306a\u3063\u3066\u3044\u308b\r\n    \r\n    # \u30bc\u30ed\u306f\u5bfe\u6570\u8a08\u7b97\u304c\u3067\u304d\u306a\u3044\r\n    if exprClass == &quot;&lt;class &#39;sympy.core.numbers.Zero&#39;&gt;&quot;:\r\n        sign = 0\r\n        return sign, orderOfMagnitude, &quot;is Zero.&quot;    \r\n    \r\n    if exprClass in typeArray:\r\n        if expr &gt; 0:\r\n            sign = +1\r\n        else:\r\n            sign = -1\r\n        orderOfMagnitude = int(float(sympy.log(sympy.Abs(expr), 10)))\r\n        return sign, orderOfMagnitude, &quot;float or integer&quot;\r\n    else:\r\n        return sign, orderOfMagnitude, &quot;is expression. But is not numerical value.&quot;\r\n\r\n    \r\n    \r\n    \r\ntestArray = []\r\ntestArray.append(&#39;0&#39;)\r\ntestArray.append(&#39;1&#39;)\r\ntestArray.append(&#39;-1&#39;)\r\ntestArray.append(&#39;2&#39;) \r\ntestArray.append(&#39;100&#39;)\r\ntestArray.append(&#39;123&#39;)\r\ntestArray.append(&#39;0.010&#39;)\r\ntestArray.append(&#39;0.012&#39;)\r\ntestArray.append(&#39;0.00123&#39;)\r\n\r\ntestArray.append(&#39;-123&#39;)\r\ntestArray.append(&#39;- 123&#39;) # \u7b26\u53f7\u3068\u306e\u9593\u306b\u7a7a\u767d\r\ntestArray.append(&#39;-123 &#39;) # \u53f3\u5074\u306b\u7a7a\u767d\r\ntestArray.append(&#39; - 123  &#39;) # \u591a\u6570\u306e\u7a7a\u767d\r\ntestArray.append(&#39; -0123  &#39;) \r\ntestArray.append(&#39;-0.123&#39;)\r\n\r\ntestArray.append(&#39;0.12e-3&#39;)\r\ntestArray.append(&#39;-0.12e-3&#39;)\r\ntestArray.append(&#39;-0.12E-3&#39;)\r\ntestArray.append(&#39;-0.0120e-3&#39;)\r\ntestArray.append(&#39; + 0.01200e-3&#39;)\r\ntestArray.append(&#39;-2.14*10^3&#39;)\r\ntestArray.append(&#39;-2.14*10**3&#39;)\r\n\r\ntestArray.append(&#39;123*10^2*3*10^2&#39;)\r\ntestArray.append(&#39;x*y&#39;) \r\ntestArray.append(&#39;sin(x)&#39;) \r\ntestArray.append(&#39;x[0]&#39;) \r\ntestArray.append(&#39;x1&#39;) \r\ntestArray.append(&#39;2*pi&#39;) \r\n\r\nfor i in range(len(testArray)):\r\n\r\n    tmpStr = testArray[i]\r\n    significantFigures = -1\r\n    orderOfMagnitude = None\r\n    sign = None\r\n    \r\n    \r\n    print(&#39;\\nNo. &#39; + str(i))\r\n    print(&#39;&quot;&#39; + tmpStr + &#39;&quot;&#39;)\r\n\r\n    sign, orderOfMagnitude, message = getOrderOfMagnitude(tmpStr)    \r\n    print(message)\r\n    print(&#39;sign : &#39; + str(sign) + &#39;, orderOfMagnitude : &#39; + str(orderOfMagnitude))\r\n\r\n<\/code><\/pre>\n<p>getOrderOfMagnitude \u3068\u3044\u3046\u95a2\u6570\u306b\u6570\u5f0f\u3092\u6587\u5b57\u5217\u3067\u6e21\u3059\u3068\u3001\u7b26\u53f7\u3068\u30aa\u30fc\u30c0\u30fc\u3068\u6570\u5024\u306a\u306e\u304b\u3069\u3046\u304b\u306a\u3069\u306e\u60c5\u5831\u306e\uff13\u5909\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u304c\u5b9f\u884c\u7d50\u679c\u3067\u3059\u3002<\/p>\n<pre><code style=\"color: midnightblue; font-size: 12px; white-space: pre-wrap;\">\u200b\r\nNo. 0\r\n&quot;0&quot;\r\nexpr :  0\r\nis Zero.\r\nsign : 0, orderOfMagnitude : None\r\n\r\nNo. 1\r\n&quot;1&quot;\r\nexpr :  1\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : 0\r\n\r\nNo. 2\r\n&quot;-1&quot;\r\nexpr :  -1\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 0\r\n\r\nNo. 3\r\n&quot;2&quot;\r\nexpr :  2\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : 0\r\n\r\nNo. 4\r\n&quot;100&quot;\r\nexpr :  100\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : 2\r\n\r\nNo. 5\r\n&quot;123&quot;\r\nexpr :  123\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : 2\r\n\r\nNo. 6\r\n&quot;0.010&quot;\r\nexpr :  0.0100000000000000\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : -2\r\n\r\nNo. 7\r\n&quot;0.012&quot;\r\nexpr :  0.0120000000000000\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : -1\r\n\r\nNo. 8\r\n&quot;0.00123&quot;\r\nexpr :  0.00123000000000000\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : -2\r\n\r\nNo. 9\r\n&quot;-123&quot;\r\nexpr :  -123\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 2\r\n\r\nNo. 10\r\n&quot;- 123&quot;\r\nexpr :  -123\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 2\r\n\r\nNo. 11\r\n&quot;-123 &quot;\r\nexpr :  -123\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 2\r\n\r\nNo. 12\r\n&quot; - 123  &quot;\r\nexpr :  -123\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 2\r\n\r\nNo. 13\r\n&quot; -0123  &quot;\r\nexpr :  Sympify of expression &#39;could not parse &#39; -0123  &#39;&#39; failed, because of exception being raised:\r\nSyntaxError: invalid syntax (&lt;string&gt;, line 1)\r\nis not numerical value or expression.\r\nsign : None, orderOfMagnitude : None\r\n\r\nNo. 14\r\n&quot;-0.123&quot;\r\nexpr :  -0.123000000000000\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 0\r\n\r\nNo. 15\r\n&quot;0.12e-3&quot;\r\nexpr :  0.000120000000000000\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : -3\r\n\r\nNo. 16\r\n&quot;-0.12e-3&quot;\r\nexpr :  -0.000120000000000000\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : -3\r\n\r\nNo. 17\r\n&quot;-0.12E-3&quot;\r\nexpr :  -0.000120000000000000\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : -3\r\n\r\nNo. 18\r\n&quot;-0.0120e-3&quot;\r\nexpr :  -1.20000000000000e-5\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : -4\r\n\r\nNo. 19\r\n&quot; + 0.01200e-3&quot;\r\nexpr :  1.20000000000000e-5\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : -4\r\n\r\nNo. 20\r\n&quot;-2.14*10^3&quot;\r\nexpr :  -2140.00000000000\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 3\r\n\r\nNo. 21\r\n&quot;-2.14*10**3&quot;\r\nexpr :  -2140.00000000000\r\nfloat or integer\r\nsign : -1, orderOfMagnitude : 3\r\n\r\nNo. 22\r\n&quot;123*10^2*3*10^2&quot;\r\nexpr :  3690000\r\nfloat or integer\r\nsign : 1, orderOfMagnitude : 6\r\n\r\nNo. 23\r\n&quot;x*y&quot;\r\nexpr :  x*y\r\nis expression. But is not numerical value.\r\nsign : None, orderOfMagnitude : None\r\n\r\nNo. 24\r\n&quot;sin(x)&quot;\r\nexpr :  sin(x)\r\nis expression. But is not numerical value.\r\nsign : None, orderOfMagnitude : None\r\n\r\nNo. 25\r\n&quot;x[0]&quot;\r\nexpr :  &#39;Symbol&#39; object is not subscriptable\r\nis expression. But is not numerical value.\r\nsign : None, orderOfMagnitude : None\r\n\r\nNo. 26\r\n&quot;x1&quot;\r\nexpr :  x1\r\nis expression. But is not numerical value.\r\nsign : None, orderOfMagnitude : None\r\n\r\nNo. 27\r\n&quot;2*pi&quot;\r\nexpr :  2*pi\r\nis expression. But is not numerical value.\r\nsign : None, orderOfMagnitude : None\r\n\r\n\u200b<\/code><\/pre>\n<pre><code style=\"color: midnightblue; font-size: 12px; white-space: pre-wrap;\"><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Pyhton \u3067\u3001\u6570\u5024\u306e\u30aa\u30fc\u30c0\u30fc\u3092\u53d6\u5f97\u3059\u308b\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u307f\u307e\u3057\u305f\u3002\u4f8b\u3048\u3070\u3001\u6570\u5024\u304c &#8230; <a class=\"more-link\" href=\"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/?p=12277\">Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-12277","post","type-post","status-publish","format-standard","hentry","category-column"],"_links":{"self":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/12277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12277"}],"version-history":[{"count":12,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/12277\/revisions"}],"predecessor-version":[{"id":12296,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/12277\/revisions\/12296"}],"wp:attachment":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12277"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}