[Pour les débutants] Les bases de Python expliquées par Java Gold Part 2

Aperçu

J'espère pouvoir continuer à partager les bases de Python après la Partie 1! Si vous ne l'avez pas vu, commencez par la partie 1 ^^

ordre du jour

・ Si déclaration ・ Pour déclaration ·une fonction · Gestion des exceptions ・ Déclaration de passe ·portée ·classe ·fermeture ·argument · À la fin

if déclaration

Il n'y a pas de syntaxe de cas de commutation Java, mais une implémentation similaire est possible en utilisant le mot-clé "in". "El if" est une abréviation pour "else if".

・ Si déclaration


val1 = 1
val2 = 2

if val1 == val2:
  print('test1')
elif val1 > val2:
  print('test2')
else:
  print('test3') # test3

-Commutez l'écriture de type instruction en utilisant le mot-clé "in"


val3 = 3

if val3 == 1:
  print('test1')
elif val3 in(2,3):
  print('test2') # test2
elif val3 in(3,4):
  print('test3')
else:
  print('test4')

pour déclaration

L'instruction for est équivalente à l'instruction Java foreach. Souvent utilisé en combinaison avec la fonction de plage.

・ Pour la fonction de déclaration et de plage


for i in range(3):
  print(i) #Affichage par ordre de 0, 1, 2

・ Pour les instructions et les chaînes de caractères (des listes et des dictionnaires peuvent également être utilisés)


for c in 'test':
  print(c) # t, e, s,Affiché dans l'ordre de t

Au fait. .. .. Python a une instruction while, mais aucune instruction do-while.

une fonction

Utilisez "def" pour définir la fonction. * Tous les arguments sont passés par référence. ~~ Passez par valeur.


def fnc(a, b=1): #b est un argument avec une valeur par défaut
  return a + b #Valeur de retour

#Appel de fonction
print(fnc(10)) # 11 

-Lors de l'appel d'une fonction, il est possible d'ignorer l'ordre des définitions en spécifiant le nom de l'argument.


def fnc(a, b, c):
  print(a, b, c)

#Appel de fonction
fnc(c=3, a=1, b=2)# 1 2 3

■ Différences entre les fonctions et les méthodes Vous pouvez y voir presque la même chose!

** Fonctions **: celles qui ne sont pas liées à une classe particulière. Ce qui est défini par def dans le module. Ce qui est défini dans def avant instanciation dans la classe est une fonction. Comment écrire: Fonction (argument)

** Méthode **: Dédiée à une classe particulière (ou à une instance de cette classe). ~~ Ce qui est défini par def dans la classe. ~~ Une fois la classe instanciée, la fonction devient une méthode. Comment écrire: Value. Méthode (argument)

Par exemple, len ("chaîne de caractères") est une fonction pour obtenir la longueur de "chaîne de caractères", mais "chaîne de caractères" .split () est une méthode (object.function) qui divise les caractères par des caractères vides. .. Fondamentalement, dans le cas d'une méthode, il existe de nombreux processus spécifiques à cet objet. Par exemple, "string" .split ou "string" .startswith. Ceci est spécifique à une chaîne. Mais len peut être utilisé pour les chaînes et les listes. len ("chaîne") len ([0, 1, 2]). Dans ces cas, Python fournit une fonction.

· Quelle est la différence entre une fonction Python (objet) et une fonction objet ()? http://blog.pyq.jp/entry/2017/09/14/100000

■ Type immuable ・ Types numériques tels que int, float et complex -Type de chaîne (chaîne) ・ Type de tuple ・ Octets ・ Type d'ensemble congelé

■ Type mutable ・ Type de liste (liste) -Bytearray ・ Définir le type ・ Type de dictionnaire (dictionnaire)

Gestion des exceptions

Traitez avec la syntaxe "essayez ~ sauf ~ sinon ~ enfin". "except" est une instruction catch en Java. "L'instruction à exécuter lorsqu'une exception se produit, else décrit le processus non complété par except.


try:
  x = 10 / 0
except Exception as e:
  print(e) # division by zero
#Que faire si aucune exception ne se produit
else:
  print('test1')
#Traitement qui s'exécute toujours indépendamment du fait qu'une exception se produise
finally:
  print('test2')# test2

-Utilisez "lever" pour déclencher explicitement une exception. (Lancer une déclaration en Java)

try:
  raise Exception('test3')
except Exception as e:
  print(e) # test3

déclaration de réussite

Syntaxe pour spécifier "ne rien faire". Pas en Java.

Par exemple, il est utilisé dans les cas suivants. -Ne rien faire lors du branchement conditionnel ・ Ne rien faire lorsqu'une exception se produit -La mise en œuvre des fonctions et des classes n'est pas claire


#Sortie seulement même
for i in range(10): 
if(i % 2) == 0:
  print(i)
else:
  pass

portée

Il existe quatre types d'étendues comme suit. L'acronyme s'appelle LEGB.

① Portée locale → Uniquement dans la fonction. Vous pouvez faire référence à la portée intégrée et aux variables et aux fonctions de portée du module à partir de la portée locale, mais vous ne pouvez pas affecter (écraser) des valeurs aux variables.

② Portée (de la fonction) englobante → La portée est la première portée à connaître lorsque la fonction est définie dans la fonction, en bref, la portée locale en dehors de la fonction.

③ Portée mondiale → L'ensemble du module (fichier entier).

④ Portée intégrée → Peut être référencé de n'importe où dans le cadre des variables intégrées (Aucune) et des fonctions intégrées (fonction d'impression).

Pour plus de détails sur la portée, je me suis référé à cet article. Les détails sont décrits, alors jetez un œil si vous avez le temps.

classe

Le constructeur (méthode d'initialisation) doit être "\ _ \ _ init \ _ \ _" ou "__new \ ___", et ~~ doit définir "self" dans le premier argument. Il est courant d'utiliser ~~ self, et vous pouvez utiliser n'importe quel nom comme celui-ci. self est un objet qui représente une instance de ~~ lui-même. ~~ Nom de l'argument pour recevoir l'instance

Name.class



class Name:
  #Variable de classe
  LANG = 'JP'

  #constructeur
  def __init__(self):
    self.name = ''

  # getter
  def getName(self):
    return self.name

  # setter
  def setName(self, name):
    self.name = name

taro = Name()
taro.setName('Ichiro')
print(taro.getName()) #Ichiro
print(Member.LANG) # JP

fermeture

Une fonction qui référence une variable locale de la fonction. Vous pouvez continuer à faire référence aux variables locales même une fois l'appel de fonction terminé. Presque équivalent à la fermeture Javascript.

Pour plus d'informations sur les fermetures, consultez cet article.

argument

Il existe quatre types d'arguments comme suit.

① Argument normal

② Argument avec valeur par défaut → Un argument qui définit une valeur par défaut à adopter en cas d'omission lors de l'appel d'une fonction.

#② Argument avec valeur par défaut
def fnc(a, b = 1):
  return a + b #Valeur de retour

③ Argument de longueur variable → Un argument qui reçoit une ou plusieurs valeurs. Si vous ajoutez un astérisque (*) avant le nom de l'argument, il devient cet argument. Du côté de la fonction, l'argument de longueur variable reçu est traité comme un taple.

#③ Argument de longueur variable
def fnc(a, b, *args):
  print(a, b, args)

fnc('a','b','c','d','e') # a b ('c','d','e')

④ Argument de longueur variable avec mot-clé → Argument de longueur variable qui nécessite des mots-clés lors de la spécification de l'argument. Si vous ajoutez deux astérisques (*) avant le nom de l'argument, il devient cet argument. Côté fonction, l'argument de longueur variable reçu est traité comme des données de type dictionnaire avec le nom donné au moment de la définition.

#④ Argument de longueur variable avec mot-clé
def fnc(a, b, **args):
  print(a, b, args)

fnc('a','b',arg1 = 'c',arg2 = 'd',arg3 = 'e')# a b {'arg1': 'c', 'arg3': 'e', 'arg2': 'd'}
#fnc('a','b','c','d','e')← Une erreur se produit si aucun mot clé n'est spécifié.

À la fin

Les parties 1 et 2 ont couvert les bases générales de Python. Python possède une multitude de frameworks Web et de bibliothèques d'apprentissage automatique, donc si vous le combinez avec cette base, pouvez-vous faire ce que vous voulez? !! Je souhaite créer une API Web en utilisant Python à partir de maintenant: elevé_hand:

Les références

· Quelle est la différence entre une fonction Python (objet) et une fonction objet ()? http://blog.pyq.jp/entry/2017/09/14/100000

・ À propos de la portée de Python http://note.crohaco.net/2017/python-scope/

・ [Python] Qu'est-ce qu'une fermeture (fermeture de fonction)? https://qiita.com/naomi7325/items/57d141f2e56d644bdf5f

-Passer par valeur et passer par référence en Python https://crimnut.hateblo.jp/entry/2018/09/05/070000

・ AmadaShirou.Programing Keikensya No Tameno Python Saisoku Nyumon (Japanese Edition) Kindle Edition

Recommended Posts

[Pour les débutants] Les bases de Python expliquées par Java Gold Part 2
[Pour les débutants] Les bases de Python expliquées par Java Gold Part 1
Principes de base de Python x SIG (1)
[Linux] Principes de base de la configuration des autorisations par chmod pour les débutants
Principes de base de Python x SIG (3)
■ Kaggle Practice pour les débutants - Introduction de Python - par Google Colaboratory
[À voir pour les débutants] Bases de Linux
Principes de base de Python x SIG (partie 2)
Apprenez les bases de Python ① Débutants élémentaires
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
[Mémo d'apprentissage] Bases de la classe par python
Pandas du débutant, par le débutant, pour le débutant [Python]
Un manuel pour les débutants réalisé par des débutants Python
Les bases de Python ①
Bases de python ①
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 13 Bases du réseau neuronal
Compréhension facile de Python pour les tableaux et (pour les super débutants)
[Hikari-Python] Chapitre 09-01 Classes (Bases des objets)
Principes de base de Pandas pour les débutants ② Présentation des données de saisie
Histoire de base de l'héritage en Python (pour les débutants)
Bases de Python ② pour déclaration
Principes de base du grattage Python
Manuel python pour les débutants
# 4 [python] Bases des fonctions
Bases de python: sortie
OpenCV pour les débutants en Python
Traitement d'image par matrice Basics & Contents-Reinventor of Python image processing-
Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)
Flux d'apprentissage pour les débutants en Python
Exemple de source du modèle Observer réalisé par Java, PHP, Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
python: principes de base de l'utilisation de scikit-learn ①
Construction de l'environnement Python3 (pour les débutants)
Vue d'ensemble de Docker (pour les débutants)
Python #function 2 pour les super débutants
Les bases de Seaborn pour les débutants ④ Pairplot
Grammaire de base Python pour les débutants
Principes de base de Pandas pour les débutants ④ Gestion des éléments de date et d'heure
Pandas 100 coups pour les débutants en Python
[Python] Les principales faiblesses et inconvénients de Google Colaboratory [Pour les débutants]
Python #function 1 pour les super débutants
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Apprentissage automatique Python] Recommandation d'utilisation de Spyder pour les débutants (à partir d'août 2020)
Envelopper (partie de) la bibliothèque AtCoder en Cython pour une utilisation en Python
Un bref résumé de Graphviz en python (expliqué uniquement pour mac)
Bases de Seaborn pour les débutants ① Graphique agrégé du nombre de données (Countplot)
Technique Python pour ceux qui veulent se débarrasser des débutants
Exemple d'implémentation d'un réseau de génération hostile (GAN) par Keras
Création automatique du calendrier mensuel 2021 (recharge pour notebook système) par Python
Paiza Python Primer 5: Principes de base des dictionnaires
Principes de base de Pandas pour les débutants ① Lecture et traitement
Principes de base de Pandas pour les débutants ⑧ Traitement des chiffres
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Extension du dictionnaire python par argument
Python pour les super débutants Super débutants Python # dictionnaire type 1
Résumé de l'apprentissage automatique par les débutants de Python
Bases de Seaborn pour les débutants ② histogramme (distplot)
Premiers pas avec Python Bases de Python