- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcours python.py
More file actions
Latest commit
146 lines (127 loc) · 4.4 KB
/
Copy pathcours python.py
File metadata and controls
146 lines (127 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/usr/bin/python3.6
# -*- coding: utf-8 -*-
defshowArgs (argPositionnalA, argPositionnalB, argDefault=10):
messageRed='bonjour {}, voici {}. vous allez séjourner {} jours ensemble.'
print (messageRed.format (argPositionnalA, argPositionnalB, argDefault))
showArgs ('david', 'jonathan')
showArgs (argPositionnalB='david', argDefault=3, argPositionnalA='jonathan')
deflistMethodsSort_va (itemA, itemO):
voyelles='aeiouy'
ifitemAinvoyellesanditemOinvoyelles: returnitemA>itemO
elifitemAnotinvoyellesanditemOnotinvoyelles: returnitemA>itemO
elifitemAinvoyellesanditemOnotinvoyelles: returnTrue
else: returnFalse
deflistMethodsSort (itemA, itemO):
voyelles='aeiouy'
ifitemA==itemO: return0
ifitemAinvoyellesanditemOinvoyelles:
ifitemA>itemO: return1# itemA est après itemO
else: return-1
elifitemAnotinvoyellesanditemOnotinvoyelles:
ifitemA>itemO: return1
else: return-1
elifitemAinvoyellesanditemOnotinvoyelles: return-1
else: return1
deflistMethods():
fromfunctoolsimportcmp_to_key
myList=[ 'a', 'b', 'c', 'd' ]
b=myList.pop (1)
myList.remove ('c')
myList.append ('e')
myList.extend ([ 'i', 'j', 'k' ])
myList=myList+ [ 'f', 'g', 'h' ]
myList.sort()
myList.insert (2, 'l')
print (myList)
myList=sorted (myList, key=cmp_to_key (listMethodsSort))
print (myList)
yList=[]
forlinmyList: yList.append (l+'y')
print (yList)
zList=[ l+'z'forlinmyList ]
print (zList)
for (a,b) inyList: print (a, ':', b)
defstringMethods():
# template avec paramètres nommés
urlRef='https://www.euronews.com/%(year)d/%(month)02d/%(day)02d'
urlFull=urlRef% { 'year': 2025, 'month': 1, 'day': 6, 'page': 2 }
# le formattage
goutRef="j'aime le {} au {} depuis mes {} ans"
goutFull=goutRef.format ('gateau', 'chocolat', 3)
print (goutFull)
colorRef="le {1} est ma couleur préférée depuis mes {0:02d} ans"
colorFull=colorRef.format (8, 'violet')
print (colorFull)
musiqueRef="j'aime le {styleMusic}, surtout le groupe {groupeMusic}"
musiqueFull=musiqueRef.format (groupeMusic='kyo', styleMusic='rock')
print (musiqueFull)
ClassReference=list# nécessaire pour faire tourner le scipt. ClassReference peut-être n'importe quelle classe pré-existente
classCustom (ClassReference):
# https://realpython.com/operator-function-overloading/#the-internals-of-operations-like-len-and
def__init__(self, parameter):
# custom = Custom (myParameter)
self.field=parameter
def__str__(self):
# print (custom)
return"parameter: "+parameter
def__repr__(self):
# déconseillé. peut être utilisé à la place de str.
return"objet Custom (Reference). parameter = "+self.parameter
def__len__(self):
# len (custom)
returnparameter.__len__()
def__add__ (self, itemStr):
# newCustom = self + "grenouille"
# aussi sub -, mul *, pow **, abs abs(nb),
newCustom=Custom (self.parameter+" "+itemStr)
returnnewCustom
def__radd__ (self, itemStr):
# newCustom = "grenouille" + self
# aussi rsub, rmul
newCustom=Custom (itemStr+" "+self.parameter)
returnnewCustom
def__iadd__ (self, itemStr):
# custom += "grenouille"
# aussi isub
self.parameter+" "+itemStr
returnself
def__bool__(self):
# if custom: do code
ifself.parameter: returnTrue
else: returnFalse
def__eq__(self, itemCustom):
# custom == itemCustom
# également ne !=, gt >, lt <, ge >=, le <=
ifself.parameter==itemCustom.parameter: returnTrue
else: returnFalse
"""
def __or__ (self, item):
# également not
"""
def__setitem__ (self, pos, item):
# custom[2] = 'a'
iftype (pos) ==int:
ifpos<0: pos+=self.length
ifpos<self.length: self.list[pos] =item
else: self.append (item)
eliftype (pos) ==slice:
posIndex=pos.indices (self.length)
rangeList=range (posIndex [0], posIndex [1], posIndex [2])
iftype (item) in (tuple, list) andlen (item) >=len (rangeList):
i=0
forlinrangeList:
self.list[l] =item[i]
i+=1
def__getitem__ (self, pos):
# print (custom[2])
iftype (pos) ==int:
whilepos<0: pos+=self.length
whilepos>=self.length: pos-=self.length
returnself.list [pos]
eliftype (pos) ==slice:
posIndex=pos.indices (self.length)
rangeList=self.range (posIndex [0], posIndex [1], posIndex [2])
newList=[]
forlinrangeList: newList.append (self.list[l])
returnnewList
else: returnNone