pythonSpécifications de programmation PEP8
pycharm Formatage ctrl + alt + l,Voici quelques raccourcis clavier couramment utilisés
Commentaires multilignes’‘’ Contenu de la note ‘’’
pythonC'est un langage faible.,La Déclaration des variables n'est pas très stricte avec le type de données
Format:Nom de la variable = Valeur
pythonIl est recommandé de souligner le nom de la variable
type()Afficher les types de données
pythonLe nom de la variable moyenne est plus recommandé pour séparer les mots avec un soulignement:Nom de la variable,Nom de la fonction et nom du fichier en minuscules,Connectez - vous avec un soulignement; Les noms de classe suivent la nomenclature Big Hump; Nom constant en majuscules;
Pour les chaînes,Guillemets simples,Les guillemets doubles peuvent,Trois citations peuvent aussi(Après le symbole d'affectation)
Pourquoi y a - t - il trois formes pour représenter une chaîne
C'est pour faire la distinction quand les guillemets sont imbriqués
Par exemple m = " sdfsdf’dfsdf’"
Trois guillemets sont utilisés pour maintenir le format de sortie:
python Les types entrés sont tous des chaînes
# Il n'y a pas de problème avec le point flottant directement à l'entier , Les chiffres après la décimale sont ignorés
a = 9.9
print(int(a)) # 9
# Si c'est une chaîne qui devient un entier, il y a un problème
a = '9.9'
print(int(a)) # Erreur signalée
# Rotation des chaînesfloatC'est bon.
a = '9.9'
print(float(a))
# True Le type entier correspond à 1,False- Oui.0
# True Le type de point flottant est 1.0,False- Oui.0.0
# La chaîne booléenne se transforme directement en chaîne
# Tant que ce n'est pas le cas.0 Convertir le nombre en booléen boolTous.true
# Chaîne vide ('')Remplacer parbool- Oui.False
print(bool(''))
print(bool(""))
print(bool(0))
print(bool({
}))
print(bool([]))
print(bool(()))
print(bool(None))
# Tous.false
# Spécifiez le symbole d'intervalle dans la sortie
print(1,2,3,sep='#')
# Résultats obtenus
# 1#2#3
end Indique ce qui est ajouté au résultat
# Assignation de variables multiples(Séparer par des virgules)
>>> num1, f1, str1 = 100, 3.14, "hello"
>>> num1
100
>>> f1
3.14
>>> str1
"hello"
Nombre et chaîne ==Le résultat de l'opération estfalse,Sauf que == En dehors des opérations logiques ,Les erreurs seront signalées directement.
Si vous comparez deux chaînes , Chaque caractère est converti en code correspondant , Et les comparer un par un .
print(80<=90<100) # True
Il faut faire attention ici., Quand il y a beaucoup d'opérateurs logiques connectés , Notez quelle valeur est prise
Parce que quand on prend la logique ici, , Est également court - circuit et court - circuit ou , Donc C'est la dernière valeur valide
a = 1
b = 3
print(a and b) # Produits3, Prendre la valeur suivante
print(a or b) # Produits1, Prendre la valeur précédente
c = 0
print(c and a) # Produits0
a = 34
a > 10 and print('hello world') # Produits disponibles
a < 10 and print('hello world') # Pas de sortie
a >10 or print('Bonjour, monde') # Pas de sortie
a <10 or print('Bonjour, monde') # Produits disponibles
À propos du formatage des sorties , Combien de sorties décimales sont conservées
money = 99.56
print('J'ai gagné.%fUn dollar.' %money)
# out: J'ai gagné.99.560000Un dollar.
# Vous pouvez voir qu'il y a beaucoup de zéros inutiles ici
print('J'ai gagné.%.2fUn dollar.' %money)
# Les chiffres sont arrondis ici.
money = 99.55
print('J'ai gagné.%.1fUn dollar.' %money)
# J'ai gagné.99.5Un dollar.
money = 99.56
print('J'ai gagné.%.1fUn dollar.' %money)
# J'ai gagné.99.6Un dollar.
bin(),oct(),hex()
0b,0o,0x
# Binaire
n = 149
r = bin(n)
print(r) # 0b10010101
# Tourne.8Décimal
r = oct(n)
print(r) # 0o225
# Tourne.16Décimal
r = hex(n)
print(r) # 0x95
# Décimal de sortie par défaut
n = 0x558
print(oct(n)) # 0o2530
# Ou avecintConversion
r = int(n) # 1368
Il faut veiller à ce que le déplacement à gauche ne déborde pas , Ça va continuer à grandir.
random.randint(1, 10) Produire1À10Nombre aléatoire de(1Et10Tous inclus)
passMots clés Pour soutenir la structure ,Par exemple,if Si vous écrivez une condition et que vous n'écrivez rien, vous déclarez une erreur , Structure appelée effondrement ,Écris unpass Pour soutenir cette structure , Pas d'erreur.
InPython Allow similar to 5<a<10 Pour écrire
InPythonMoyenne, Lors de la conversion en booléen ,Seulement 0,“”,‘’,None,(),{},[] Sera converti en False, Tout le reste sera converti en True
Opérateur ternaire
a = 10
b = 30
c = a if a>b else b
équivalent à
a = 10
b = 30
if a > b:
c = a
else:
c = b
while / for
InPythonMoyenne forLa boucle peut traverser n'importe quelle séquence d'éléments,Comme une liste ou une chaîne.
forFormat de boucle:
for Variables temporaires in Une liste ou une chaîne d'objets itérables:
Code exécuté lorsque la boucle satisfait aux conditions
range Peut générer des nombres pour for Itération circulaire, Il peut passer trois paramètres ,Représente séparément Début、Fin et pas.
Inclure la position de départ, Ne contient pas de valeur finale
La valeur par défaut est de0Au début,La taille par défaut de l'étape est1
>>> range(2, 10, 3)
[2, 5, 8]
>>> for x in range(2, 10, 3):
... print(x)
...
2
5
8
InPythonMoyenne,breakEtcontinueNe peut être utilisé que dans des déclarations circulaires.
breakEtcontinue Lorsqu'il est utilisé dans une boucle imbriquée , Valable uniquement pour les cycles les plus internes .
InPythonMoyenne, Les déclarations circulaires peuvent également être combinées avec elseDéclaration utilisée conjointement
while Conditions de jugement:
Lorsque les conditions sont réunies,Code du corps de la boucle
else:
Si le cycle n'a pas été interrompu ,Pour être exécuté; Si l'exécution saute , Alors ça ne sera pas exécuté ici.
De la structure ci - dessus ,Nous pouvons voir, Dans un cycle non mort ,Dans des conditions normaleselse Toutes les déclarations sont exécutées .Celui - là.else Qu'est - ce qu'une déclaration fait exactement ?En général,Déclarations circulaires etelse En cas de co - occurrence , Dans les déclarations en boucle breakDéclarations à utiliser.
\r Renvoie le début de la ligne , Imprimer le contenu suivant
print("abcd\r efg")
-----
print("abcd\n efg")
Produits:
efg
-----
abcd
efg
Fonction pour obtenir l'adresse id()
is Les opérateurs comparent les adresses
Comme le montre l'exemple suivant , Mémoire partagée par la même chaîne ,équivalent àjavaPool de constantes de chaîne dans
s1 = 'hello'
s2 = s1
s3 = 'hello'
print(id(s1))
print(id(s2))
print(id(s3))
print(s1 is s2)
s1 = 'word'
print(s1, s2, s3)
Produits:
2035658937544
2035658937544
2035658937544
True
word hello hello
L'index des chaînes peut être d'avant en arrière ,De0Ça commence àlen(s) - 1
Peut aller de l'arrière vers l'avant ,De-len(s)Ça commence à-1
Une tranche est une opération qui intercepte une partie d'un objet d'une opération.String、Liste、Les tuples supportent le tranchage.
Syntaxe des tranches:[Début:Fin:Étapes], Peut également simplifier l'utilisation [Début:Fin]
Attention!:Plage sélectionnée à partir de"Début"Début du BIT,À"Fin"Fin du BIT précédent(Ne contient pas le BIT de fin lui - même),La taille de l'étape indique l'intervalle de sélection, Vous pouvez également contrôler la direction ,Un nombre négatif signifie prendre de droite à gauche.
findRechercher si le contenu spécifié existe dans la chaîne,Renvoie la valeur de l'index de position de départ où le contenu apparaît pour la première fois dans la chaîne s'il existe,S'il n'existe pas,Renvoie-1.
Format syntaxique:([] Est quelque chose qui peut être ajouté )
S.find(sub[, start[, end]]) -> int
end Ne sera pas non plus inclus
mystr = 'Il fait beau aujourd'hui.,C'est beau partout.'
id_f = mystr.find('Le vent') # 11
print(mystr.find('Beau paysage.')) # 10 'Beau paysage.'À la première apparition,'D'accord.'Emplacement
print(mystr.find('Bonjour')) # -1 'Bonjour'N'existe pas,Retour -1
print(mystr.find('Le vent', 12)) # 15 De l'indice12Commencer à chercher'Le vent', Localiser le vent et essayer 15
print(mystr.find('Le vent', 11)) # 11 De l'indice12Commencer à chercher'Le vent', Localiser le vent et essayer 11
print(mystr.find('Le vent',0,id_f)) # -1 De l'indice0Ça commence à10Trouver"Le vent", Non trouvé,Retour -1
rfindC'est de droite à gauche
indexSuivez - moi.find()La même méthode,C'est juste que,findQuand la méthode n'a pas été trouvée,Retour-1,EtstrNon trouvé,Une exception sera signalée.
startswithDétermine si la chaîne commence par le contenu spécifié. Format syntaxique:
S.startswith(prefix[, start[, end]]) -> bool
isalphaDéterminer si la chaîne est une lettre pure.
isdigitDéterminer si une chaîne est un nombre pur,Tant que le non0~9Nombre de,Le résultat estFalse.
isalnumDéterminer s'il s'agit de chiffres et de lettres.Tant qu'il y a des non - chiffres et des lettres,Je reviensFalse.
isspaceSi mystr Ne contient que des espaces,Renvoie True,Sinon, retournez à False.
isupper Déterminer si toutes les lettres de la chaîne sont majuscules
islower Déterminer si toutes les lettres de la chaîne sont minuscules ,Comme suit
s = "123dddd"
print(s.islower()) # True
Retour strInstartEtendEntre In mystrLe nombre d'occurrences à l'intérieur.
Format syntaxique:
S.count(sub[, start[, end]]) -> int
Remplacer le contenu spécifié dans la chaîne,Si vous spécifiez un nombre de foiscount,Le remplacement ne dépassera pascountUne fois.
replace(old, new, count)
mystr = 'Il fait beau aujourd'hui.,C'est beau partout.'
newstr = mystr.replace('D'accord.', 'Mauvais')
print(mystr) # Il fait beau aujourd'hui.,C'est beau partout. La chaîne originale n'a pas changé !
print(newstr) # Il fait beau aujourd'hui. , Mauvais paysage partout Dans la nouvelle chaîne ,'D'accord.'Modifié en'Mauvais'
newstr = mystr.replace('D'accord.','Mauvais',2) # Nombre de remplacements spécifiés
print(newstr) # Il fait beau aujourd'hui. , C'est un beau paysage. Il n'y en a que deux. 'D'accord.'Remplacé par'Mauvais'
Si vous remplacez deux mots à la fois ,Peut passer1. Expression régulière pour traiter 2.Cycle+Liste
La séparation du contenu concerne principalement split,rsplit, splitlines,partitionEtrpartitionQuatre approches.
split(‘Séparateur’, maxsplit) Le résultat est une liste,Coupez.maxsplitCouteau.
splitlinesSéparés par des lignes,Renvoie une liste contenant les lignes comme éléments.
partitionPrends ça.mystrParstrDivisé en trois parties,strAvant,strEtstrAprès, Trois parties forment un Tuple
mystr = 'Il fait beau aujourd'hui.,C'est beau partout.'
print(mystr.partition('D'accord.')) # ('Le temps d'aujourd'hui', 'D'accord.', 'C'est clair.,C'est beau partout.')
La possibilité de modifier le cas n'est valable qu'en anglais,Comprend principalement:,Majuscules initialescapitalize,Les initiales de chaque mot sont majusculestitle,En minusculeslower,En majusculesupper.
Souvent,strip,Supprimer les espaces à gauche et à droite
ljustRenvoie une chaîne de la longueur spécifiée,Et compléter à droite avec des caractères blancs(Aligner à gauche).
str = 'hello'
print(str.ljust(10)) # hello Cinq espaces à droite
rjustRenvoie une chaîne de la longueur spécifiée,Et compléter à gauche avec des caractères blancs(Aligner à droite).
str = 'hello'
print(str.rjust(10)) # helloCinq espaces à gauche
centerRenvoie une chaîne de la longueur spécifiée,Et compléter avec des caractères blancs aux deux extrémités(Centrage)
str = 'hello'
print(str.center(10)) # hello Espace aux deux extrémités,Centrer le contenu
lstripSupprimer mystr Caractère blanc à gauche.
mystr = ' he llo '
print(str.lstrip()) #he llo Il n'y a plus que l'espace à gauche,Les espaces au milieu et à droite sont réservés
rstripSupprimer mystr Caractère blanc à droite.
mystr = ' he llo '
print(str.rstrip()) # he lloL'espace à droite est supprimé
strip Supprimer les caractères d'espace brisés .
str = ' he llo '
print(str.strip()) #he llo
Traverser les paramètres,Sortez chaque élément du paramètre, Et ajoutez - le à l'arrière mystr
Format syntaxique:
S.join(iterable)
Exemple:
mystr = 'a'
print(mystr.join('hxmdq')) #haxamadaq Prends ça.hxmd Un par un. , Et ajouter des caractères après a. Le dernier. q Réserve,Non. a
print(mystr.join(['hi','hello','good'])) #hiahelloagood
Action:Vous pouvez rapidement transformer une liste ou un Tuple en chaîne,Et séparés par les caractères spécifiés.
txt = '_'
print(txt.join(['hi','hello','good'])) #hi_hello_good
print(txt.join(('good','hi','hello'))) #good_hi_hello
Le nom du champ simple est écrit par trois:
Omettre le nom du champ:{}
Utiliser un entier décimal non négatif{0}
Nom de la variable{name}
Omettre le nom du champ entre parenthèses,Passer les paramètres de position.
Remplacer le formulaire de champ: {}
Attention!:Le nombre de crochets peut être inférieur au nombre de paramètres de position,Sinon.
# Omettre le nom du champ passer le paramètre de position
print('Mon nom est...{},Cette année{}Année.'.format('Xiao Ming', 18))
""" Je m'appelle Xiao Ming,Cette année18Année. """
# Le nombre de crochets peut être inférieur au nombre de paramètres de position
print('J'adore manger{}Et{}.'.format('Bananes', 'Pommes', 'Big Duck Pear'))
""" J'adore les bananes et les pommes. """
# Si le nombre de crochets est supérieur au nombre de paramètres de position, une erreur est signalée
# print('Je mange encore{}Et{}.'.format('Tomates'))
""" IndexError: tuple index out of range """
Les paramètres de position peuvent être passés par un simple nom de champ sous forme numérique.
Le nombre doit être supérieur ou égal à 0 Un entier de.
Les champs de remplacement avec des nombres peuvent être réutilisés.
Un nom de champ simple sous forme numérique équivaut à format Tous les paramètres de position dans l'ensemble sont traités comme un Tuple,Valeur par nombre dans le nom du champ.C'est - à - dire: {0} Équivalent à tuple[0],Donc les chiffres entre parenthèses ne peuvent pas dépasser.
# Passer le paramètre de position par un nom de champ simple sous forme numérique
print('Taille{0},Chez moi.{1}.'.format(1.8, 'Causeway Bay'))
""" Taille1.8,Maison à Causeway Bay """
# Les noms de champs simples sous forme numérique peuvent être réutilisés.
print('J'adore.{0}.\nCette année.{1}.\nMoi aussi.{0}.'.format('Ah, Heung.', 17))
""" J'aime ashan. Cette année.17. J'aime aussi ashan. """
# Considérez tous les paramètres de position comme des tuples
print('Ah Xiang aime manger{1}、{3}Et{0}.'.format(
'Durian', 'Tofu puant', 'Des oeufs en cuir', 'Hareng en conserve', 'Poudre de puccin'))
""" Ah Xiang aime manger du tofu puant、Hareng en conserve et Durian. """
# Essayez de franchir la ligne
# print('{1}'.format('Mauvaise utilisation'))
""" IndexError: tuple index out of range """
Passer un paramètre clé en utilisant un nom de champ simple sous la forme d'un nom de variable.
La position du paramètre clé peut être modifiée à volonté.
# Passer un paramètre clé en utilisant un nom de champ simple sous la forme d'un nom de variable
print('Mon grand frère est{name},Cette année{age}Année.'.format(name='Fei!', age=20))
""" Mon frère aîné est un Fei,Cette année20Année. """
# L'ordre des paramètres du mot - clé peut être modifié à volonté
print('Mon grand frère est{name},Cette année{age}Année.'.format(age=20, name='Fei!'))
""" Mon frère aîné est un Fei,Cette année20Année. """
Mélanger les noms de champs sous forme numérique et variable,Vous pouvez passer à la fois les paramètres de position et les paramètres clés.
Le paramètre clé doit être derrière le paramètre de position.
Les chiffres peuvent être omis lors du mélange.
Omettre le nom du champ {} Nom du champ qui ne peut pas être sous forme numérique {Entier non négatif} Utilisation simultanée.
# Mélanger les noms de champs sous forme numérique et variable
# Vous pouvez passer à la fois les paramètres de position et les paramètres clés
print('Il s'agit de{0}、{1}Et{girl}L'histoire de.'.format(
'Xiao Ming', 'Fei!', girl='Ah, Heung.'))
""" C'est à propos de Xiao Ming、L'histoire d'ah Fei et ah Xiang. """
# Mais le paramètre clé doit être derrière le paramètre de position
# print('Il s'agit de{0}、{1}Et{girl}L'histoire de.'.format(
# 'Xiao Ming', girl='Ah, Heung.' , 'Fei!'))
""" SyntaxError: positional argument follows keyword argument """
# Les chiffres peuvent également être omis
print('Il s'agit de{}、{}Et{girl}L'histoire de.'.format(
'Xiao Ming', 'Fei!', girl='Ah, Heung.'))
# Mais les noms de champs omis ne peuvent pas apparaître en même temps que les noms de champs numériques
# print('Il s'agit de{}、{1}Et{girl}L'histoire de.'.format(
# 'Xiao Ming', 'Fei!', girl='Ah, Heung.'))
""" ValueError: cannot switch from automatic field numbering to manual field specification """
str.format() La méthode peut également être utilisée *Tuple Et **Dictionnaire La forme du paramètre,Les deux peuvent être mélangés. Paramètres de position、Paramètre clé、*Tuple Et **Dictionnaire Peut également être utilisé en même temps,Mais attention,Le paramètre de position doit précéder le paramètre clé,*Tuple Oui. **Dictionnaire Devant..
# Utilisation de tuples pour passer les paramètres
infos = 'Iron Man', 66, 'Petit Chili'
print('Je suis{},Prix du corps{}100 millions.'.format(*infos))
""" Je suis Iron Man,Chez moi.66100 millions. """
print('Je suis{2},Prix du corps{1}100 millions.'.format(*infos))
""" Je suis le petit Chili,Chez moi.66100 millions. """
# Utiliser un dictionnaire pour transmettre les paramètres
venom = {
'name': 'Venin', 'weakness': 'Feu'}
print('Je suis{name},J'ai peur.{weakness}.'.format(**venom))
""" Je suis du venin,J'ai peur du feu. """
# Utilisez des tuples et un dictionnaire pour passer les paramètres
hulk = 'Hulk!', 'Les poings.'
captain = {
'name': 'Captain America', 'weapon': 'Shield'}
print('Je suis{}, J'ai peur.{weapon}.'.format(*hulk, **captain))
print('Je suis{name}, J'ai peur.{1}.'.format(*hulk, **captain))
""" Je suis Hulk, J'ai peur du bouclier. Je suis le capitaine américain, J'ai peur des poings. """
# Utilisation simultanée des paramètres de position、Tuple、Paramètre clé、Paramètres de transfert du dictionnaire
# Attention!:
# Le paramètre de position doit précéder le paramètre clé
# *Les tuples seront**Devant le Dictionnaire
tup = 'Hawkeye',
dic = {
'weapon': 'Flèches'}
text = 'Je suis{1},J'ai peur.{weakness}.Je suis{0},Je l'utilise.{weapon}.'
text = text.format(
*tup, 'La veuve noire', weakness='Hommes', **dic)
print(text)
""" Je suis la veuve noire,J'ai peur des hommes.Je suis Eagle Eye,J'utilise des flèches. """
Les noms de champs qui utilisent à la fois des nombres et des noms de variables sont des noms de champs composés .
Les noms de champs composés supportent deux types d'opérateurs :
. Point No.
[] Parenthèses
Passer les paramètres de position
Remplacer le formulaire de champ:{Nombre.Nom de la propriété}
Les chiffres peuvent être omis lorsqu'il n'y a qu'un seul champ de remplacement
class Person(object):
def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender
p = Person('zhangsan',18,'female')
print('Nom:{0.name},L'âge est{0.age},Le sexe est{0.gender}'.format(p))
print('Nom:{.name}'.format(p)) # Lorsqu'il n'y a qu'un seul champ de remplacement,Les chiffres peuvent être omis
Passer le paramètre de position avec la Liste
Passer le paramètre de position avec Tuple
Passer les paramètres de position dans le dictionnaire
# Utilisation des parenthèses:Passer le paramètre de position avec la Liste
infos = ['Star!', 9527]
food = ['Overlord Flower', 'Pop - corn']
print('Mon nom est...{0[0]},Les sirènes{0[1]},J'adore manger.{1[0]}.'.format(
infos, food))
""" Je m'appelle Aston,Les sirènes9527,J'adore les fleurs Overlord. """
# Utilisation des parenthèses:Passer le paramètre de position avec Tuple
food = ('Zombies.', 'Le cerveau')
print('Mon nom est...{0[0]},Âge{1},J'adore manger.{0[1]}.'.format(
food, 66))
""" Je m'appelle zombie,Âge66,J'adore le cerveau. """
# Utilisation des parenthèses:Passer les paramètres de position dans le dictionnaire
dic = dict(name='Star!', pid=9527)
print('Je suis{[name]}!'.format(
dic))
# Plusieurs champs de remplacement,Impossible d'omettre les chiffres
print('Je suis{0[name]},Les sirènes{0[pid]}.'.format(
dic))
""" C'est une étoile.! C'est une étoile.,Les sirènes9527. """
Champ de conversion conversion field Il y a trois valeurs pour,Devant. !:
s:Appelez le paramètre avant de passer le paramètre str()
r:Appelez le paramètre avant de passer le paramètre repr()
a:Appelez le paramètre avant de passer le paramètre ascii()
ascii() Fonctions similaires repr() Fonctions,Renvoie une chaîne qui peut représenter un objet. Mais pour le non ASCII Les caractères,Utiliser \x,\u Ou \U évasion.
# Champ de conversion
print('I am {!s}!'.format('Bruce Lee Bruce Lee.'))
print('I am {!r}!'.format('Bruce Lee Bruce Lee.'))
print('I am {!a}!'.format('Bruce Lee Bruce Lee.'))
""" I am Bruce Lee Bruce Lee.! I am 'Bruce Lee Bruce Lee.'! I am 'Bruce Lee \u674e\u5c0f\u9f99'! """