Aller au contenu

E01 - 42⚓︎

Le problème

42

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())
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 et M.. Ton professeur préfère M. 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())