0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AtCoder】Jupyter Lab上でexit()が使えないときの対処法

Posted at

はじめに

自己紹介

Python勉強中の大学院生です。自分が詰まったところを記録していきます。

今回の内容

atcoderの問題をjupyter lab上で解いていた際に、exit()が使えなかったので、その対処法を書きます。
具体的にはflag変数を用います。

問題となったコード

ここでは問題の内容は関係ないですが、一応紹介しておきます。
atcoderの問題

この問題のexit()を用いた解答がこちらです。

import numpy as np

n = int(input())
a_ = [list(map(int, input().split())) for i in range(n)]
b_ = [list(map(int, input().split())) for i in range(n)]

#np.ndarrayに変換
a = np.array(a_)
b = np.array(b_)

for i in range(4):
    if np.min(b - a) >= 0:
        print("Yes")
        exit(0)
    #aを回転する
    a = np.rot90(a)
print("No")

ここでは、for文のなかで条件を満たせばYesと出力し、そのままfor文から抜けるだけでなく、プログラム自体を終了するというものです。

atcoder上であれば問題なく実行されます。しかし、jupyter labで実行するとkernelが再起動?するような挙動が見られ、うまく実行できませんでした。

解決策

eixt()を使わずに、for文を抜けて、かつプログラムを終了するためには、フラグ変数を使用します。

フラグ変数を用いた解答

import numpy as np

n = int(input())
a_ = [list(map(int, input().split())) for i in range(n)]
b_ = [list(map(int, input().split())) for i in range(n)]

a = np.array(a_)
b = np.array(b_)

flag = False
for i in range(4):
    if np.min(b - a) >= 0:
        print('Yes')
        flag = True
        break
    
    else:
        a = np.rot90(a)

if not flag:
    print('No')

for文の前にflag = Falseと設定します。そして、if文の条件を満たせばflag = Trueとし、breakでfor文を抜けます。
このままでは、プログラムを終了していないことになりますが、最後のprint('No')の前に、flagのif文を設けることで、for文のなかのif文の条件を満たしていればここは実行されずに、プログラムは終了します。

まとめ

今回はatcoderの問題の中で、exit()を使わずにflag変数を用いてプログラムを終了する方法を整理しました。flag変数にブール値を代入することで、if文を用いてプログラムを終了させることができました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?