Browse Source

fichiers python

Thierry Dumont 6 months ago
commit
b6af39e10a
9 changed files with 176 additions and 0 deletions
  1. 21 0
      analysetext.py
  2. 17 0
      bub.py
  3. 20 0
      bub1.py
  4. 29 0
      bubsortdoctest.py
  5. 22 0
      factDoctest.py
  6. 24 0
      ffact.py
  7. 6 0
      mmin1.py
  8. 13 0
      testturing.py
  9. 24 0
      typed.py

+ 21 - 0
analysetext.py

@@ -0,0 +1,21 @@
+def antexte(s):
+    #
+    # le texte doit etre formé de 2 mots séparés par un ou plusieurs blancs.
+    #
+    sspl= s.split()
+
+    if len(sspl) != 2:
+        return False,"",""
+    else:
+        return True,sspl[0],sspl[1]
+#
+s=" truc muche"
+
+res=antexte(s)
+print(res)
+
+ok,prénom,nom = antexte(s)
+if ok:
+    print(prénom,nom)
+else:
+    print("chaîne entrée incorrecte.")

+ 17 - 0
bub.py

@@ -0,0 +1,17 @@
+def fmin(ll):
+    # 
+    minv = ll[0]
+    ind = 0
+    lr=len(ll)
+    for x in range(1,lr):
+        if ll[x]<minv:
+            ind =x
+            minv=ll[x]
+    return ind
+def bubsort(l):
+    res= []
+    while len(l)>0:
+        ind=fmin(l)
+        res.append(l.pop(ind))
+
+    return res

+ 20 - 0
bub1.py

@@ -0,0 +1,20 @@
+
+def bubsort(l):
+    #
+    def fmin(ll):
+        minv = ll[0]
+        ind =0
+        lr=len(ll)
+        for x in range(1,lr):
+            if ll[x]<minv:
+                ind =x
+                minv=ll[x]
+        return ind
+    #
+    lc= l.copy()
+    res= []
+    while len(lc)>0:
+        ind=fmin(lc)
+        res.append(lc.pop(ind))
+    return res
+

+ 29 - 0
bubsortdoctest.py

@@ -0,0 +1,29 @@
+
+def bubsort(l):
+    """ Tri pas la méthode des bulles
+    
+    Exemples:
+    
+    >>> bubsort([4,3,5])
+    [3, 4, 5]
+
+    >>> bubsort(["abc","aa","cdef", "a"])
+    ['a', 'aa', 'abc', 'cdef']
+    """
+    def fmin(ll):
+        minv = ll[0]
+        ind =0
+        lr=len(ll)
+        for x in range(1,lr):
+            if ll[x]<minv:
+                ind =x
+                minv=ll[x]
+        return ind
+    #
+    lc= l.copy()
+    res= []
+    while len(lc)>0:
+        ind=fmin(lc)
+        res.append(lc.pop(ind))
+    return res
+

+ 22 - 0
factDoctest.py

@@ -0,0 +1,22 @@
+def ffact(n):
+    """
+    Calcul de n! pour n>0
+
+    Résultat: tuple( True/False, valeur)
+
+    >>> ffact(4)
+    (True, 24)
+
+    >>> ffact(-4)
+    (False, 0)
+    """
+    if n<= 0:
+        return False,0
+    else:
+        ret = 1
+        for i in range(1,n+1):
+            ret *= i
+        return True,ret
+#
+print(ffact(10))
+

+ 24 - 0
ffact.py

@@ -0,0 +1,24 @@
+def ffact(n):
+    if n == 1:
+        return 1
+    else:
+        return n*ffact(n-1)
+def ffactfor(n):
+    if n<= 0:
+        return "bad",0
+    else:
+        ret = 1
+        for i in range(1,n+1):
+            ret *= i
+        return "ok",ret
+    
+fact = lambda x: 1 if x==1  else x*fact(x-1)
+from functools import reduce
+from operator import mul
+#factstd(n)= lambda n: reduce(mul,range(1,n+1))
+def factr(n):
+    return reduce(mul,range(1,n+1))
+
+ll=[ffact,ffactfor,fact,factr]
+for fonc in ll:
+    print(fonc(10))

+ 6 - 0
mmin1.py

@@ -0,0 +1,6 @@
+def mmin1(l):
+    ret = l[0]
+    for x in l[1:]:
+        if x<ret:
+            ret= x
+    return ret

+ 13 - 0
testturing.py

@@ -0,0 +1,13 @@
+def halts(prog):
+    #
+    # .....
+    return False
+
+def turing():
+    if halts(turing):
+        while True:
+            pass
+    else:
+        pass
+        
+turing()

+ 24 - 0
typed.py

@@ -0,0 +1,24 @@
+x=1
+print(type(x))
+
+x=1.0
+print(type(x))
+
+x='a'
+print(type(x))
+
+x='abcd'
+print(type(x))
+
+x=[1,2,3]
+print(type(x))
+
+x=(1,3,'a')
+print(type(x))
+
+x={"a":1,"b":4,"truc":"machin"}
+print(type(x))
+
+def f(x):
+    return x+1
+print(type(f))