こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Python goto文を使うには

Python 3.7.3で以下のようにgoto文を使いたいのですが
モジュールは何をインストールすればよいでしょうか。
必要ならば1行目は別の記述でも構いません。
----------------------------
from goto import goto, label
label .A
x=input('値を入力してください')
if x!=0 :
goto .A
print('END')
-----------------------------
(Windows10,Python 3.7.3)

投稿日時 - 2019-07-08 16:13:48

QNo.9633287

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

そのエラーの表示部分が例外処理を書いた部分だと思いますが、raiseの書き方がいまとちがっているようで、Python 2のそれも結構ふるいバージョンの書き方みたいです。
raise MissingLabelError, "Missing label: %s" % targetLabel

コメントを除くと空白行も入れて100行ほどのようですので、どうしてもひつようならばPython3でエラーがでないように修正したらどうでしょうか。

投稿日時 - 2019-07-09 14:38:50

ANo.1

そもそもPythonにはgotoはありません。だからpipではインストールできません。ただ、一応モジュールがあることはあります。
http://entrian.com/goto/download.html
ここにかいてありますが、これはエイプリルフール用のジョークモジュール(たぶんPythonって実はgotoつかえるんだぞ、って人を驚かせる用?)なので、実際のプログラミングには使わないで、とありますので、公式モジュールではないから手動インストールが必要です。

もし、多重ループから抜けたいということだけでしたら、下記のようなページを参考にしてbreakを使うか、いずれにしてもgotoを使うのは避けた方が良いと思います。
https://www.sejuku.net/blog/23035

投稿日時 - 2019-07-08 17:18:19

補足

追記:
----goto-1.0-py3.7.egg-info----
Metadata-Version: 1.0
Name: goto
Version: 1.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN
------------------------------

投稿日時 - 2019-07-09 09:48:38

お礼

回答ありがとうございます。
gotoはできるだけ使わないようにしますが
どうしてもできないときのために使えるようにしておきたいです。
教えて頂きましたモジュール
goto-1.0.zip (with Windows line endings)
を解凍してpython setup.py installでインストールしようとしましたが
以下のエラーになりますが、この原因は分かりますでしょうか。
------------------------------------------------------
C:\Users\xxx\AppData\Local\Programs\Python\Python37\goto-1.0>python setup.py install
running install
running build
running build_py
creating build
creating build\lib
copying goto.py -> build\lib
running install_lib
byte-compiling C:\Users\xxxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\goto.py to goto.cpython-37.pyc
File "C:\Users\xxxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\goto.py", line 271
raise MissingLabelError, "Missing label: %s" % targetLabel
^
SyntaxError: invalid syntax
running install_egg_info
removing 'C:\Users\xxxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\goto-1.0-py3.7.egg-info' (and everything under it)
Writing C:\Users\xxxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\goto-1.0-py3.7.egg-info
C:\Users\xxxx\AppData\Local\Programs\Python\Python37\goto-1.0>
------------------------------------------------------
よろしくお願いします。

投稿日時 - 2019-07-09 09:30:15