2017-01-22 13 views
-1

私はPythonで同等であるものCこのようなループのためのc/Pythonの等価性?

int main(){ 
    int t = 1; 
    while(t != 0) 
     t = t + 1; 
    return 0; 
} 

にこのコードを持っていますか?

Cでは、このように見えますが、無限ループではありません。それはPythonでも似ていますか?このような

+1

を私はに投票していますSOはチュートリアルサービスではないため、この質問をトピック外として閉じてください。 OPは公式のPythonドキュメントや他の個人教師サイトをチェックしなければなりません。 –

+1

このCプログラムは未定義の動作を示しているため、著者が求めているPythonプログラムは何か分かりません。ジョナト、このプログラムはどういうことだと思いますか? –

+0

[このPythonの整数の最大値についてのこの回答](https://stackoverflow.com/questions/7604966/maximum-and-minimum-values-for-ints)では、動作が異なると言います。 – AntonH

答えて

2

Pythonの整数は、あなたのRAMの制限で、バイトの一定の数に限定されるものではありません。コンピュータがメモリ不足になるまで、このループは永遠に続くでしょう。

この動作をテストするには、sys.getsizeof(int())sys.getsizeof(int(2**128))を使用してください。とにかく


、終了同等は

t = 1 
while t < 2**32: 
    t += 1 

(32ビット整数を考えると)され

0

?:

def main(): 
    t = 1 
    while t != 0: 
     t += 1 
    return 0 

main() 
+1

正しくインデントします。 – falsetru

0

あなたはnumpyでこれを試すことができます。

import numpy as np 
t = (np.int16)(1) 
while t != 0: 
    print t 
    t += (np.int16)(1) 
print t 
関連する問題