Le programme :
from random import randint
def reponse_question1(nombre):
'''
convertit un nombre en base 2 en base 10
: nombre : nombre ecrit en binaire, str
: return : un entier
>>>reponse_question1('1100')
12
'''
return int("0b"+nombre,2)
def reponse_question2(nombre):
'''
convertit un nombre en base 10 en base 2
: nombre : int
: return : str
>>>reponse_question2(21)
'10101'
'''
return bin(nombre)[2:]
def reponse_question3(nombre):
'''
convertit un nombre en base 10 en hexadecimal
: nombre : int
: return : str
>>>reponse_question3(21)
'15'
'''
return hex(nombre)[2:]
def reponse_question4(nombre):
'''
convertit un hexadecimal en nombre entier
: nombre : str
: return : str
>>>reponse_question4("b3")
179
'''
return int("0x"+nombre,16)
def reponse_question5(nombre):
'''
convertit un binaire en hexadecimal
: nombre : str
: return : str
>>>reponse_question5("10011100")
"9c"
'''
return hex(int("0b"+nombre,2))[2:]
def question1():
''' renvoie la question 1 avec sa reponse
: return : str,str
'''
question="Donner l'écriture décimale ( en base 10 ) du nombre binaire suivant : "
nombre=randint(100,255) # tire un nombre entier au hasard entre 100 et 255
ecriture_nombre=bin(nombre)[2:]
question+=ecriture_nombre
return question,reponse_question1(ecriture_nombre)
def question2():
''' renvoie la question avec sa reponse
: return : str,str
'''
question="Donner l'écriture binaire ( en base 2 ) du nombre décimal suivant (écrit en base 10 ) : "
nombre=randint(100,255) # tire un nombre entier au hasard entre 100 et 255
question+=str(nombre)
return question,reponse_question2(nombre)
def question3():
''' renvoie la question avec sa reponse
: return : str,str
'''
question="Donner l'écriture hexadécimale ( en base 16 ) du nombre décimal suivant (écrit en base 10 ) : "
nombre=randint(161,255) # tire un nombre entier au hasard entre 100 et 255
question+=str(nombre)
return question,reponse_question3(nombre)
def question4():
''' renvoie la question avec sa reponse
: return : str,str
'''
question="Donner l'écriture décimale ( en base 10 ) du nombre hexadécimal suivant (écrit en base 16 ) : "
nombre=randint(17,255) # tire un nombre entier au hasard entre 100 et 255
question+=hex(nombre)[2:]
return question,reponse_question4(hex(nombre)[2:])
def question5():
''' renvoie la question avec sa reponse
: return : str,str
'''
question="Donner l'écriture hexadécimale (écrit en base 16 ) du nombre binaire suivant : "
nombre=randint(128,255) # tire un nombre entier au hasard entre 100 et 255
question+=bin(nombre)[2:]
return question,reponse_question5(bin(nombre)[2:])
def revisions():
note=0
#question 1
question=question1()
texte_question=question[0]
reponse_question=str(question[1])
print(texte_question)
reponse=input("?")
if reponse==reponse_question:
print("Bravo")
note+=1
else :
print("Désolé, la bonne réponse était "+str(reponse_question))
#question2
question=question2()
texte_question=question[0]
reponse_question=str(question[1])
print(texte_question)
reponse=input("?")
if reponse==reponse_question:
print("Bravo")
note+=1
else :
print("Désolé, la bonne réponse était "+str(reponse_question))
#question3
question=question3()
texte_question=question[0]
reponse_question=str(question[1])
print(texte_question)
reponse=input("?")
if reponse==reponse_question:
print("Bravo")
note+=1
else :
print("Désolé, la bonne réponse était "+str(reponse_question))
#question4
question=question4()
texte_question=question[0]
reponse_question=str(question[1])
print(texte_question)
reponse=input("?")
if reponse==reponse_question:
print("Bravo")
note+=1
else :
print("Désolé, la bonne réponse était "+str(reponse_question))
#question5
question=question5()
texte_question=question[0]
reponse_question=str(question[1])
print(texte_question)
reponse=input("?")
if reponse==reponse_question:
print("Bravo")
note+=1
else :
print("Désolé, la bonne réponse était "+str(reponse_question))
# note
note*=2
print (" votre note :"+str(note)+"/10")
Après exécution , on a en console :
>>> revisions()
Donner l'écriture décimale ( en base 10 ) du nombre binaire suivant : 11001101
?205
Bravo
Donner l'écriture binaire ( en base 2 ) du nombre décimal suivant (écrit en base 10 ) : 110
?1101110
Bravo
Donner l'écriture hexadécimale ( en base 16 ) du nombre décimal suivant (écrit en base 10 ) : 191
?bf
Bravo
Donner l'écriture décimale ( en base 10 ) du nombre hexadécimal suivant (écrit en base 16 ) : a5
?171
Désolé, la bonne réponse était 165
Donner l'écriture hexadécimale (écrit en base 16 ) du nombre binaire suivant : 11110110
?a0
Désolé, la bonne réponse était f6
votre note :6/10