Pieniä kysymyksiä ohjelmoinnista

Piti oikein etsiä, kun Pythonia en tunne: "list comprehension" on näköjään nimi tuolle num + op for num, op in data
Ei ole, jos ympärillä ei ole hakasulkuja. Jos ympärillä on tavalliset sulut, niin se on "generator expression", joka on tavallaan "laiska list comprehension", eli operaatiot suoritetaan vasta silloin kun niitä tarvitaan, ja sitä kokonaista uutta listaa ei koskaan muodosteta.
 
Ei ole, jos ympärillä ei ole hakasulkuja. Jos ympärillä on tavalliset sulut, niin se on "generator expression", joka on tavallaan "laiska list comprehension", eli operaatiot suoritetaan vasta silloin kun niitä tarvitaan, ja sitä kokonaista uutta listaa ei koskaan muodosteta.
Eivätkö nuo sulut kuulu Stringin join() metodille?

Sama se, jännää:
Python:
>>> a = [2,3,4,5]
>>> val ** 2 for val in a
  File "<stdin>", line 1
    val ** 2 for val in a
             ^
SyntaxError: invalid syntax
>>> (val ** 2 for val in a)
<generator object <genexpr> at 0x7fd90f97e9e0>
>>> [val ** 2 for val in a]
[4, 9, 16, 25]
>>> list(val ** 2 for val in a)
[4, 9, 16, 25]
>>> list((val ** 2 for val in a))
[4, 9, 16, 25]

C++23 imitoi:
C++:
#include <print>
#include <vector>
#include <ranges>
int main() {
  std::vector a{2,3,4,5};
  println("{:}", a | std::views::transform([](int n) { return n * n; }));
}
Tulos:
Koodi:
[4, 9, 16, 25]
 
Eivätkö nuo sulut kuulu Stringin join() metodille?

Sama se, jännää:
Python:
>>> a = [2,3,4,5]
>>> val ** 2 for val in a
  File "<stdin>", line 1
    val ** 2 for val in a
             ^
SyntaxError: invalid syntax
>>> (val ** 2 for val in a)
<generator object <genexpr> at 0x7fd90f97e9e0>
>>> [val ** 2 for val in a]
[4, 9, 16, 25]
>>> list(val ** 2 for val in a)
[4, 9, 16, 25]
>>> list((val ** 2 for val in a))
[4, 9, 16, 25]

C++23 imitoi:
C++:
#include <print>
#include <vector>
#include <ranges>
int main() {
  std::vector a{2,3,4,5};
  println("{:}", a | std::views::transform([](int n) { return n * n; }));
}
Tulos:
Koodi:
[4, 9, 16, 25]
Hyvä kysymys! Pythonissa on erikseen poikkeussääntö tilanteeseen, jossa generator expression on funktion/metodin ainut argumentti. Tällöin yhdet sulut riittää:
The parentheses can be omitted on calls with only one argument.
 
Mitä palvelua(API) kannattaisi käyttää ihan perus tekstiviestien lähettämiseen? Kotimaisen marjatilan varaus-/tilausjärjestelmä kyseessä ja keskimäärin noin 5 muistutusviestiä joutuisi päivän aikana varmaan lähettämään (ei ole automatisoitu järjestelmä, vaan nappia painamalla lähtee muistutus, jos asiakasta ei ala kuulumaan). Twiliota tuossa jo testailinkin, mutta löytyykö parempia vaihtoehtoja?
 
Viimeksi muokattu:
Mitä palvelua(API) kannattaisi käyttää ihan perus tekstiviestien lähettämiseen? Kotimaisen marjatilan varaus-/tilausjärjestelmä kyseessä ja keskimäärin noin 5 muistutusviestiä joutuisi päivän aikana varmaan lähettämään (ei ole automatisoitu järjestelmä, vaan nappia painamalla lähtee muistutus, jos asiakasta ei ala kuulumaan). Twiliota tuossa jo testailinkin, mutta löytyykö parempia vaihtoehtoja?
Jos pieni koodailu ei haittaa niin hanki vaikka joku edullinen Teltonikan mobiilireititin ja käytä sen tekstiviestiominaisuutta. Et ole ulkopuolisten palveluiden armoilla ja maksat vain tavallisen tekstiviestin hinnan eli pakettiliittymissä käytännössä kuukausimaksulla saat ehkä kaikki kuukauden viestit lähetettyä.

Itse olen tuota Teltonikan API:a käyttänyt tekstiviestien lähettämiseen ja on toiminut moitteettomasti. Ei ole montaa riviä python-koodia mikä riittää tekstarin lähettämiseen. Vanhemmalla firmiksellä pystyisi käyttämään jopa HTTP POST -metodia jolloin käytännössä yhdellä koodirivillä pystyisi tekstarin lähettämään, mutta vanha firmis on aina vanha firmis, uudemmissa on aika paljon tietoturvapätsejä.
 
Jos pieni koodailu ei haittaa niin hanki vaikka joku edullinen Teltonikan mobiilireititin ja käytä sen tekstiviestiominaisuutta. Et ole ulkopuolisten palveluiden armoilla ja maksat vain tavallisen tekstiviestin hinnan eli pakettiliittymissä käytännössä kuukausimaksulla saat ehkä kaikki kuukauden viestit lähetettyä.

Itse olen tuota Teltonikan API:a käyttänyt tekstiviestien lähettämiseen ja on toiminut moitteettomasti. Ei ole montaa riviä python-koodia mikä riittää tekstarin lähettämiseen. Vanhemmalla firmiksellä pystyisi käyttämään jopa HTTP POST -metodia jolloin käytännössä yhdellä koodirivillä pystyisi tekstarin lähettämään, mutta vanha firmis on aina vanha firmis, uudemmissa on aika paljon tietoturvapätsejä.
Kiitoksia vinkistä, itselläkin duunissa olisi tarve lähetellä tekstareita ja sattuu olemaan Teltonikan mobiilireititinkin talon varayhteytenä. Tosin se hankalampi osuus on saada järjestelmistä joihin ei ole juurikaan pääsyä tiedot ulos.
 

Statistiikka

Viestiketjuista
312 471
Viestejä
5 304 518
Jäsenet
84 283
Uusin jäsen
jogurtti

Hinta.fi

Back
Ylös Bottom