mirror of
https://gitea.blesmrt.net/mikaela/scripts.git
synced 2025-07-31 11:07:21 +02:00
Compare commits
No commits in common. "7fcd19c4d71c6c00872be171be836978c0088ff0" and "2953f724da14547994160c1adfd2d569f1de65ec" have entirely different histories.
7fcd19c4d7
...
2953f724da
52
.pre-commit-config.yaml
vendored
52
.pre-commit-config.yaml
vendored
@ -1,15 +1,22 @@
|
|||||||
# @format
|
# @format
|
||||||
|
|
||||||
# SPDX-FileCopyrightText: 2024 Aminda Suomalainen <suomalainen+git@mikaela.info>
|
# SPDX-FileCopyrightText: 2023 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
|
||||||
@ -29,49 +36,65 @@ 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
|
||||||
args: [--fix=lf]
|
# .gitattributes is trusted to handle this
|
||||||
|
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
|
||||||
additional_dependencies: [types-tabulate]
|
args: [--install-types, --non-interactive]
|
||||||
|
- repo: https://github.com/asottile/pyupgrade
|
||||||
- repo: https://github.com/pycqa/isort
|
rev: v3.16.0
|
||||||
rev: 5.13.2
|
|
||||||
hooks:
|
hooks:
|
||||||
- id: isort
|
- id: pyupgrade
|
||||||
name: isort (python)
|
args:
|
||||||
|
[--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
|
||||||
entry: pylint --exit-zero
|
# Use as many jobs as CPU cores, disable TODO warnings
|
||||||
verbose: true
|
entry: pylint -j 0 -d W0511
|
||||||
language: system
|
language: system
|
||||||
types_or: [python, pyi]
|
types_or: [python, pyi]
|
||||||
- id: pnpm-install-dev
|
- id: pnpm-install-dev
|
||||||
@ -79,6 +102,7 @@ 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
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"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 +0,0 @@
|
|||||||
3.3.4
|
|
6
Gemfile
6
Gemfile
@ -1,6 +0,0 @@
|
|||||||
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
40
Gemfile.lock
@ -1,40 +0,0 @@
|
|||||||
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
|
|
@ -1,33 +1,22 @@
|
|||||||
# Black
|
# When changing this file, read also .pre-commit-config.yaml
|
||||||
|
|
||||||
[tool.black]
|
[tool.black]
|
||||||
line-length = 79
|
line-length = 79
|
||||||
target-version = ['py310']
|
target-version = ['py310']
|
||||||
preview = true
|
|
||||||
|
|
||||||
# Mypy
|
|
||||||
[tool.mypy]
|
[tool.mypy]
|
||||||
python_version = '3.10'
|
#python-executable = 'pypy3'
|
||||||
|
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
|
||||||
|
|
||||||
# isort
|
# No need to have it uncommented since 79 is the standard.
|
||||||
[tool.isort]
|
#[tool.pylint.format]
|
||||||
profile = "black"
|
#max-line-length = 79
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
@ -6,9 +6,7 @@ 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",
|
|
||||||
""",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,8 +25,7 @@ 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 \
|
"Please enter the SSID you are thinking of (preferably 26 chars to fit _nomap): ",
|
||||||
fit _nomap): ",
|
|
||||||
)
|
)
|
||||||
or "test",
|
or "test",
|
||||||
)
|
)
|
||||||
|
15
python/taitotalo/.editorconfig
Normal file
15
python/taitotalo/.editorconfig
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
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
|
3
python/taitotalo/.gitattributes
vendored
Normal file
3
python/taitotalo/.gitattributes
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
* text=auto
|
||||||
|
# This is for doctoc should I decide to use it in the future
|
||||||
|
*.md text eol=lf
|
@ -1,7 +1,5 @@
|
|||||||
"""
|
"""
|
||||||
Tämä on ensimmäinen Taitotalossa kirjoitettu Python koodi koulutuspäivänä
|
Tämä on ensimmäinen Taitotalossa kirjoitettu Python koodi koulutuspäivänä yksi. Se vain tulostaa asioita.
|
||||||
yksi. Se vain tulostaa asioita.
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Ensimmäinen kommentti
|
# Ensimmäinen kommentti
|
||||||
@ -10,8 +8,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)
|
@ -1,12 +1,10 @@
|
|||||||
"""
|
"""
|
||||||
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
|
# Tulostetaan nimi ja kolmesti viesti rivinvaihdolla. Lopuksi poistetaan rivinvaihto ja erotin tulostuksesta
|
||||||
# rivinvaihto ja erotin tulostuksesta
|
|
||||||
print(nimi, " sanoo:\n", (viesti + "\n") * 3, end="", sep="")
|
print(nimi, " sanoo:\n", (viesti + "\n") * 3, end="", sep="")
|
@ -24,13 +24,11 @@ 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
|
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin numeroita ja varaudutaan asiaan
|
||||||
# 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
|
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla, jos käyttäjä ei syöttänyt numeroita
|
||||||
# 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)
|
||||||
@ -42,8 +40,7 @@ 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
|
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän alle 65.
|
||||||
# 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.
|
||||||
@ -54,7 +51,6 @@ def main():
|
|||||||
print("Jokin meni pieleen. Yritä uudelleen.")
|
print("Jokin meni pieleen. Yritä uudelleen.")
|
||||||
|
|
||||||
|
|
||||||
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
# pääfunktio.
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
@ -29,7 +29,6 @@ def main():
|
|||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
||||||
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
# suoritetaan pääfunktio.
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
@ -39,7 +39,6 @@ def main():
|
|||||||
print("Syötä luku!")
|
print("Syötä luku!")
|
||||||
|
|
||||||
|
|
||||||
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
# suoritetaan pääfunktio.
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
@ -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)
|
@ -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")
|
@ -1,19 +1,15 @@
|
|||||||
"""
|
"""
|
||||||
Sovellus kysyy käyttäjän ikää, kertoo alle 18 heidän olevan alaikäinen, 18-65
|
Sovellus kysyy käyttäjän ikää, kertoo alle 18 heidän olevan alaikäinen, 18-65 aikuinen ja yli 65 seniori.
|
||||||
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
|
# Odotetaan käyttäjän mahdollisesti pyrkivän syöttämään muutakin kuin numeroita ja varaudutaan asiaan
|
||||||
# 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,
|
# Annetaan käyttäjäystävällinen virheilmoitus ja poistutaan virhekoodilla, jos käyttäjä ei syöttänyt numeroita
|
||||||
# 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)
|
||||||
@ -21,8 +17,7 @@ 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
|
# Jos käyttäjä ei ollut alaikäinen, varmistetaan onko hän 18 ja onko hän alle 65.
|
||||||
# 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.
|
@ -1,13 +1,9 @@
|
|||||||
"""
|
|
||||||
Tämän skriptin olisi tarkoitus piirtää Suomen lippu turtle-kirjastolla,
|
|
||||||
mutta en koskaan tehnyt siitä valmista.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Tuodaan turtle -kirjasto
|
# Tuodaan turtle -kirjasto
|
||||||
# Satunnaislukuja
|
|
||||||
# import random
|
|
||||||
import turtle
|
import turtle
|
||||||
|
|
||||||
|
# Satunnaislukuja
|
||||||
|
import random
|
||||||
|
|
||||||
# ikkkuna = turtle.Screen()
|
# ikkkuna = turtle.Screen()
|
||||||
|
|
||||||
# Asetetaan turtlen väriksi "meripihka"
|
# Asetetaan turtlen väriksi "meripihka"
|
||||||
@ -53,37 +49,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()
|
@ -13,25 +13,21 @@ def main():
|
|||||||
Pääfunktio.
|
Pääfunktio.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Pyydetään käyttäjältä kaksi lukua varautuen siihen, ettei käyttäjä
|
# Pyydetään käyttäjältä kaksi lukua varautuen siihen, ettei käyttäjä syötä lukuja oikeassa muodossa.
|
||||||
# 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
|
# Mikäli käyttäjä syöttää jotakin, mitä emme voi muuttaa float:iksi tai int:iksi, annetaan virheilmoitus ja poistutaan virhekoodiin.
|
||||||
# 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
|
# Tulostetaan laskutoimitukset. Käytetään int siisteyden vuoksi, vaikka uhrataan tuki desimaalien laskemiselle.
|
||||||
# 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ä
|
# Varaudutaan siihen, että käyttäjä syöttää luvuksi nollan ja siinä tapauksessa kieltäydytään suorittamasta tehtävää.
|
||||||
# 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:
|
||||||
@ -39,7 +35,6 @@ def main():
|
|||||||
print(int(luku1), "/", int(luku2), "=", (luku1 / luku2))
|
print(int(luku1), "/", int(luku2), "=", (luku1 / luku2))
|
||||||
|
|
||||||
|
|
||||||
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
# pääfunktio.
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
@ -33,8 +33,7 @@ def arvaa_numero():
|
|||||||
|
|
||||||
laskuri += 1
|
laskuri += 1
|
||||||
|
|
||||||
# Pyydetään käyttäjältä luku varautuen virheelliseen syötteeseen. Se
|
# Pyydetään käyttäjältä luku varautuen virheelliseen syötteeseen. Se on tärkeää muuttaa int:iksi tai muuten se on string!
|
||||||
# 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
|
||||||
@ -55,16 +54,13 @@ def arvaa_numero():
|
|||||||
)
|
)
|
||||||
break
|
break
|
||||||
|
|
||||||
# Muuten avustetaan käyttäjää antamalla vihje. Printistä myös
|
# 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ä
|
||||||
# poistetaan erottavat välilyönnit, jotka tehdään itse, jotta
|
elif arvaus < oikeavastaus:
|
||||||
# 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
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
# pääfunktio.
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
@ -2,12 +2,12 @@
|
|||||||
Sovellus tekee listasta pareja
|
Sovellus tekee listasta pareja
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Tarvitaan parien muodostamiseen
|
|
||||||
import random
|
|
||||||
|
|
||||||
# Tuodaan paketti tabulate.
|
# Tuodaan paketti tabulate.
|
||||||
import tabulate
|
import tabulate
|
||||||
|
|
||||||
|
# Tarvitaan parien muodostamiseen
|
||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
# Määritetään pääfunktio
|
# Määritetään pääfunktio
|
||||||
def main():
|
def main():
|
||||||
@ -23,8 +23,7 @@ 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
|
# Luo tuplen, jossa zip yhdistää random_names{1,2} vastaavan kohdan kanssa, jotka sitten laitetaan listaan.
|
||||||
# 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)
|
||||||
@ -39,7 +38,6 @@ def main():
|
|||||||
print(table)
|
print(table)
|
||||||
|
|
||||||
|
|
||||||
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan,
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
# suoritetaan pääfunktio.
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
@ -34,16 +34,13 @@ 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
|
# Tästä tuli vahingossa catch-all virheellisille syötteille, enkä ole varma toteutinko kaikki skenaariot
|
||||||
# varma toteutinko kaikki skenaariot
|
|
||||||
print(
|
print(
|
||||||
"Joko tilannetta ei ole vielä toteutettu tai annoit \
|
"Joko tilannetta ei ole vielä toteutettu tai annoit virheellisen syötteen. Ilmoittaisitko ongelman kehittäjälle?",
|
||||||
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
|
# Jos suoritamme koodia suoraan skriptistä importtauksen sijaan, suoritetaan pääfunktio.
|
||||||
# pääfunktio.
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
@ -1,2 +1,2 @@
|
|||||||
# muodosta-parityo-parit.py requires this
|
# main8.py requires this
|
||||||
tabulate
|
tabulate
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 73572f12945caee1de71f25cb400ea2764fc62b5
|
Subproject commit 074a2a87fb14702ed42615b1246011295ab3b53b
|
Loading…
x
Reference in New Issue
Block a user