Web-Books
in the Austria-Forum
Austria-Forum
Web-Books
Informatik
Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Volume Second Edition
Page - 107 -
  • User
  • Version
    • full version
    • text only version
  • Language
    • Deutsch - German
    • English

Page - 107 - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Volume Second Edition

Image of the Page - 107 -

Image of the Page - 107 - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Volume Second Edition

Text of the Page - 107 -

5.2 ExceptionHandling 107 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: 1 point, else 0""" 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: 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)) What will happen here? During execution, Python will first try to execute user_answer = ask_user(a, b) in the try block. If it executes without trouble, the except block is skipped, and execution continues with the line score = score + points(a, b, user_answer). However, if an exception is raised, executionproceeds immediatelywithprintandcontinue in the except block. If so, the assignment to user_answerdoes not take place. Thecontinue statementmakesusmovetothenextquestion,sinceit immediatelybringsexecution tothenextloopiteration,i.e.,score isneitherupdated,norprinted,before“leaving” that iteration. This solution is a step forward for ourprogram,since we avoid an unintentional stopifsomeoneaccidentallyhits thewrongkey.However, theexceptblockherewill handle all kinds of exceptions, and, in particular, trying to stop the program with Ctrl-cwill no longer work (in stead, you may choose Consoles and Restart kernel from theSpydermenu)! It would be better programming to differentiate
back to the  book Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Volume Second Edition"
Programming for Computations – Python A Gentle Introduction to Numerical Simulations with Python 3.6, Volume Second Edition
Title
Programming for Computations – Python
Subtitle
A Gentle Introduction to Numerical Simulations with Python 3.6
Volume
Second Edition
Authors
Svein Linge
Hans Petter Langtangen
Publisher
Springer Open
Date
2020
Language
English
License
CC BY 4.0
ISBN
978-3-319-32428-9
Size
17.8 x 25.4 cm
Pages
356
Keywords
Programmiersprache, Informatik, programming language, functional, imperative, object-oriented, reflective
Category
Informatik
Web-Books
Library
Privacy
Imprint
Austria-Forum
Austria-Forum
Web-Books
Programming for Computations – Python