Académique Documents
Professionnel Documents
Culture Documents
TP n5 Python 1
TP n5 Python 1
Ex1
def saisie():
while True:
break
return ch
def crypter(ch):
res=""
c=1
for i in range(1,len(ch)):
if(ch[i]==ch[i-1]):
c+=1
else:
res+=str(c)+ch[i-1]
c=1
return res
#--------------------------
ch=saisie()
res=crypter(ch)
Ex2
def crypter(ch):
code="HYLUJPVREAKBNDOFSQZCWMGITX"
res=""
for i in range(len(ch)):
c=ord(ch[i])-ord('A')
res+=code[c]
#----------------------------
while True:
break
crypter(ch)
EX3
def somme(x):
s=0
ch=str(x)
for i in range(len(ch)):
s=s+int(ch[i])
return s
#-----
while True:
if(5<=n<=50):
break
l=[]
ls=[]
for i in range(n):
while True:
x=int(input("donner un entier"))
if(x>0):
break
l.append(x)
for i in range(n):
ls.append(somme(l[i]))
print("premier liste")
for i in range(n):
print(l[i])
print("2eme liste\n")
for i in range(n):
print(ls[i])
Ex4 :
def premier(x):
i=2
if(x%i!=0):
i=i+1
return i>x/2
def superpremier(x):
test=True
if(premier(x)):
x=x/10
else:
test=False
return test
def saisie():
while True:
n=int(input("donner n"))
if(5<=n<=50):
break
return n
def remplir(l,n):
for i in range(n):
while True:
if(x>0):
break
l.append(x)
return l
def affiche(l,n):
for i in range(n):
if(superpremier(l[i])):
print(l[i])
#----------------
l=[]
n=saisie()
l=remplir(l,n)
affiche(l,n)
EX5
def premier(x):
i=2
if(x%i!=0):
i=i+1
return i>x/2
def fact(x):
f=1
for i in range(2,x+1):
f=f*i
return f
def pfact(x):
for i in range(1,x+1):
return True
return False
def saisie():
while True:
n=int(input("donner n"))
if(5<=n<=50):
break
return n
def remplir(l,n):
for i in range(n):
while True:
if(x>0):
break
l.append(x)
return l
def affiche(l,n):
for i in range(n):
if(pfact(l[i])):
print(l[i])
#----------------
l=[]
n=saisie()
l=remplir(l,n)
affiche(l,n)
EX6
def somme_chiffre(x):
ch=str(x)
s=0
for i in range(len(ch)):
s=s+int(ch[i])
return s
def somme_fact(x):
s=0
i=2
while(x!=1):
if(x%i==0):
if(i>10):
s+=somme_chiffre(i)
else:
s=s+i
x=x//i
else:
i=i+1
if x>1:
s+=x
return s
def smith(x):
return(somme_chiffre(x)==somme_fact(x))
def saisie():
while True:
n=int(input("donner n"))
if(5<=n<=50):
break
return n
def remplir(l,n):
for i in range(n):
while True:
if(x>0):
break
l.append(x)
return l
def affiche(l,n):
for i in range(n):
if(smith(l[i])):
print(l[i])
#----------------
print(somme_fact(636))
l=[]
n=saisie()
l=remplir(l,n)
affiche(l,n)
EX7
def antipal(x):
ch=str(x)
i=0
j=len(ch)-1
while(i<j):
if(ch[i]==ch[j]):
return False
else:
i+=1
j-=1
return True
def maximum(ch):
m=0
for i in range(1,len(ch)):
if(ord(ch[i])>ord(ch[m])):
m=i
return m
def former(x):
ch=str(x)
res=" "
while(ch!=""):
if(ch[maximum(ch)]!=res[len(res)-1]):
res=res+ch[maximum(ch)]
if maximum(ch)!=0:
ch=ch[:maximum(ch):]+ch[maximum(ch)+1:]
else:
ch=ch[1:len(ch):]
return int(res)
def saisie():
while True:
n=int(input("donner n"))
if(5<=n<=50):
break
return n
def remplir(l,n):
for i in range(n):
while True:
if(antipal(x)):
break
l.append(x)
return l
def modifier(l,n):
for i in range(n):
l[i]=former(l[i])
return l
def affiche(l,n):
for i in range(n):
print(l[i])
#------------------
l=[]
n=saisie()
l=remplir(l,n)
l=modifier(l,n)
affiche(l,n)
EX8
def maximum(ch):
m=0
for i in range(1,len(ch)):
if(ord(ch[i])>ord(ch[m])):
m=i
return m
def minimum(ch):
m=0
for i in range(1,len(ch)):
if(ord(ch[i])<ord(ch[m])):
m=i
return m
def former1(x):
ch=str(x)
res=" "
while(ch!=""):
m=maximum(ch)
if(ch[m]!=res[len(res)-1]):
res=res+ch[m]
if m!=0:
ch=ch[:m:]+ch[m+1:]
else:
ch=ch[1:len(ch):]
return int(res)
def former2(x):
ch=str(x)
res=" "
while(ch!=""):
m=minimum(ch)
if(ch[m]!=res[len(res)-1]):
res=res+ch[m]
if m!=0:
ch=ch[:m:]+ch[m+1:]
else:
ch=ch[1:len(ch):]
return int(res)
def saisie():
while True:
break
return x
def suite(x):
print(x)
nb=2
un=former1(x)-former2(x)
print(un)
while(un!=x):
x=un
un=former1(x)-former2(x)
if(un!=x):
print(un)
nb=nb+1
def suite1(x):
nb=1
print(x)
while True:
un=former1(x)-former2(x)
print(un)
nb=nb+1
if(un==x):
break
else:
x=un
#------------
x=saisie()
suite(x)
Ex9
def saisie():
while True:
n=int(input("donner n"))
if(n>0):
break
return n
def remplir(l,n):
ch=str(n)
t=1
ch=ch[::-1]
while(ch):
ch1=ch[:3:]
l.append(int(ch1[::-1]))
ch=ch[3:]
t+=1
return l,t
def div(l,t):
s=0
sig=1
for i in reversed(l):
s+=i*sig
sig=-1*sig
return s
#--------------
l=[]
n=saisie()
l,t=remplir(l,n)
if(abs(div(l,t)%13==0)):
else:
def premier(x):
i=2
if(x%i!=0):
i=i+1
return i>x/2
def existe(x,l):
for i in l:
if(i==x):
return True
return False
def premier_c(x):
test=premier(x)
l=[]
while(test and(existe(x,l)==False)):
l.append(x)
ch=str(x)
ch=ch[1]+ch[2:]+ch[0]
x=int(ch)
test=premier(x)
return test
def saisie():
while True:
p=int(input("donner p"))
q=int(input("donner q"))
if(10<p<q<=10000):
break
return p,q
def affiche(p,q):
for i in range(p,q+1):
if(premier_c(i)):
print(i)
#------------------
p,q=saisie()
affiche(p,q)
EX11 :
def modifier(l2,i,x):
for j in range(i+1,len(l2)):
if(l2[j]%x==0):
l2[j]=0
return l2
def supprimeMultiple(l1):
l2=l1
for i in range(len(l1)):
if(l1[i]!=0):
l2=modifier(l2,i,l1[i])
return l2
def cible(n):
l1=[]
l2=[]
for i in range(2,n+1):
l1.append(i)
l2=supprimeMultiple(l1)
return l2
def prime(n):
l=[]
l=cible(n)
for i in l:
if i!=0:
print(i)
#____
n=int(input("donner un entier"))
prime(n)
Ex12
def rotation(l):
l.append(l[len(l)-1])
l[i] = l[i-1]
l[0] = l[len(l)-1]
l=l[:len(l)-1]
return l
def decalage(l,n):
for i in range(n):
l=rotation(l)
return l
#-----------
l=[1000,1,2,3,99,-5]
print(decalage(l,3))
EX13_14
def sameChar(l1,l2):
l3=[]
if(len(l1)>len(l2)):
p=len(l2)
g=len(l1)
else:
p=len(l1)
g=len(l2)
for i in range(p):
if(l2[i]==l1[i]):
l3.append(1)
else:
l3.append(-1)
for i in range(g-p):
l3.append(0)
print(l3)
#---------
l1=['c','b','a','d']
l2=['a','b','c','d','e','f','g']
print(sameChar(l1,l2))
Ex15 :
def saisie():
while True:
break
return n
def remplir_NOMS(n):
nom=[]
for i in range(n):
a=input("donner un non")
nom.append(a)
return nom
def remplir_score(n):
temps=[]
values = []
for i in range(n):
for i in range(3):
values.append(value)
t= tuple(values)
temps.append(t)
return temps
d = {}
for i in range(n):
d[nom[i]] = s / 3
return d
def gangnant(d,n):
p= list(d.items())[0]
m=p[0]
n=p[1]
if(value<n):
n=value
m=key
#---------
n=saisie()
nom=remplir_NOMS(n)
temps=remplir_score(n)
d=moy_temps(nom,temps,n)
gangnant(d,n)