Compare commits

...

2 Commits

6 changed files with 158 additions and 2 deletions

View File

@ -6,7 +6,8 @@
# $@ takes all parameters so another DNS server can be specified
# e.g. ./dns-ecs-debug.bash @9.9.9.11
echo 'Remember the usage being ./dns-ecs-debug.bash @<server>'
printf 'Remember the usage being ./dns-ecs-debug.bash @<server>\n'
printf '\tWARNING! Unbound on localhost seems to eat the ECS!\n\n'
# Let's get our own IPs first
echo "Actual IP addresses"

View File

@ -1,4 +1,8 @@
# This is for doctoc should I decide to use it in the future
*.md text eol=lf
# These files have been mostly modified from Windows in this directory and
# OneDrive kept them as crlf
*.py text eol=crlf
.editorconfig text eol=crlf
.gitattributes text eol=crlf
*.md text eol=lf
requirements.txt text eol=crlf

40
python/taitotalo/main6.py Normal file
View File

@ -0,0 +1,40 @@
"""
Kysytään käyttäjältä kaksi lukua ja lasketaan summa, erotus ja tulo.
Tarkistetaan myös, ettei toinen luku ole nolla ja suoritetaan jakolasku.
"""
# Tuodaan sys-kirjasto, jotta voidaan poistua myöhemmin virhetilanteessa.
import sys
# Määritetään pääfunktio, jotta voidaan importata tämä kirjasto muualta.
def main():
"""
Pääfunktio.
"""
# Pyydetään käyttäjältä kaksi lukua varautuen siihen, ettei käyttäjä syötä lukuja oikeassa muodossa.
try:
luku1 = float(input("Anna ensimmäinen luku: "))
luku2 = float(input("Anna toinen luku: "))
# Mikäli käyttäjä syöttää jotakin, mitä emme voi muuttaa float:iksi tai int:iksi, annetaan virheilmoitus ja poistutaan virhekoodiin.
except ValueError:
print("Syötä luku!")
sys.exit(1)
# Tulostetaan laskutoimitukset. Käytetään int siisteyden vuoksi, vaikka uhrataan tuki desimaalien laskemiselle.
print(int(luku1), "+", int(luku2), "=", int(luku1 + luku2))
print(int(luku1), "-", int(luku2), "=", int(luku1 - luku2))
print(int(luku1), "*", int(luku2), "=", int(luku1 * luku2))
# Varaudutaan siihen, että käyttäjä syöttää luvuksi nollan ja siinä tapauksessa kieltäydytään suorittamasta tehtävää.
if luku1 == 0 or luku2 == 0:
print("Nollalla ei voi jakaa.")
else:
# print(luku1, "/", luku2, "=", (luku1 / luku2))
print(int(luku1), "/", int(luku2), "=", (luku1 / luku2))
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
if __name__ == "__main__":
main()

66
python/taitotalo/main7.py Normal file
View File

@ -0,0 +1,66 @@
"""
Sovellus arpoo luvun ja pyytää käyttäjää arvaamaan sen.
"""
# Tuodaan kirjastot random numeron myöhemmin arpomista varten.
import random
# Määritetään pääfunktio
def main():
"""
Pääfunktio.
"""
# Kutsutaan funktiota
arvaa_numero()
# Määritetään tehtävänannossa vaadittu funktio.
def arvaa_numero():
"""
Sovellus oikeasti toteutetaan täällä.
"""
# Luodaan sattumanvaraisesti oikea vastaus tallentaen se kokonaisluvuksi.
oikeavastaus = int(random.randrange(0, 10))
# Luodaan muuttuja laskemaan yrityäsiä
laskuri = 0
# Debuggausta varten tulostetaan oikea vastaus
# print(oikeavastaus)
while True:
laskuri += 1
# Pyydetään käyttäjältä luku varautuen virheelliseen syötteeseen. Se on tärkeää muuttaa int:iksi tai muuten se on string!
try:
arvaus = int(input("Arvaa numero? "))
# Virhesyötteen tapahtuessa
except ValueError:
print("Et antanut numeroa.")
return
# Jos käyttäjä arvaa oikein, poistutaan loopista
if arvaus == oikeavastaus:
# Poistetaan taas välilyönti
print(
"Onnittelut! :)\nArvasit oikein ",
laskuri,
". yritykselläsi. Luku oli siis ",
oikeavastaus,
".",
sep="",
)
break
# Muuten avustetaan käyttäjää antamalla vihje. Printistä myös poistetaan erottavat välilyönnit, jotka tehdään itse, jotta arvauksen ja pisteen väliin ei tule välilyöntejä
elif arvaus < oikeavastaus:
print("Oikea luku on suurempi kuin ", arvaus, ".", sep="")
else:
print("Oikea luku on pienempi kuin ", arvaus, ".", sep="")
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
if __name__ == "__main__":
main()

43
python/taitotalo/main8.py Normal file
View File

@ -0,0 +1,43 @@
"""
Sovellus tekee listasta pareja
"""
# Tuodaan paketti tabulate.
import tabulate
# Tarvitaan parien muodostamiseen
import random
# Määritetään pääfunktio
def main():
"""
Pääfunktio.
"""
# Määritetään nimet{,2} lista
nimet = ["Antti", "Pekka", "Esa"]
nimet2 = ["Emmi", "Maini", "Reetta"]
# Arvotaan nimilistoista kahdet parit.
random_names1 = random.sample(nimet, 3)
random_names2 = random.sample(nimet2, 3)
# Luo tuplen, jossa zip yhdistää random_names{1,2} vastaavan kohdan kanssa, jotka sitten laitetaan listaan.
name_pairs = list(zip(random_names1, random_names2))
print(name_pairs)
# Tehdään taulukko nimistä, otsikkoina "Etunimi"
table = tabulate.tabulate(
name_pairs,
headers=["Etunimi", "Etunimi"],
tablefmt="github",
)
# Tulostetaan taulukko
print(table)
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
if __name__ == "__main__":
main()

View File

@ -0,0 +1,2 @@
# main8.py requires this
tabulate