IQ Bot Custom Logic: 5 choses que vous pourriez être surpris quand quelqu'un qui parle une autre langue touche pour la première fois Python

Bonjour.

La logique personnalisée de IQ Bot est Python après tout, donc quiconque peut écrire Python devrait pouvoir le gérer sans difficulté.

Et Python serait plus facile à saisir pour les débutants que les langages de programmation tels que Java et C.

Pour ceux qui ont utilisé d'autres langages de programmation tels que Java et C Je pense que vous pouvez maîtriser Python plus rapidement que quelqu'un qui part de zéro,

Parce que je parlais dans une autre langue, il se peut que certains points me surprennent: "Quoi? Y a-t-il une telle chose?

Dans cet article, je résumerai les points surprises Python propres à ceux qui ont traité d'autres langages.

Pas besoin de compiler

Python est un langage dynamique, vous n'avez donc pas besoin de le compiler pour l'exécuter.

Vous n'avez donc pas à vous soucier de la compilation de la logique personnalisée d'IQ Bot. Si vous appuyez sur "Test Run" immédiatement après l'écriture, cela fonctionnera sur place.

Pour une description des langages dynamiques, voir [Wikipedia](https://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E3%83%97%E3%83%AD%E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E8% A8% 80% E8% AA% 9E) Veuillez vous y référer. ..

Vous pouvez utiliser des variables sans déclarer le type

Python est typé dynamiquement, vous n'avez donc pas à déclarer le type de la variable.

Dans le cas de Java, si vous écrivez le code suivant, Je suis en colère contre la deuxième ligne et j'obtiens une erreur de compilation.

Pour java


int num = 3;       //Déclarez ici le type de la variable num!
num = "Yaho";   //Je me fâche quand je fais ça

Type int, c'est-à-dire une boîte (= variable num) qui dit "seuls les entiers peuvent être stockés" C'est parce que j'ai essayé d'insérer une chaîne de caractères ludique (type String) telle que `` Yaho ''

Oh, je suis désolé, le problème est que le type est différent, donc même si le contenu de la chaîne de caractères est sérieux, je me fâche.

Par contre, dans le cas de Python, le code suivant fonctionne sans aucun problème.

Pour Python


num = 3           #En faisant cela, la variable num devient de type int sans autorisation.
num = "Yaho"   #Ici, la variable num se transforme en un type String sans permission ...! !!

Cette fonctionnalité est très appréciée par une personne avec une personnalité bâclée comme moi, Pour ceux qui sont habitués au codage bien comporté dans d'autres langages de programmation

«Le type de la variable change au milieu» peut être assez surprenant.

Même en Python, le concept de type lui-même n'est pas parti, Il a juste une fonction qui effectue dynamiquement la frappe du côté du langage de programmation.

Une liste des types Python, comment vérifier les types, comment convertir (conversion de type), etc. Il a été organisé dans une page très facile à comprendre sur la page ici.

Le cast de type est parfois utilisé lors de l'application d'une logique personnalisée à IQ Bot.

Le retrait a une signification pratique

Dans d'autres langages, aligner les retraits dans les instructions et les fonctions if n'est qu'une question d'alignement. "Bonnes pratiques pour améliorer la lisibilité pour les humains"

La spécification générale est que l'indentation n'a aucune signification dans l'exécution du programme.

En d'autres termes, comme indiqué ci-dessous, la plupart des langages disent que le programme fonctionne correctement même si le retrait est sale.

Dans le cas de java ①: Il vaut mieux écrire comme ça ...


class xxx
{
  public static void main (String[] args) throws java.lang.Exception
  {
    int num = 3;
    if (num % 2 == 0) 
    {
      System.out.println(num + "Est même");
    }
    else {
      System.out.println(num + "Est impair");
    }
  }
}

Dans le cas de java (2): cela fonctionne toujours.


class xxx
{
public static void main (String[] args) throws java.lang.Exception
{
int num = 3;
if (num % 2 == 0) 
{
System.out.println(num + "Est même");
}
else {
System.out.println(num + "Est impair");
}
}
}

Python, quant à lui, est basé sur l'idée de «s'assurer que tous les programmeurs écrivent du code entièrement lisible». Si vous n'alignez pas les retraits, le code ne fonctionnera pas en premier lieu.

Dans le cas de Python ①: cela fonctionne si vous l'écrivez comme ça ...


num = 3
if num % 2 == 0:
	print(str(num) + "Est même")
else:
	print(str(num) + "Est impair")

Dans le cas de Python ②: cela ne fonctionne pas avec ça


num = 3
if num % 2 == 0:
print(str(num) + "Est même")
else:
print(str(num) + "Est impair")

Si les retraits ne sont pas alignés correctement, vous obtiendrez essentiellement une erreur "Erreur d'indentation".

Cet article car le niveau de retrait est incorrect Veuillez noter qu'il peut y avoir des cas où le résultat est différent de ce que vous attendiez!

Facile à boucler

Puisqu'il y avait un article qui résumait le traitement en boucle de Python et Java d'une manière facile à comprendre, Je vais vous présenter cela.

Comparaison de la grammaire de base entre Java et Python

Il existe différentes grammaires autres que le traitement en boucle, veuillez donc vous y référer.

Peut gérer des chaînes comme un tableau

Pour ceux qui utilisaient à l'origine des langages tels que Java Vous serez peut-être assez surpris de voir le code ci-dessous dans le lien ci-dessus.

Une boucle assez courante en Python


for char in 'Hello':
    print(char)

Lorsque je fais le processus ci-dessus, le résultat suivant est renvoyé ...

Résultat du traitement de la boucle ci-dessus


>>>H
>>>e
>>>l
>>>l
>>>o

La raison pour laquelle vous pouvez faire cela est qu'en Python, vous pouvez utiliser des chaînes, C'est parce qu'il y a une idée de ** traiter chaque caractère comme une séquence avec des éléments comme éléments **.

Vous n'êtes donc pas obligé de faire quelque chose comme Java en le divisant d'abord en tableaux, puis en faisant une boucle. Vous pouvez boucler ou découper la chaîne telle quelle (processus d'obtention du nombre à partir du numéro de la chaîne).

Les tranches sont utilisées de manière inattendue (?) Même dans la logique personnalisée d'IQ Bot, donc Je vais relier l'article qui était facile à comprendre.

[Python] Résumé des opérations de découpage

Résumé

Comment était-ce?

Les points de Python qui peuvent surprendre ceux qui ont parlé dans d'autres langues sont les suivants.

--Python est un langage dynamique donc vous n'avez pas besoin de le compiler --Python peut être typé dynamiquement afin que vous n'ayez pas à déclarer le type de la variable (il y a le concept de type afin que vous puissiez le convertir) ――Si vous n'alignez pas les retraits, vous ne serez pas en colère et ne pourrez pas le faire.

Je l'ajouterai si je trouve autre chose.

Eh bien!

Recommended Posts

IQ Bot Custom Logic: 5 choses que vous pourriez être surpris quand quelqu'un qui parle une autre langue touche pour la première fois Python
IQ Bot Custom Logic (Python): rationalisez les exclusions dans les boucles
IQ Bot Custom Logic (Python): rationaliser le traitement de remplacement en boucle
IQ Bot Custom Logic (Python): processus de remplacement efficace en boucle