-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExercise_10.3.py
More file actions
83 lines (71 loc) · 2.27 KB
/
Copy pathExercise_10.3.py
File metadata and controls
83 lines (71 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Luvun kolmas tehtävä jatkaa edellisessäkin luvussa työstettyä nelilaskinta. Tähän asti ohjelma on ollut sen varassa,
# että käyttäjä antaa aina laskimelle oikeita lukuarvoja, mutta virheenkäsittelyn avulla tämäkin ongelma voidaan
# poistaa.
# Tee siis ohjelmakoodiin muutokset, joilla käyttäjän antamat syötteet tarkastetaan ennen kuin ne hyväksytään laskimeen
# numeroiksi. Helpointa tämä on tehdä luomalla erillinen alifunktio, joka pyytää käyttäjältä niin kauan uutta lukua
# kunnes tyyppimuunnos kokonaisluvuksi onnistuu. Tämän jälkeen alifunktio palauttaa lukuarvon laskimelle. Jos käyttäjän
# syöttämä luku on virheellinen, tulostetaan "Virheellinen syöte!" ja lukua pyydetään uudestaan.
# Toimiessaan oikein ohjelma tulostaa vaikkapa seuraavaa:
# Anna luku: fge
# Virheellinen syöte!
# Anna luku: 10
# Anna luku: 15
# (1) +
# (2) -
# (3) *
# (4) /
# (5)sin(luku1/luku2)
# (6)cos(luku1/luku2)
# (7)Vaihda luvut
# (8)Lopeta
# Valitut luvut: 10 15
# Tee valinta (1-8): 7
# Anna luku: apina
# Virheellinen syöte!
# Anna luku: 20
# Anna luku: 9
# (1) +
# (2) -
# (3) *
# (4) /
# (5)sin(luku1/luku2)
# (6)cos(luku1/luku2)
# (7)Vaihda luvut
# (8)Lopeta
# Valitut luvut: 20 9
# Tee valinta (1-8): 8
import math
def syote():
while True:
try:
luku = int(input("Anna luku: "))
break
except ValueError:
print("Virheellinen syöte!")
continue
return luku
luku_1 = syote()
luku_2 = syote()
while True:
print("(1) +\n(2) -\n(3) *\n(4) /\n(5) sin(luku1/luku2)\n(6) cos(luku1/luku2)\n(7) Vaihda luvut\n(8) Lopeta")
print("Valitut luvut: {0} {1}".format(luku_1, luku_2))
valinta = int(input("Tee valinta (1-8): "))
if valinta == 1:
print("Tulos on:", luku_1 + luku_2)
elif valinta == 2:
print("Tulos on:", luku_1 - luku_2)
elif valinta == 3:
print("Tulos on:", luku_1 * luku_2)
elif valinta == 4:
print("Tulos on:", luku_1 / luku_2)
elif valinta == 5:
print("Tulos on:", math.sin(luku_1 / luku_2))
elif valinta == 6:
print("Tulos on:", math.cos(luku_1 / luku_2))
elif valinta == 7:
luku_1 = syote()
luku_2 = syote()
elif valinta == 8:
break
else:
print("Valintaa ei tunnistettu.")