Python
Python in problems
pythonevaluator
Checks the student's code.
\begin{pythonevaluator}
for i in range(1,50):
if(expected_sum(i) != sum(i)):
exit(11) # returns with grading code 11
exit(0) # returns with grading code 0
\end{pythonevaluator}
|
pythonfunction
Creates an author defined Python function which can be used by the student as well as in pythonevaluator.
\begin{pythonfunction}{expected_sum} # expected_sum is the name of the function
def expected_sum(n):
s = 0
for i in range(1,n+1):
s += i
return s
\end{pythonfunction}
|
pythonsolution
Creates a sample solution for the code fragment with the given name
\begin{pythonsolution}{sum}
def sum(n):
s = 0
for i in range(1,n):
s += i
return s
\end{pythonsosultion}
|
pythonanswer
Creates an input field for a code fragment. \pythonanswer[template]{name}
template
can be used to define a template for the answer.
name
is the identifier of the code fragment.
\pythonanswer[
def sum(n):
s = \editable # creates an editable field for the student
for i in range(1,n+1):
\multilineEditable # creates an editable field for the student, which allows line breaks
return s
]{sum}
|
include
Defines an include for a whole Python problem or a question of it \include{lid}
includeAnswer
Defines an include of an answer for a question in a Python problem \includeAnswer[forced]{sum}
. The argument forced
can be used to configure consequential errors. In case the user answered the answer's question wrong, the sample solution is included. If the argument forced
is set, the user's answer is included, even if the answer's question is wrong.
forced
the user answer is included, even if the corresponding question is answered wrong
sum
is the name of the pythonanswer that is supposed to be included
pythongrading
Specifies the grade and feedback for a certain evaluator exit code. \pythongrading{exitcode}{grade}{feedback}
exitcode
is the exit value
grade
the grade value (number between 0 and 1)
feedback
feedback that is displayed to the user in the correction view
\pythongrading{0}{1.0}{All tests ran and passed}
\pythongrading{10}{0.0}{This is not a 3x3 matrix}
\pythongrading{11}{0.0}{At least one element is zero}
\pythongrading{12}{0.0}{The determinant is not zero}
|
Python scripts
For the sake of reusability and separation of concerns, you can create Python scripts in WebMiau which you can then include in Python problems with the include command. Python scripts are just pure Python code.
Python in articles
Creates an input field for Python code
\begin{pythoninput}{60}{20} # 60: the size of the field in columns # 20: the size of the field in rows
a11 = 1/4; # is the initial content of the field. It can be edited by the student
a12 = 2/3;
a21 = -1/5;
a22 = 3/5;
A = [ a11, a12; a21, a22 ];
A
\end{pythoninput}
|
Creates an input field for Python code \pythoninput{width}{height}
width
the size of the field in columns
height
the size of the field in rows
Creates a button that sends the contents of a Python input field to a Python process and displays the result in a Python output field
\pythonbutton[label]
label
is the text on the button
pythonoutput
Creates a text field for output from Python \pythonoutput{width}{height}
width
the size of the field in columns
height
the size of the field in rows
WebMiau Example
Example
Python modules (libraries)
To find out the available python modules type into a test environment of a python problem the code: help('modules'). The result is a list of the available modules, including the Python Standard Library.
Here you find details about the Python Standard Library