Compare commits

...

18 Commits

Author SHA1 Message Date
7fcd19c4d7
update submodule shell-things 2024-07-12 11:41:51 +03:00
139b5368e6
Gemfile{,.lock}: add other dependencies from the documentation 2024-07-12 11:41:08 +03:00
357f4847f8
Fix '@prettier/plugin-ruby' by adding Gemfile with syntax_tree 2024-07-12 11:17:41 +03:00
331434f855
.pre-commit-config.yaml: pass --exit-zero to pre-commit 2024-07-12 11:10:44 +03:00
5e92b8d998
python: low-hanging pylint fixes 2024-07-12 11:03:13 +03:00
9d2c422a63
python: fix a couple of pylint warnings 2024-07-12 10:34:18 +03:00
5674d0f641
.pre-commit-config.yaml: cleanup 2024-07-12 10:17:23 +03:00
4121f9ea30
Start using isort 2024-07-12 10:14:44 +03:00
95b7e82f86
.pre-commit-config.yaml: cleanup moving Python configuration to pyproject.toml 2024-07-12 10:04:00 +03:00
d9cd123551
python: enable black preview 2024-07-12 09:36:38 +03:00
ba3d6d3358
python/taitotalo: more descriptive names 2024-07-12 09:16:19 +03:00
19ab00d9a3
.pre-commit-config.yaml: declare types-tabulate as an additional dependency for mypy 2024-07-12 09:07:50 +03:00
2902c56a1d
.pre-commit-config.yaml: remove non-interactive which is only for install-types 2024-07-12 08:58:32 +03:00
c7ca230b82
.pre-commit-config.yaml: ignore missing imports for mypy 2024-07-12 08:56:53 +03:00
7753a12ac0
pyproject.toml: underscore, not dash 2024-07-12 08:51:36 +03:00
ce9cd7979f
update submodule shell-things 2024-07-12 08:49:41 +03:00
b6895fc699
.pre-commit-config.yaml: comment pypy 2024-07-12 08:48:58 +03:00
faf330239c
pyproject.toml: quote python-version in hopes of fixing pre-commit.ci 2024-07-12 08:44:57 +03:00
27 changed files with 179 additions and 128 deletions

View File

@ -1,22 +1,15 @@
# @format # @format
# SPDX-FileCopyrightText: 2023 Aminda Suomalainen <suomalainen+git@mikaela.info> # SPDX-FileCopyrightText: 2024 Aminda Suomalainen <suomalainen+git@mikaela.info>
# #
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
# See https://pre-commit.com for more information # See https://pre-commit.com for more information
# See https://pre-commit.ci for more information # See https://pre-commit.ci for more information
ci: ci:
# Forĝejo/Gitea mirrors will autoclose pull requests. This should decrease
# the frequency of unnecessary PRs.
# https://github.com/pre-commit-ci/issues/issues/83
autoupdate_schedule: quarterly autoupdate_schedule: quarterly
skip: [pnpm-install-dev, prettier, pylint] skip: [pnpm-install-dev, prettier, pylint]
# use pypy3 for python
default_language_version:
python: pypy3
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0 rev: v4.6.0
@ -36,65 +29,49 @@ repos:
- id: check-docstring-first - id: check-docstring-first
- id: check-json - id: check-json
- id: check-merge-conflict - id: check-merge-conflict
#- id: check-toml - id: check-toml
#- id: check-xml #- id: check-xml
- id: debug-statements - id: debug-statements
- id: mixed-line-ending - id: mixed-line-ending
# .gitattributes is trusted to handle this args: [--fix=lf]
args: [--fix=no]
- id: pretty-format-json - id: pretty-format-json
args: [--autofix, --no-ensure-ascii] args: [--autofix, --no-ensure-ascii]
#- id: requirements-txt-fixer
- repo: https://github.com/pre-commit-ci/pre-commit-ci-config - repo: https://github.com/pre-commit-ci/pre-commit-ci-config
rev: v1.6.1 rev: v1.6.1
hooks: hooks:
- id: check-pre-commit-ci-config - id: check-pre-commit-ci-config
- repo: https://github.com/thlorenz/doctoc - repo: https://github.com/thlorenz/doctoc
rev: v2.2.0 rev: v2.2.0
hooks: hooks:
- id: doctoc - id: doctoc
# https://github.com/Mikaela/gist/blob/master/doctoc.txt # https://github.com/Mikaela/gist/blob/master/doctoc.txt
args: [--update-only] args: [--update-only]
- repo: https://github.com/pre-commit/mirrors-mypy - repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.10.1" rev: "v1.10.1"
hooks: hooks:
- id: mypy - id: mypy
args: [--install-types, --non-interactive] additional_dependencies: [types-tabulate]
- repo: https://github.com/asottile/pyupgrade
rev: v3.16.0 - repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks: hooks:
- id: pyupgrade - id: isort
args: name: isort (python)
[--py310-plus]
# - repo: https://github.com/asottile/reorder-python-imports
# rev: v3.12.0
# hooks:
#- id: reorder-python-imports
#args: [--py310-plus]
- repo: https://github.com/asottile/add-trailing-comma
rev: v3.1.0
hooks:
- id: add-trailing-comma
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 24.4.2 rev: 24.4.2
hooks: hooks:
- id: black - id: black
#Refer to pyproject.toml
#args: ["--line-length", "79", "--target-version", "py310"]
#- id: black-jupyter
# - repo: https://github.com/scop/pre-commit-shfmt
# rev: v3.8.0-1
# hooks:
# - id: shfmt
#- id: shfmt-docker
- repo: local - repo: local
hooks: hooks:
- id: pylint - id: pylint
name: pylint name: pylint
# Use as many jobs as CPU cores, disable TODO warnings entry: pylint --exit-zero
entry: pylint -j 0 -d W0511 verbose: true
language: system language: system
types_or: [python, pyi] types_or: [python, pyi]
- id: pnpm-install-dev - id: pnpm-install-dev
@ -102,7 +79,6 @@ repos:
entry: corepack pnpm install -D entry: corepack pnpm install -D
language: system language: system
always_run: true always_run: true
#verbose: true
pass_filenames: false pass_filenames: false
- id: prettier - id: prettier
name: prettier name: prettier

View File

@ -1,7 +1,6 @@
{ {
"bracketSameLine": true, "bracketSameLine": true,
"endOfLine": "auto", "endOfLine": "auto",
"insertPragma": true,
"plugins": [ "plugins": [
"@prettier/plugin-ruby", "@prettier/plugin-ruby",
"prettier-plugin-sh" "prettier-plugin-sh"

1
.ruby-version Normal file
View File

@ -0,0 +1 @@
3.3.4

6
Gemfile Normal file
View File

@ -0,0 +1,6 @@
source "https://rubygems.org"
ruby file: ".ruby-version"
gem "prettier_print"
gem "syntax_tree"
gem "syntax_tree-haml"
gem "syntax_tree-rbs"

40
Gemfile.lock Normal file
View File

@ -0,0 +1,40 @@
GEM
remote: https://rubygems.org/
specs:
haml (6.3.0)
temple (>= 0.8.2)
thor
tilt
logger (1.6.0)
prettier_print (1.2.1)
rbs (3.5.2)
logger
syntax_tree (6.2.0)
prettier_print (>= 1.2.0)
syntax_tree-haml (4.0.3)
haml (>= 5.2)
prettier_print (>= 1.2.1)
syntax_tree (>= 6.0.0)
syntax_tree-rbs (1.0.0)
prettier_print
rbs
syntax_tree (>= 2.0.1)
temple (0.10.3)
thor (1.3.1)
tilt (2.4.0)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
prettier_print
syntax_tree
syntax_tree-haml
syntax_tree-rbs
RUBY VERSION
ruby 3.3.4p94
BUNDLED WITH
2.5.11

View File

@ -1,22 +1,33 @@
# When changing this file, read also .pre-commit-config.yaml # Black
[tool.black] [tool.black]
line-length = 79 line-length = 79
target-version = ['py310'] target-version = ['py310']
preview = true
# Mypy
[tool.mypy] [tool.mypy]
#python-executable = 'pypy3' python_version = '3.10'
python-version = 3.10
# Pylint
[tool.pylint.main]
py-version = "3.10"
jobs = 0
[tool.pylint.basic]
include-naming-hint = true
[tool.pylint.format]
max-line-length = 79
[tool.pylint."messages control"]
# Disables warnings about TODO
disable = ["W0511"]
#[tool.pylint.variables]
#ignored-argument-names = "_.*|^ignored_|^unused_"
# https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html # https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html
# No need to have it uncommented since 79 is the standard. # isort
#[tool.pylint.format] [tool.isort]
#max-line-length = 79 profile = "black"
# Not actually used here, see .pre-commit-config.yaml for reorder-python-imports
# that does the same thing.
#[tool.isort]
#profile = "black"
# copy-pasted comments end.

View File

@ -6,7 +6,9 @@ This script generated Keyoxide hashed proofs in argon2id and bcrypt
PROOF = str(input("Enter the proof: ")) PROOF = str(input("Enter the proof: "))
print( print(
"$argon2id$v=19$m=64,t=512,p=2$mDejbh8SmFFJPjbjf+u9kQ$yQpomARjYKfgEDAZ1jdgnA", """
$argon2id$v=19$m=64,t=512,p=2$mDejbh8SmFFJPjbjf+u9kQ$yQpomARjYKfgEDAZ1jdgnA",
""",
) )

View File

@ -25,7 +25,8 @@ def check_ssid_length(given_ssid_length):
# Request input or assume "test" on empty. # Request input or assume "test" on empty.
GIVENSSID = str( GIVENSSID = str(
input( input(
"Please enter the SSID you are thinking of (preferably 26 chars to fit _nomap): ", "Please enter the SSID you are thinking of (preferably 26 chars to \
fit _nomap): ",
) )
or "test", or "test",
) )

View File

@ -1,15 +0,0 @@
root = true
[*]
# https://peps.python.org/pep-0008/#indentation
indent_style = space
indent_size = 4
max_line_length = 79
[*.py]
profile = black
max_line_length = 79
#end_of_line = crlf
[*.md]
end_of_line = lf

View File

@ -1,3 +0,0 @@
* text=auto
# This is for doctoc should I decide to use it in the future
*.md text eol=lf

View File

@ -33,7 +33,8 @@ def arvaa_numero():
laskuri += 1 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! # Pyydetään käyttäjältä luku varautuen virheelliseen syötteeseen. Se
# on tärkeää muuttaa int:iksi tai muuten se on string!
try: try:
arvaus = int(input("Arvaa numero? ")) arvaus = int(input("Arvaa numero? "))
# Virhesyötteen tapahtuessa # Virhesyötteen tapahtuessa
@ -54,13 +55,16 @@ def arvaa_numero():
) )
break 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ä # Muuten avustetaan käyttäjää antamalla vihje. Printistä myös
elif arvaus < oikeavastaus: # poistetaan erottavat välilyönnit, jotka tehdään itse, jotta
# arvauksen ja pisteen väliin ei tule välilyöntejä
if arvaus < oikeavastaus:
print("Oikea luku on suurempi kuin ", arvaus, ".", sep="") print("Oikea luku on suurempi kuin ", arvaus, ".", sep="")
else: else:
print("Oikea luku on pienempi kuin ", arvaus, ".", sep="") print("Oikea luku on pienempi kuin ", arvaus, ".", sep="")
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio. # Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -6,8 +6,8 @@ import datetime
tanaan = datetime.date.today() tanaan = datetime.date.today()
vuosi = int(tanaan.year) vuosi = int(tanaan.year)
nimi = "Jussi" NIMI = "Jussi"
print(vuosi) print(vuosi)
print(vuosi == 2014) print(vuosi == 2014)
print(vuosi is vuosi) # print(vuosi is vuosi)

View File

@ -2,12 +2,12 @@
Sovellus tekee yksinkertaisen salasanatarkistuksen if:illä Sovellus tekee yksinkertaisen salasanatarkistuksen if:illä
""" """
koodisana = "python" KOODISANA = "python"
print("Tervetuloa") print("Tervetuloa")
syote = input("Anna salasana: ") syote = input("Anna salasana: ")
if syote == koodisana: if syote == KOODISANA:
print("Matka voi alkaa") print("Matka voi alkaa")
else: else:
print("Yritä uudelleen") print("Yritä uudelleen")

View File

@ -1,15 +1,19 @@
""" """
Sovellus kysyy käyttäjän ikää, kertoo alle 18 heidän olevan alaikäinen, 18-65 aikuinen ja yli 65 seniori. Sovellus kysyy käyttäjän ikää, kertoo alle 18 heidän olevan alaikäinen, 18-65
aikuinen ja yli 65 seniori.
""" """
# Tuo sys -kirjasto, jotta voimme poistua virhekoodiin. # Tuo sys -kirjasto, jotta voimme poistua virhekoodiin.
import sys import sys
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin numeroita ja varaudutaan asiaan # Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin
# numeroita ja varaudutaan asiaan
try: try:
# Tallennetaan kokonaislukuna käyttäjältä pyydetty ikä # Tallennetaan kokonaislukuna käyttäjältä pyydetty ikä
ika = int(input("Mikä on ikäsi? ")) ika = int(input("Mikä on ikäsi? "))
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla, jos käyttäjä ei syöttänyt numeroita # Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla,
# jos käyttäjä ei syöttänyt numeroita
except ValueError: except ValueError:
print("Syötä ikäsi numeroina!") print("Syötä ikäsi numeroina!")
sys.exit(1) sys.exit(1)
@ -17,7 +21,8 @@ except ValueError:
# Aloitetaan kokeilemalla onko käyttäjä alle 18. # Aloitetaan kokeilemalla onko käyttäjä alle 18.
if ika < 18: if ika < 18:
print("Olet alaikäinen") print("Olet alaikäinen")
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän alle 65. # 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): elif (ika >= 18) and (ika < 65):
print("Olet aikuinen") print("Olet aikuinen")
# Mikäli ikä on 65 tai yli, käyttäjä on seniori. # Mikäli ikä on 65 tai yli, käyttäjä on seniori.

View File

@ -24,11 +24,13 @@ def main():
print("Olen", ikani, "-vuotias", nimeni) print("Olen", ikani, "-vuotias", nimeni)
nimi = input("Mikä sinun nimesi on?: ") nimi = input("Mikä sinun nimesi on?: ")
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin numeroita ja varaudutaan asiaan # Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin
# numeroita ja varaudutaan asiaan
try: try:
# Tallennetaan kokonaislukuna käyttäjältä pyydetty ikä # Tallennetaan kokonaislukuna käyttäjältä pyydetty ikä
ika = int(input("Entä kuinka vanha olet? ")) 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 # Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan
# virhekoodilla, jos käyttäjä ei syöttänyt numeroita
except ValueError: except ValueError:
print("Syötä ikäsi numeroina!") print("Syötä ikäsi numeroina!")
sys.exit(1) sys.exit(1)
@ -40,7 +42,8 @@ def main():
# Aloitetaan kokeilemalla onko käyttäjä alle 18. # Aloitetaan kokeilemalla onko käyttäjä alle 18.
if ika < 18: if ika < 18:
print("Olet alaikäinen") print("Olet alaikäinen")
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän alle 65. # 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): elif (ika >= 18) and (ika < 65):
print("Olet täysi-ikäinen") print("Olet täysi-ikäinen")
# Mikäli ikä on 65 tai yli, käyttäjä on seniori. # Mikäli ikä on 65 tai yli, käyttäjä on seniori.
@ -51,6 +54,7 @@ def main():
print("Jokin meni pieleen. Yritä uudelleen.") print("Jokin meni pieleen. Yritä uudelleen.")
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio. # Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -34,13 +34,16 @@ def main():
elif tkvalinta == "paperi" and valinta == "sakset": elif tkvalinta == "paperi" and valinta == "sakset":
print("Voitit, sakset voittavat paperin") print("Voitit, sakset voittavat paperin")
else: else:
# Tästä tuli vahingossa catch-all virheellisille syötteille, enkä ole varma toteutinko kaikki skenaariot # Tästä tuli vahingossa catch-all virheellisille syötteille, enkä ole
# varma toteutinko kaikki skenaariot
print( print(
"Joko tilannetta ei ole vielä toteutettu tai annoit virheellisen syötteen. Ilmoittaisitko ongelman kehittäjälle?", "Joko tilannetta ei ole vielä toteutettu tai annoit \
virheellisen syötteen. Ilmoittaisitko ongelman kehittäjälle?"
) )
print("Tietokone valitsi:", tkvalinta, "syötteesi oli", valinta) print("Tietokone valitsi:", tkvalinta, "syötteesi oli", valinta)
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio. # Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -2,12 +2,12 @@
Sovellus tekee listasta pareja Sovellus tekee listasta pareja
""" """
# Tuodaan paketti tabulate.
import tabulate
# Tarvitaan parien muodostamiseen # Tarvitaan parien muodostamiseen
import random import random
# Tuodaan paketti tabulate.
import tabulate
# Määritetään pääfunktio # Määritetään pääfunktio
def main(): def main():
@ -23,7 +23,8 @@ def main():
random_names1 = random.sample(nimet, 3) random_names1 = random.sample(nimet, 3)
random_names2 = random.sample(nimet2, 3) random_names2 = random.sample(nimet2, 3)
# Luo tuplen, jossa zip yhdistää random_names{1,2} vastaavan kohdan kanssa, jotka sitten laitetaan listaan. # Luo tuplen, jossa zip yhdistää random_names{1,2} vastaavan kohdan
# kanssa, jotka sitten laitetaan listaan.
name_pairs = list(zip(random_names1, random_names2)) name_pairs = list(zip(random_names1, random_names2))
print(name_pairs) print(name_pairs)
@ -38,6 +39,7 @@ def main():
print(table) print(table)
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio. # Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
# suoritetaan pääfunktio.
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -13,21 +13,25 @@ def main():
Pääfunktio. Pääfunktio.
""" """
# Pyydetään käyttäjältä kaksi lukua varautuen siihen, ettei käyttäjä syötä lukuja oikeassa muodossa. # Pyydetään käyttäjältä kaksi lukua varautuen siihen, ettei käyttäjä
# syötä lukuja oikeassa muodossa.
try: try:
luku1 = float(input("Anna ensimmäinen luku: ")) luku1 = float(input("Anna ensimmäinen luku: "))
luku2 = float(input("Anna toinen 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. # Mikäli käyttäjä syöttää jotakin, mitä emme voi muuttaa float:iksi tai
# int:iksi, annetaan virheilmoitus ja poistutaan virhekoodiin.
except ValueError: except ValueError:
print("Syötä luku!") print("Syötä luku!")
sys.exit(1) sys.exit(1)
# Tulostetaan laskutoimitukset. Käytetään int siisteyden vuoksi, vaikka uhrataan tuki desimaalien laskemiselle. # 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)) 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ää. # 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: if luku1 == 0 or luku2 == 0:
print("Nollalla ei voi jakaa.") print("Nollalla ei voi jakaa.")
else: else:
@ -35,6 +39,7 @@ def main():
print(int(luku1), "/", int(luku2), "=", (luku1 / luku2)) print(int(luku1), "/", int(luku2), "=", (luku1 / luku2))
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio. # Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
# pääfunktio.
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -39,6 +39,7 @@ def main():
print("Syötä luku!") print("Syötä luku!")
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio. # Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
# suoritetaan pääfunktio.
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -1,2 +1,2 @@
# main8.py requires this # muodosta-parityo-parit.py requires this
tabulate tabulate

View File

@ -1,5 +1,7 @@
""" """
Tämä on ensimmäinen Taitotalossa kirjoitettu Python koodi koulutuspäivänä yksi. Se vain tulostaa asioita. Tämä on ensimmäinen Taitotalossa kirjoitettu Python koodi koulutuspäivänä
yksi. Se vain tulostaa asioita.
""" """
# Ensimmäinen kommentti # Ensimmäinen kommentti
@ -8,8 +10,8 @@ print("Tervetuloa")
# toinen kommentti # toinen kommentti
print("esi" + "merkki") print("esi" + "merkki")
luku1 = 5 LUKU1 = 5
luku2 = 7 LUKU2 = 7
summa = luku1 + luku2 SUMMA = LUKU1 + LUKU2
print("Vastaus", summa) print("Vastaus", SUMMA)

View File

@ -29,6 +29,7 @@ def main():
print() print()
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio. # Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
# suoritetaan pääfunktio.
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -1,8 +1,12 @@
# Tuodaan turtle -kirjasto """
import turtle Tämän skriptin olisi tarkoitus piirtää Suomen lippu turtle-kirjastolla,
mutta en koskaan tehnyt siitä valmista.
"""
# Tuodaan turtle -kirjasto
# Satunnaislukuja # Satunnaislukuja
import random # import random
import turtle
# ikkkuna = turtle.Screen() # ikkkuna = turtle.Screen()
@ -49,37 +53,37 @@ turtle.showturtle()
# Piirretään suorakulmio # Piirretään suorakulmio
vaaka = 300 VAAKA = 300
pysty = 200 PYSTY = 200
# #
turtle.forward(vaaka) turtle.forward(VAAKA)
turtle.left(90) turtle.left(90)
turtle.forward(pysty) turtle.forward(PYSTY)
# #
turtle.left(90) turtle.left(90)
turtle.forward(vaaka) turtle.forward(VAAKA)
# #
turtle.left(90) turtle.left(90)
turtle.forward(pysty) turtle.forward(PYSTY)
turtle.left(90) turtle.left(90)
# Piirretään risti # Piirretään risti
turtle.forward(vaaka / 2) turtle.forward(VAAKA / 2)
turtle.left(90) turtle.left(90)
turtle.forward(pysty / 3) turtle.forward(PYSTY / 3)
turtle.right(90) turtle.right(90)
turtle.forward(vaaka / 3) turtle.forward(VAAKA / 3)
turtle.left(90) turtle.left(90)
turtle.forward(vaaka / 5) turtle.forward(VAAKA / 5)
turtle.left(90) turtle.left(90)
turtle.forward(vaaka / 3) turtle.forward(VAAKA / 3)
turtle.right(90) turtle.right(90)
turtle.forward(vaaka / 3) turtle.forward(VAAKA / 3)
# turtle.forward(pysty / 3) # turtle.forward(PYSTY / 3)
# Pidetään ikkuna auki # Pidetään ikkuna auki
turtle.mainloop() turtle.mainloop()

View File

@ -1,10 +1,12 @@
""" """
Sovellus pyytää käyttäjältä nimen, sekä viestin ja tulostaa viestin kolmesti. Sovellus pyytää käyttäjältä nimen, sekä viestin ja tulostaa viestin kolmesti.
""" """
# Pyydetään käyttäjältä nimi ja viesti, tallennetaan samannimisiin muuttujiin # Pyydetään käyttäjältä nimi ja viesti, tallennetaan samannimisiin muuttujiin
nimi = input("Nimi: ") nimi = input("Nimi: ")
viesti = input("Viesti: ") viesti = input("Viesti: ")
# Tulostetaan nimi ja kolmesti viesti rivinvaihdolla. Lopuksi poistetaan rivinvaihto ja erotin tulostuksesta # Tulostetaan nimi ja kolmesti viesti rivinvaihdolla. Lopuksi poistetaan
# rivinvaihto ja erotin tulostuksesta
print(nimi, " sanoo:\n", (viesti + "\n") * 3, end="", sep="") print(nimi, " sanoo:\n", (viesti + "\n") * 3, end="", sep="")

@ -1 +1 @@
Subproject commit 074a2a87fb14702ed42615b1246011295ab3b53b Subproject commit 73572f12945caee1de71f25cb400ea2764fc62b5