>>> alist = [10, 5, 32, 1, 8, 20]
>>> alist[0] = 100
>>> alist[1:3] = [45, 88, 12, 24]
>>> alist
[100, 45, 88, 12, 24, 1, 8, 20]
>>> alist[2:2]
[]
>>> alist[2:2] = [12, 8]
>>> alist
[100, 45, 12, 8, 88, 12, 24, 1, 8, 20]
# La méthode de la liste
>>> alist.append(12) # Annexe
>>> alist.extend([55, 32, 1]) # Ajouter plusieurs
>>> alist.remove(8) # Supprimer le premier8
>>> alist.index(12) # Retour au premier12Indice
>>> alist.reverse() # Flip
>>> blist = alist.copy() # Oui.alistValeur decopyAprès,Assigner une valeur àblist
>>> alist.insert(2, 88) # Sous le signe2Insertion de la position88
>>> alist.sort() # Ordre croissant
>>> alist.sort(reverse=True) # Ordre décroissant
>>> alist.count(12) # Statistiques12Nombre d'occurrences
>>> alist.pop() # éjecter le dernier élément
>>> alist.pop(2) # L'indice pop - up est2Projets pour
Une liste plutôt statique .
>>> atuple = (10, 20, 15)
>>> atuple.count(10) # Statistiques10Nombre d'occurrences
1
>>> atuple.index(15) # Accès15Indice
2
>>> a = (10)
>>> type(a) <class 'int'>
>>> a
10
>>> b = (10,) # Un Tuple d'élément unique doit avoir une virgule
>>> type(b) <class 'tuple'>
>>> len(b)
1
Exercice:Simuler la structure de la pile
(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 2
[]
(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 0
Données: hello
(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 0
Données: world #Dernier entré premier sorti( Ce qui a été écrit plus tard a été retiré en premier. ) (0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 2 ['hello', 'world'] (0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 1
éjecter de la pile: world
(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 2 ['hello'] (0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 1
éjecter de la pile: hello
(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 1
Pile vide
(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): 3
bye-bye
def push_it(): #Pile de pression
def pop_it(): #Hors de la pile
def view_it(): #Requête
def show_menu(): # Toutes les autres déclarations de jugement qui mettent en œuvre la fonction sont résumées en une seule fonction
if __name__ == '__main__':
show_menu()
3. Écrire des énoncés de fonctions spécifiques dans chaque fonction
La première approche:
stack = []
def push_it():
data = input('Veuillez saisir les données:').strip()
if data:
stack.append(data)
else:
print('Données nulles,Non ajouté')
def pop_it():
if stack:
print('éjecter de la pile: %s' % stack.pop())
else:
print('Pile vide')
def view_it():
print(stack)
def show_menu():
prompt = '''
(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3):'''
while True:
choice = input(prompt).strip()
if choice not in ['0','1','2','3']:
print('Entrée invalide,Veuillez réessayer.!')
continue
if choice == '0':
push_it()
elif choice == '1':
pop_it()
elif choice == '2':
view_it()
else:
print('Bye_bye')
break
if __name__ == '__main__':
show_menu()
Deuxième approche(Utiliser un dictionnaire):
stack = []
def push_it():
data = input('Données: ').strip()
if data:
stack.append(data)
else:
print('Données nulles,Non ajouté ')
def pop_it():
if stack:
print('éjecter de la pile: %s' % stack.pop())
else:
print('Pile vide')
def view_it():
print(stack)
def show_menu():
# Le dictionnaire est le type de conteneur , Vous pouvez stocker n'importe quel objet , Dans cet exemple, la fonction Save
cmds = {'0': push_it, '1': pop_it, '2': view_it}
prompt = """(0) Pile de pression
(1) Hors de la pile
(2) Requête
(3) Sortie
Veuillez sélectionner(0/1/2/3): """
while True:
choice = input(prompt).strip() # Supprimer les espaces aux deux extrémités de la chaîne
if choice not in ['0', '1', '2', '3']:
print('Entrée invalide,Veuillez réessayer.. ')
continue
if choice == '3':
print('Bye-bye')
break
cmds[choice]() # Extraire la fonction correspondante du dictionnaire pour l'appeler
if __name__ == '__main__':
show_menu()
>>> dict(['ab', ['name', 'bob'], ('age', 20)])
{'a': 'b', 'name': 'bob', 'age': 20}
>>> dict([('name', 'tom'), ('age', 20), ('mail', '[email protected]')])
{'name': 'tom', 'age': 20, 'mail': '[email protected]'}
>>> {}.fromkeys(['tom', 'jerry', 'bob'], 20)
{'tom': 20, 'jerry': 20, 'bob': 20}
>>> info = dict([('name', 'tom'), ('age', 20), ('mail', '[email protected]')])
>>> info
{'name': 'tom', 'age': 20, 'mail': '[email protected]'}
>>> for key in info:
... print(key, info[key])
...
name tom
age 20
mail [email protected]
>>> '%(name)s is %(age)s years old' % info
'tom is 20 years old'
>>> '%s is %s years old' % (info['name'], info['age'])
'tom is 20 years old'
>>> info['age'] = 22
>>> info['phone'] = '15012345678'
>>> info
{'name': 'tom', 'age': 22, 'mail': '[email protected]', 'phone': '15012345678'}
>>> 'tom' in info
False
>>> 'name' in info
True
>>> len(info) 4
>>> info.keys() # Enlevez tous leskey
dict_keys(['name', 'age', 'mail', 'phone'])
>>> info.values() # Enlevez tous lesvalue
dict_values(['tom', 22, '[email protected]', '15012345678'])
>>> info.items() # Retirer les paires de valeurs clés
dict_items([('name', 'tom'), ('age', 22), ('mail', '[email protected]'), ('phone',
'15012345678')])
>>> list(info.items()) # Convertir les paires de valeurs clés en listes
[('name', 'tom'), ('age', 22), ('mail', '[email protected]'), ('phone', '15012345678')]
>>> info.popitem() # éjecter un élément du Dictionnaire
('phone', '15012345678')
>>> info.pop('mail') # éjecterkey- Oui.mailProjets pour
>>> info.update({'mail': '[email protected]'}) # Mise à jour du Dictionnaire
>>> {(1, 2): 'tom'} # Tuple as key
{(1, 2): 'tom'}
>>> {[1, 2]: 'tom'} # La liste est variable,Ne peut pas être key,Erreur signalée
# ** La méthode la plus importante dans le dictionnaire **
>>> info.get('name') # Extrait du Dictionnaire keyPournameValeur de
'tom'
>>> print(info.get('phone')) # keyPas dans le dictionnaire,Retour par défaut None
None
>>> print(info.get('phone', 'not found')) # Impossible de trouverkeyRetournot found
not found
>>> info.get('name', 'not found')
'tom'
>>> print(info.get('phone', '110'))
110
CAS2: Système d'information de connexion de l'utilisateur analogique
import getpass
userdb = {} # Utilisé pour stocker le nom d'utilisateur et le mot de passe
def register():
username = input('Nom d'utilisateur: ').strip()
if username == '':
print('Le nom d'utilisateur ne peut pas être vide ')
elif not username.isalnum():
print(' Le nom d'utilisateur ne peut contenir que des lettres et des chiffres ')
elif username in userdb:
print('L'utilisateur existe déjà')
else:
password = input('Mot de passe: ')
userdb[username] = password
def login():
username = input('Nom d'utilisateur: ').strip()
password = getpass.getpass('Mot de passe: ').strip()
# if username not in userdb or userdb[username] != password:
if userdb.get(username) != password:
print('\033[31;1mÉchec de la connexion\033[0m')
else:
print('\033[32;1mConnexion réussie\033[0m')
def show_menu():
cmds = {'0': register, '1': login}
prompt = """(0) Inscription
(1) Débarquement
(2) Sortie
Veuillez sélectionner(0/1/2): """
while True:
choice = input(prompt).strip()
if choice not in ['0', '1', '2']:
print(' Sélection invalide ,Veuillez réessayer.. ')
continue
if choice == '2':
print('Bye-bye')
break
cmds[choice]()
if __name__ == '__main__':
show_menu()
Validation:
# python 05.py
(0) Inscription
(1) Débarquement
(2) Sortie
Veuillez sélectionner(0/1/2): 0
Nom d'utilisateur:lss
Mot de passe:123
(0) Inscription
(1) Débarquement
(2) Sortie
Veuillez sélectionner(0/1/2): 1
Nom d'utilisateur: lss
Mot de passe:
Connexion réussie
(0) Inscription
(1) Débarquement
(2) Sortie
Veuillez sélectionner(0/1/2): 2
Bye-bye
Un ensemble est un concept mathématique
>>> frozenset('abc') # Ensemble immuable,Une fois la collection créée, Impossible d'ajouter, de supprimer ou de modifier
frozenset({'b', 'a', 'c'})
>>> set(['tom', 'jerry', 'bob'])
{'jerry', 'tom', 'bob'}
>>> aset = set('abc')
>>> bset = set('bcd')
>>> aset
{'b', 'a', 'c'}
>>> bset
{'b', 'd', 'c'}
>>> aset & bset # Intersection, Éléments des deux collections
{'b', 'c'}
>>> aset | bset # Union,Tous les éléments des deux collections
{'b', 'd', 'a', 'c'}
>>> aset - bset # Supplément différentiel,asetOui.,bsetAucune
{'a'}
>>> bset - aset # Supplément différentiel,bsetOui.,asetAucune
{'d'}
>>> aset
{'b', 'a', 'c'}
>>> len(aset)
3
>>> 'a' in aset
True
>>> for ch in aset:
... print(ch)
>>> aset.add(10) # Ajouter une nouvelle entrée à la collection
>>> aset.pop() # éjecter n'importe quel élément
'b'
>>> aset.remove(10) # Supprimer l'élément spécifié
>>> aset.update(['tom', 'jerry', 'bob'])
>>> aset
{'tom', 'a', 'jerry', 'bob', 'c'}
>>> aset = set('abc')
>>> bset = set('bcd')
>>> aset.union(bset) # aset | bset
{'b', 'd', 'a', 'c'}
>>> aset.intersection(bset) # aset & bset
{'b', 'c'}
>>> aset.difference(bset) # aset - bset
{'a'}
>>> cset = aset.union(bset)
>>> aset.issubset(cset) # aset- Oui.csetUn sous - ensemble de?
True
>>> cset.issuperset(aset) # cset- Oui.asetUn superensemble de?
True
# Utilisation fréquente des collections pour les opérations de déstockage
>>> from random import randint
>>> nums = [randint(1, 20) for i in range(20)]
>>> nums
[6, 12, 18, 19, 1, 1, 16, 15, 5, 6, 18, 19, 14, 11, 17, 13, 2, 5, 20, 16]
>>> result = []
>>> for i in nums:
... if i not in result:
... result.append(i)
>>> result
[6, 12, 18, 19, 1, 16, 15, 5, 14, 11, 17, 13, 2, 20]
>>> list(set(nums))
[1, 2, 5, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
Exercice:
python l2w.py userdb.py =>Générer un nouveau fichier,DéjàwindowsNouvelle ligne pour
"""
Convertir enwindows Nouveau format de ligne
Supprimer les caractères vides à la fin de chaque ligne du fichier source ,Et le raccorder. \r\n
"""
---->La solution estlinux Obtenir le fichier texte sur windows Une fois ouvert, il apparaît en ligne ,Pas de retour, Une fois que vous avez besoin de convertir un fichier texte
Mais.
import sys
def unix2dos(src, dst):
with open(src) as src_fobj:
with open(dst, 'w') as dst_fobj:
for line in src_fobj:
line = line.rstrip() + '\r\n'
dst_fobj.write(line)
if __name__ == '__main__':
unix2dos(sys.argv[1], sys.argv[2])