%!TEX pdflatex
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[margin=1.5cm]{geometry}
\usepackage[nominted]{ProfLycee}
\usepackage{scontents}
\tcbuselibrary{listingsutf8}
\lstdefinestyle{PLpython}{%
language = python,
inputencoding = utf8/latin1,
basicstyle = \ttfamily\footnotesize,
keywordstyle = \color{ForestGreen},
keywordstyle = [2]\color{magenta},
commentstyle = \color{gray}\itshape,
stringstyle = \color{red!75},
numberstyle = \scriptsize\ttfamily\color{Green},
aboveskip = 4pt,
belowskip = 1pt,
tabsize = 4,
showstringspaces = false,
columns = fullflexible,
keepspaces = true,
breaklines = true,
breakatwhitespace = true
}
\tcbset{stylepythonlst/.style={%
enhanced,boxrule=1.25pt,%
leftupper=10pt,
sharp corners=downhill,arc=12pt,
before skip=12pt,after skip=12pt,%
top=10pt,bottom=1mm,rightupper=4pt,%leftupper=25pt,
attach boxed title to top right={yshift=-\tcboxedtitleheight},
boxed title style={
size=small,colback=ForestGreen!25,boxrule=1.25pt,
colframe=Green,boxsep=1.25pt,
sharp corners=downhill,
arc=12pt,
top=2pt,bottom=1pt,left=6pt,right=6pt
},
colframe=Green,colback=ForestGreen!5,%
fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize,
title={\scriptsize\faPython}\:Code Python\vphantom{p},
watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50,
listing only,listing engine=listings,%
}
}
\tcbset{stylepythonlstnolineos/.style={%
stylepythonlst,
listing options={style=PLpython,xleftmargin=0pt,numbers=none}
}
}
\tcbset{stylepythonlstlineos/.style={%
stylepythonlst,
listing options={style=PLpython,xleftmargin=16pt,numbers=left}
}
}
\DeclareTCBListing{envcodepython}{ s O{\linewidth} m }{% * off pour numéros de lignes + {largeur} + <options tcbox>
\IfBooleanTF{#1}{stylepythonlstnolineos}{stylepythonlstlineos},
width=#2,#3
}
\NewTCBInputListing{\envcodepythonfichier}{ s O{\linewidth} m m }{
\IfBooleanTF{#1}{stylepythonlstnolineos}{stylepythonlstlineos},
width=#2,#3,
listing file={#4}}
\begin{document}
\part*{Test environnement \og simple \fg{} Python}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,listing options={style=tcblatex,tabsize=4,basicstyle=\footnotesize\ttfamily}}
\begin{envcodepython}{}
#environnement par défaut
nb = int(input("Saisir un entier Python positif"))
if (nb %7 == 0) :
print(f"{nb} est bien divisible par 7")
#endif
def f(x) :
return x**2
\end{envcodepython}
\end{tcblisting}
\begin{tcblisting}{colback=red!5!white,colframe=red!75!black,listing options={style=tcblatex,tabsize=4,basicstyle=\small\ttfamily}}
\begin{envcodepython}*[0.5\linewidth]{flush right}
#largeur de 50%, sans numéro, et aligné à droite
nb = int(input("Saisir un entier Python positif"))
if (nb %7 == 0) :
print(f"{nb} est bien divisible par 7")
#endif
def f(x) :
return x**2
\end{envcodepython}
\end{tcblisting}
\begin{scontents}[overwrite,write-env=script1.py]
# Calcul de la factorielle en langage Python
def factorielle(x):
if x < 2:
return 1
else:
return x * factorielle(x-1)
\end{scontents}
\envcodepythonfichier*[12cm]{}{script1.py}
\end{document}