Seite - 108 - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Band Second Edition
Bild der Seite - 108 -
Text der Seite - 108 -
108 5 SomeMorePythonEssentials
between different kinds of exceptions, coding a dedicated response in each case.
That can be done in Python,1 and it will also allow us to get back the Ctrl-c
functionality thatwehad in the earlierversions.
A More Detailed Use of try-except We let the final version of our code
(times_tables_4.py) serve as an example of a more refined try-except
construction.It is still simple,buthaswhatweneed.Wepresent thisfinalversionin
its completeness, before explaining the details. All code changes are still confined
to themainpartof theprogram:
import numpy as np
def ask_user(a, b):
"""Get answer from user: a*b = ?"""
question = ’{:d} * {:d} = ’.format(a, b)
answer = int(input(question))
return answer
def points(a, b, answer_given):
"""Check answer. Correct answer gives 1 point, else zero"""
true_answer = a*b
if answer_given == true_answer:
print(’Correct!’)
return 1
else:
print(’Sorry! Correct answer was: {:d}’.format(true_answer))
return 0
print(’\n*** Welcome to the times tables test! ***\
\n (To stop: ctrl-c)’)
N = 10
NN = N*N
score = 0
index = list(range(0, NN, 1))
np.random.shuffle(index) # randomize order of integers in index
for i in range(0, NN, 1):
a = index[i]//N + 1
b = index[i]%N + 1
try:
user_answer = ask_user(a, b)
except KeyboardInterrupt:
print(’\nOk, you want to stop!’)
break
except ValueError:
print(’You must give a valid number!’)
continue # jump to next loop iteration
score = score + points(a, b, user_answer)
print(’Your score is now: {:d}’.format(score))
print(’\nFinished! \nYour final score: {:d} (max: {:d})’\
.format(score, N*N))
1 https://docs.python.org/3/tutorial/errors.html.
Programming for Computations – Python
A Gentle Introduction to Numerical Simulations with Python 3.6, Band Second Edition
- Titel
- Programming for Computations – Python
- Untertitel
- A Gentle Introduction to Numerical Simulations with Python 3.6
- Band
- Second Edition
- Autoren
- Svein Linge
- Hans Petter Langtangen
- Verlag
- Springer Open
- Datum
- 2020
- Sprache
- englisch
- Lizenz
- CC BY 4.0
- ISBN
- 978-3-319-32428-9
- Abmessungen
- 17.8 x 25.4 cm
- Seiten
- 356
- Schlagwörter
- Programmiersprache, Informatik, programming language, functional, imperative, object-oriented, reflective
- Kategorie
- Informatik