Ap/Py/Lyginame Cpp Py

Iš wiki.angis.net.
Jump to navigation Jump to search

Pilnas šios treniruotės Python kodas yra čia

Uždavinys: reikia rasti duoto skaičiaus skaitmenų kiekį ir tų skaitmenų sumą. Palyginkime skirtumus tarp Python ir C++

##include <iostream>
#using namespace std;

#void skaitmenys(int num, int& sk_kiekis, int& sk_suma){
def skaitmenys(num):  # antraštėje reikia tik argumento
    sk_kiekis = 0; sk_suma = 0
    while num != 0: 
    #{ riestinių skliaustų nereikia
        sk_suma += num % 10
        sk_kiekis += 1  # sk_kiekis++;
        num //= 10;     # num /= 10;
    #} riestinių skliaustų nereikia
    return sk_kiekis, sk_suma # gražiname dvi reikšmes
#}

O dabar lyginame funkcijos bandymus

kiek, suma = skaitmenys(1234)
print(kiek, suma)

print(skaitmenys(50006))

#int main() {
#    int kiek, suma;
#    skaitmenys(1234, kiek, suma);
#    cout << kiek << " " << suma << endl;

#    skaitmenys(50006, kiek, suma);
#    cout << kiek << " " << suma << endl;
#}

O čia funkcijos testavimas - bandymas su daugeliu reikšmių:

for n in [1234, 50006, 9800089]:
    kiek, suma = skaitmenys(n)
    print(n, kiek, suma)

for n in [1234, 50_006, 9_800_089, 111_111_111_111]:
    print(n, skaitmenys(n))

Ir pabaigai palyginimui pilnas sprendimas su C++ [1]. Atkreipkite dėmesį kad C++ kalboje taip pat galima nerašyti konkrečių tipų kaip int ar string, o galima naudoti automatinį auto. Tuo tarpu bandant funkciją paaiškėjo, kad daugiau kaip 10 skaitmenų C++ nepriima.

Turinys