2017-01-22 2 views
-1

У меня есть этот код в Cc/эквивалентность Питона для такой петли?

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

Что бы эквивалент в Python?

В 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 
Смежные вопросы