Open sirex opened 9 years ago
Vis dėl to nusprendžiau palikti x, y = map(int, line.split())
, manau bent jau tokią išraišką tikrai verta išmokti, o jos nenaudoti programuojant Python, yra tiesiog nuodėmė.
ok, tik komentaruose paaiškint vera: "map" pritaiko "int" (pavertimą sveiku skaičiumi) kiekvienam elementui iš sąrašo, kurį gaunam suskaidę eilutę.
ps.: teoriškai eilutėje skaičiai gali būt atskirti daugiau negu vienu tarpu... (C++/Paskaliui tai nekenktų..), bet gal nereikia sureikšminti -- dažniausiai normaliai būna.. Galima komentare parašyti, kad: "split" suskaido eilutę pagal vieno tarpo skirtukus.
ok, tik komentaruose paaiškint vera: "map" pritaiko "int" (pavertimą sveiku skaičiumi) kiekvienam elementui iš sąrašo, kurį gaunam suskaidę eilutę.
Aš galvoju, kad tokius paaiškinimus vertėtų iškelti iš komentarų į README.rst failą, kuriame būtų paaiškinti pagrindiniai skirtumai tarp Python, Pascal ir C++.
Toks, dalykas kaip sąrašo skaičių skaitymas iš failo yra labai dažnas dalykas egzamino užduotyse. Todėl paaiškinimas, kad:
with open('U1.txt') as f:
x, y = map(int, f.readline().split())
Daro lygiai tą patį ką Pascal:
var f : text;
x, y : integer;
begin
assign(f, 'U1.txt');
reset(f);
readln(f, x, y);
close(f);
end.
Ir C++:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream f ("U1.txt");
int x, y;
f >> x >> y;
f.close();
}
Tikrai turėtų būti įtrauktas į README.rst
Bet kokiu atveju, šios trys kalbos yra labai skirtingos, todėl nereikėtų stengtis Python kalboje vienas prie vieno kopijuoti Pascal arba C++.
ps.: teoriškai eilutėje skaičiai gali būt atskirti daugiau negu vienu tarpu... (C++/Paskaliui tai nekenktų..), bet gal nereikia sureikšminti -- dažniausiai normaliai būna..
.split()
be argumentų taip pat nekenkia jei yra daugiau nei vienas tarpas:
>>> 'a b c d e'.split()
['a', 'b', 'c', 'd', 'e']
@dz0 Nusprendžiau iškelti atskirų uždavinių aptarimą į atskiras užduotis.
Dar kartą patobulinau užduotį, šį kartą pertvarkiau pagal https://github.com/python-dirbtuves/it-brandos-egzaminai/issues/3#issuecomment-90879301.