E01 - 42⚓︎
Le problème
Proposition 1⚓︎
🐍 Script Python
def renvoie_42():
"""
Renvoie la réponse à toutes les questions de l'univers, la réponse au sens de la vie.
Pourquoi est-ce que Java est nul ? 42.
Quelle note je vais avoir à ce DM ? 42.
>>>renvoie_42()
42
"""
return -80538738812075974**3 + 80435758145817515**3 + 12602123297335631**3
print(renvoie_42())
-
C'est bien d'avoir signalé en annexe le lien vers la formule ; tu pouvais le faire aussi dans la docstring. À savoir : https://phys.org/news/2019-09-sum-cubes-solvedusing-real-life.html
-
Revoir le doctest
Diff
- >>>renvoie_42()
+ >>> renvoie_42()
+import doctest
+doctest.testmod()
Proposition 2⚓︎
🐍 Script Python
import math
def réponse_question_universelle()
"""renvoie la réponse a TOUTES les questions du monde tel que l'origine de
la vie ainsi ce que je vais manger ce soir mais aussi la taille du yémen
en kilomètres carré :D
"""
return 36 + math.sqrt(36)
# entrez
# sortez
print(réponse_question_universelle())
Bien, sauf pour :
Diff
- entrez
- sortez
+ Entrée
+ Sortie
Proposition 3⚓︎
🐍 Script Python
def réponse_à_la_question_universelle() -> int:
"""
Cette fonction doit r'envoyer la réponse à la question universelle, sur la vie, l'univers, et le reste.
Pour ceux qui ne le sauraient pas déjà, la réponse à cette question est le nombre 42.
>>> réponse_à_la_question_universelle()
42
"""
nb_debut_rep_universelle = ((6 * 7) + (68 - 84) * (800 * 1000000) * (10000 + 68) + (95 - 87) * (9 // 78))
nb_suite_rep_universelle = ((2 ** nb_debut_rep_universelle) + (2 ** 98401285646187456784) - (2 ** 1337))
# pause c'est tros long les maths
print(42)
print(réponse_à_la_question_universelle())
#test
import doctest
doctest.testmod
# Entrée / Sortie
#print(42)
- On ne fait pas des calculs au hasard...
- La fonction est vide ; elle renvoie
None
- Il manque des parenthèses à
testmod()
Proposition 4⚓︎
🐍 Script Python
def factorielle(nombre: int) -> int:
"""
renvoie la factorielle d'un nombre
>>> factorielle(4)
24
"""
if nombre == 0:
return 1
else:
return nombre * factorielle(nombre - 1)
def réponse_universelle() -> int:
"""
Renvoie la réponse à la question universelle, sur la vie, l'univers, et le reste.
>>> réponse_universelle()
42
"""
reponse = factorielle(4) # reponse est donc égal à 24
reponse *= 2 # reponse est donc égal à 48
reponse //= 3 # reponse est donc égal à 16
reponse *= 2 # reponse est donc égal à 32
reponse += 10 # reponse est donc égal à 42
return reponse
# Test
import doctest
doctest.testmod()
# Entrée / Sortie
print(réponse_universelle())
C'est correct.
Proposition 5⚓︎
🐍 Script Python
"""
Nom: ********
Prénom: ********
Prologin: Épreuve régionale 2004
Exercice: 1 - 42
https://prologin.org/train/2004/semifinal/42
"""
import webbrowser
def affiche_réponse_question_universelle():
"""
Affiche la réponse à la question universelle soit 42
"""
naissance = 1
mort = 1
univers = 13
reste = 8
vie = naissance + mort
réponse_universelle = vie*(univers+reste)
webbrowser.open('https://youtu.be/T-GQCAfWnYg', new=2) # La réponse est
return réponse_universelle
#Entrée
#Sortie
print(affiche_réponse_question_universelle())
Joli, mais ta fonction n'affiche pas, elle renvoie. Son nom est donc incorrect.
Proposition 6⚓︎
🐍 Script Python
def quarante_deux(chaine: str) -> int:
"""
>>> quarante_deux("MrChambon est le meilleur professeur héhé!")
42
"""
return 42
######
########
##########
###### #####
###### #####
###### #####
###### #####
###### #####
###### #####
###### #####
###### #####
########################################## 2
##########################################
#####
#####
#####
#####
#####
# Sortie
print(quarante_deux("La grande question sur la vie et le reste!"))
# Test
import doctest
doctest.testmod()
- Joli, mais il y a une différence entre
Mr
etM.
. Ton professeur préfèreM.
qui est français, l'autre est anglais. - Ton ASCII Art devrait être inclus dans la fonction, là il est après...
Proposition 7⚓︎
🐍 Script Python
def réponse_à_la_question_universelle(quarante_deux):
"""Renvoie la seule et unique réponse possible imaginable à la grande question sur la vie, l’univers et le reste...
>>> réponse_à_la_question_universelle(quarante_deux)
42
"""
if quarante_deux == 42:
return quarante_deux
else :
return réponse_à_la_question_universelle(quarante_deux + 1)
quarante_deux = 0
print(réponse_à_la_question_universelle(quarante_deux))
- Rigolo et récursif ; bien joué.
- Après la définition des fonctions, il manque
🐍 Script Python
import doctest
doctest.testmod()
Corrigé du professeur⚓︎
🐍 Script Python
"""
author: Franck CHAMBON
problem: https://prologin.org/train/2004/semifinal/42
"""
def reponse_question_universelle() -> int:
"""
Renvoie la réponse à la question universelle,
sur la vie, l'univers, et le reste.
(Pour ceux qui ne le sauraient pas déjà, la réponse à
cette question est le nombre 42.)
>>> reponse_question_universelle()
42
"""
return 42
# Tests
import doctest
doctest.testmod()
# Entrée/Sortie
print(reponse_question_universelle())