Member 14934314 Ответов: 2

Преобразование кода C++ в Python


#include <bits stdc++.h>
using namespace std;

int main() {
    int sum=0;
    int n;

    while(1){
        cin >> n;
        sum += n;
        if(sum<0)
            break;
        cout << n << '\n';
    }

    return 0;
}


Что я уже пробовал:

sum = 0
while sum > 0:
    num = int(input())
    sum = sum + num
    if sum >= 0:
        print(num)
    else:
        break

jeron1

Я ничего не знаю о питоне,
но первые 2 строки кажутся несовместимыми (цикл while никогда не будет выполнен, так как "сумма" изначально не превышает нуля). Но есть большая вероятность, что я совершенно не прав.

Patrice T

А у вас есть вопрос ?

2 Ответов

Рейтинг:
2

CPallini

Цитата:
сумма = 0
в то время как сумма > 0:
num = int(вход())
сумма = сумма + число
если сумма >= 0:
печати(кол-во)
еще:
перерыв

Ваш код сначала назначает 0 к sum а потом проверяет, есть ли sum itsef больше, чем 0.
Очень легко имитировать C++ код beahviour:
sum = 0
while True:
    num = int(input())
    sum = sum + num
    if sum < 0:
        break
    print(num)


Рейтинг:
1

OriginalGriff

Это не служба преобразования кода: мы здесь не для того, чтобы переводить код для вас.
Даже если бы мы это сделали, то в конечном итоге вы получили бы не “хороший код” на целевом языке – они основаны на очень разных фреймворках, и то, что заставляет что-то работать на одном языке, не всегда “переводится” непосредственно на другой.
Таким образом, вы получаете очень плохой код, который трудно, если не невозможно поддерживать, который не может быть хорошо обновлен, и это вызовет у вас огромную головную боль, если оригинал будет изменен. И это будет кошмар для отладки, если он не будет работать “прямо из коробки”.
Вместо этого используйте исходный код в качестве спецификации для нового приложения, написанного на целевом языке / фреймворке, и напишите его w=с нуля, используя оригинал в качестве “шаблона”. Вы получите гораздо, гораздо лучший результат, который сэкономит вам много времени в долгосрочной перспективе.