mirror of
https://gitea.blesmrt.net/mikaela/scripts.git
synced 2024-11-29 14:49:22 +01:00
python/taitotalo: import day three
This commit is contained in:
parent
23d0a7241f
commit
63de2e0f6f
@ -5,10 +5,11 @@ root = true
|
|||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
max_line_length = 79
|
max_line_length = 79
|
||||||
end_of_line = crlf
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
end_of_line = lf
|
|
||||||
|
|
||||||
[*.py]
|
[*.py]
|
||||||
profile = black
|
profile = black
|
||||||
|
max_line_length = 79
|
||||||
|
#end_of_line = crlf
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
end_of_line = lf
|
||||||
|
4
python/taitotalo/.gitignore
vendored
Normal file
4
python/taitotalo/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
uusi.txt
|
||||||
|
# This is intentionally in tree at least until the script becomes better. If
|
||||||
|
# it does...
|
||||||
|
kanta.tsv
|
2
python/taitotalo/kanta.tsv
Normal file
2
python/taitotalo/kanta.tsv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Username Password
|
||||||
|
admin adminpw
|
|
56
python/taitotalo/main10.py
Normal file
56
python/taitotalo/main10.py
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
"""
|
||||||
|
Kirjoita ohjelma joka
|
||||||
|
Tulostaa Tervetuloa
|
||||||
|
Seuraavaksi # olen nimi olen ikä
|
||||||
|
Seuraavaksi ohjelmaan pitää syöttää nimi ja ikä
|
||||||
|
Tulostus syötetty nimi ja ikä
|
||||||
|
Kolmas tulostus
|
||||||
|
ikä tarkistus
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Vaaditaan virhe-poistumiseen
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Pääfunktio.
|
||||||
|
"""
|
||||||
|
|
||||||
|
print("Tervetuloa")
|
||||||
|
|
||||||
|
nimeni = "Python3-koodinpätkä."
|
||||||
|
ikani = int(0)
|
||||||
|
|
||||||
|
print("Olen", ikani, "-vuotias", nimeni)
|
||||||
|
nimi = input("Mikä sinun nimesi on?: ")
|
||||||
|
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin numeroita ja varaudutaan asiaan
|
||||||
|
try:
|
||||||
|
# Tallennetaan kokonaislukuna käyttäjältä pyydetty ikä
|
||||||
|
ika = int(input("Entä kuinka vanha olet? "))
|
||||||
|
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla, jos käyttäjä ei syöttänyt numeroita
|
||||||
|
except ValueError:
|
||||||
|
print("Syötä ikäsi numeroina!")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Tulostetaan käyttäjän tiedot
|
||||||
|
# print("Olet", nimi, "ja olen", ika, "-vuotias")
|
||||||
|
print("Olet", ika, "-vuotias", nimi)
|
||||||
|
|
||||||
|
# Aloitetaan kokeilemalla onko käyttäjä alle 18.
|
||||||
|
if ika < 18:
|
||||||
|
print("Olet alaikäinen")
|
||||||
|
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän alle 65.
|
||||||
|
elif (ika >= 18) and (ika < 65):
|
||||||
|
print("Olet täysi-ikäinen")
|
||||||
|
# Mikäli ikä on 65 tai yli, käyttäjä on seniori.
|
||||||
|
elif ika >= 65:
|
||||||
|
print("Olet seniori")
|
||||||
|
# Muussa tapauksessa tulostetaan virheilmoitus.
|
||||||
|
else:
|
||||||
|
print("Jokin meni pieleen. Yritä uudelleen.")
|
||||||
|
|
||||||
|
|
||||||
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
34
python/taitotalo/main11.py
Normal file
34
python/taitotalo/main11.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
"""
|
||||||
|
Tulostaa numerot 0-9
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Vaaditaan virhe-poistumiseen
|
||||||
|
# import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Pääfunktio.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Alustetaan kierros ennen silmukkaa ja kerrotaan moneen halutaan
|
||||||
|
kierros = 0
|
||||||
|
# Kohteeseen täytyy lisätä 1 tai viimeinen haluttu numero ei toistu.
|
||||||
|
kohde = 9 + 1
|
||||||
|
|
||||||
|
# Silmukoidaan kun kierros on alle kohteen
|
||||||
|
while kierros < kohde:
|
||||||
|
print("Kierros", kierros)
|
||||||
|
# Nostetaan kierrosta, jottei silmukoida ikuisesti kierrosta 1
|
||||||
|
kierros += 1
|
||||||
|
|
||||||
|
# Lopuksi pysähdytään
|
||||||
|
if kierros > kohde:
|
||||||
|
break
|
||||||
|
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
44
python/taitotalo/main12.py
Normal file
44
python/taitotalo/main12.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
"""
|
||||||
|
Plussataan lukuja, kunnes käyttäjä sanoo -1
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Vaaditaan virhe-poistumiseen
|
||||||
|
# import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Pääfunktio.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Tähän plussataan luvut
|
||||||
|
laskuri = int(0)
|
||||||
|
|
||||||
|
# Ikuisuuslooppi
|
||||||
|
while True:
|
||||||
|
|
||||||
|
# Varaudutaan virheellisiin syötteisiin
|
||||||
|
try:
|
||||||
|
# Pyydetään käyttäjän syötettä
|
||||||
|
# syote = int(input("Anna luku. -1 lopettaa. "))
|
||||||
|
syote = int(input("Anna luku. 0 lopettaa. "))
|
||||||
|
|
||||||
|
# Poistutaan kun -1 syötetään
|
||||||
|
# if syote == -1:
|
||||||
|
if syote == 0:
|
||||||
|
print("Ohjelma päättyi. Antamiesi lukujen summa oli", laskuri)
|
||||||
|
# print("Ohjelma päättyi.")
|
||||||
|
break
|
||||||
|
|
||||||
|
# Lisätään syöte laskuriin
|
||||||
|
laskuri += syote
|
||||||
|
print("Antamiesi lukujen summa on", laskuri)
|
||||||
|
|
||||||
|
# Jos lukua ei syötetty.
|
||||||
|
except ValueError:
|
||||||
|
print("Syötä luku!")
|
||||||
|
|
||||||
|
|
||||||
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
23
python/taitotalo/main13.py
Normal file
23
python/taitotalo/main13.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
"""
|
||||||
|
Lisää tekstiä tiedostoon
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Pääfunktio.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Kysytään mitä käyttäjä haluaa kirjoittaa
|
||||||
|
syote = input("Mitä haluaisit kirjoittaa tiedostoon? ") + "\r\n"
|
||||||
|
# Avataan uusi.txt kirjoitustilassa. HUOM! Ylikirjoittaa edellisen
|
||||||
|
# sisällön, käytä "a" lisätäksesi! Pylint valittaa jollei määritetä
|
||||||
|
# merkistöä.
|
||||||
|
with open("uusi.txt", "a", encoding="utf-8", newline="\r\n") as f:
|
||||||
|
f.write(syote)
|
||||||
|
|
||||||
|
|
||||||
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
|
||||||
|
# pääfunktio.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
87
python/taitotalo/main14.py
Normal file
87
python/taitotalo/main14.py
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
"""
|
||||||
|
1. Tallenna uusi salasana
|
||||||
|
2. Hae tallennettu salasana
|
||||||
|
3. Poista tallennettu salasana
|
||||||
|
4. Lopeta
|
||||||
|
Valitse toiminto (1/2/3/4):
|
||||||
|
"""
|
||||||
|
|
||||||
|
# import sqlite3
|
||||||
|
# import secrets
|
||||||
|
# Tuodaan csv kirjasto nimellä tsv, koska oikeasti käsittelen tsv tiedostoja
|
||||||
|
import csv as tsv
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Pääfunktio.
|
||||||
|
"""
|
||||||
|
|
||||||
|
print("TODO! TÄSSÄ PITÄISI OLLA TUNNISTAUTUMINEN ENSIN!")
|
||||||
|
print("Tervetuloa \n")
|
||||||
|
# Pysytään käynnissä:
|
||||||
|
while True:
|
||||||
|
# Toimintovalikko
|
||||||
|
print(
|
||||||
|
"Tallenna uusi salasana, valitse 1. Hae tallennettu salasana",
|
||||||
|
"valitsemalla 2. Poista tallennettu salasana valitsemalla 3.",
|
||||||
|
"Lopeta valitsemalla 4.",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Vaihtoehdot
|
||||||
|
try:
|
||||||
|
valinta = int(input("Valinta? "))
|
||||||
|
match valinta:
|
||||||
|
case 1:
|
||||||
|
tallennasalasana()
|
||||||
|
case 2:
|
||||||
|
haesalasana()
|
||||||
|
case 3:
|
||||||
|
poistasalasana()
|
||||||
|
case 4:
|
||||||
|
print("Ohjelma päättyy.")
|
||||||
|
break
|
||||||
|
case _:
|
||||||
|
print("\nVirheellinen valinta.\n")
|
||||||
|
except ValueError:
|
||||||
|
print("Tämä valikko hyväksyy vain lukuja.")
|
||||||
|
|
||||||
|
|
||||||
|
def tallennasalasana():
|
||||||
|
"""
|
||||||
|
Salasanan tallennus.
|
||||||
|
"""
|
||||||
|
print("Tervetuloa salasanan tallennukseen.")
|
||||||
|
# with open("kanta.tsv", "w", newline="\n") as kanta:
|
||||||
|
# writer = csv.writer(f)
|
||||||
|
# writer.writerows(someiterable)
|
||||||
|
print("..vaikka tätä ei vielä olekaan olemassa.")
|
||||||
|
|
||||||
|
|
||||||
|
def haesalasana():
|
||||||
|
"""
|
||||||
|
Salasanan haku.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Avataan tiedosto kanta.tsv lukitilassa nimellä kanta.
|
||||||
|
with open("kanta.tsv", newline="\n", encoding="utf-8") as kanta:
|
||||||
|
|
||||||
|
# Yksinkertaistetaan kannan luku muuttujaksi.
|
||||||
|
lukija = tsv.reader(kanta, delimiter="\t", quoting=tsv.QUOTE_NONE)
|
||||||
|
|
||||||
|
# Kehitysvaiheessa vain luetaan koko kanta.
|
||||||
|
for rivi in lukija:
|
||||||
|
print(rivi)
|
||||||
|
|
||||||
|
|
||||||
|
def poistasalasana():
|
||||||
|
"""
|
||||||
|
Salasanan poisto.
|
||||||
|
"""
|
||||||
|
print("Salasanan poistoa ei ole vielä implementoitu.")
|
||||||
|
|
||||||
|
|
||||||
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
|
||||||
|
# pääfunktio.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -1,8 +1,8 @@
|
|||||||
# Tuodaan turtle -kirjasto
|
# Tuodaan turtle -kirjasto
|
||||||
import random
|
|
||||||
import turtle
|
import turtle
|
||||||
|
|
||||||
# Satunnaislukuja
|
# Satunnaislukuja
|
||||||
|
import random
|
||||||
|
|
||||||
# ikkkuna = turtle.Screen()
|
# ikkkuna = turtle.Screen()
|
||||||
|
|
||||||
|
46
python/taitotalo/main9.py
Normal file
46
python/taitotalo/main9.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
Kivi-sakset-paperi peli!
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Tarvitaan tietokoneen vastauksen päättämiseksi
|
||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
# Määritetään pääfunktio
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Pääfunktio.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Arvotaan tietokoneen valinta
|
||||||
|
tkvalinta = random.sample(["kivi", "sakset", "paperi"], 1)
|
||||||
|
tkvalinta = str(tkvalinta[0])
|
||||||
|
print(tkvalinta)
|
||||||
|
# Pyydetään käyttäjän valinta
|
||||||
|
valinta = input("Valitse 'kivi', 'sakset' tai 'paperi'\n")
|
||||||
|
# print(valinta)
|
||||||
|
|
||||||
|
# Verrataan vastauksia
|
||||||
|
if tkvalinta == valinta:
|
||||||
|
print("Tasapeli!", tkvalinta, "ja", valinta)
|
||||||
|
elif tkvalinta == "kivi" and valinta == "sakset":
|
||||||
|
print("Hävisit, kivi voittaa sakset")
|
||||||
|
elif tkvalinta == "sakset" and valinta == "paperi":
|
||||||
|
print("Hävisit, sakset voittaa paperin")
|
||||||
|
elif tkvalinta == "paperi" and valinta == "kivi":
|
||||||
|
print("Voitit, kivi voittaa paperin")
|
||||||
|
elif tkvalinta == "sakset" and valinta == "kivi":
|
||||||
|
print("Voitit, sakset voittavat kiven")
|
||||||
|
elif tkvalinta == "paperi" and valinta == "sakset":
|
||||||
|
print("Voitit, sakset voittavat paperin")
|
||||||
|
else:
|
||||||
|
# Tästä tuli vahingossa catch-all virheellisille syötteille, enkä ole varma toteutinko kaikki skenaariot
|
||||||
|
print(
|
||||||
|
"Joko tilannetta ei ole vielä toteutettu tai annoit virheellisen syötteen. Ilmoittaisitko ongelman kehittäjälle?",
|
||||||
|
)
|
||||||
|
print("Tietokone valitsi:", tkvalinta, "syötteesi oli", valinta)
|
||||||
|
|
||||||
|
|
||||||
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
15
python/taitotalo/pohja.py
Normal file
15
python/taitotalo/pohja.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
"""
|
||||||
|
Kuvaus
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Pääfunktio.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
|
||||||
|
# pääfunktio.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
5
python/taitotalo/pyproject.toml
Normal file
5
python/taitotalo/pyproject.toml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[tool.black]
|
||||||
|
line-length = "79"
|
||||||
|
|
||||||
|
[tool.pylint.format]
|
||||||
|
max-line-length = 79
|
Loading…
Reference in New Issue
Block a user