Je suis un programmeur Java qui a commencé à étudier Python avec élan car je suis à court de messages en Java. Cliquez ici pour consulter l'article précédent sur les déclarations if, for, while.
Je l'ai posté la dernière fois avec une idée, mais le plus grand nombre de j'aime jamais! J'ai reçu. (Moon et Suppon par rapport à la tendance ...) J'ai réalisé que Python était toujours à la mode.
Comme c'est gentil! La tension monte en recevant Le début était comme une poubelle, mais étudions sérieusement Python! Alors écrivez un livre de référence Python! Je pense ces jours-ci.
Mais, "Est-ce pour les débutants, est-ce bon pour l'analyse de données, ou est-ce bon pour le développement Web, l'analyse d'image est difficile à jeter ..." Je suis inquiet, donc pour l'instant, je vais étudier les bases des bases tout en faisant référence à divers sites d'introduction.
Si vous avez bien étudié PHP, vous n'aurez pas de mal, mais dans le cerveau Java à l'ancienne, il n'y a pas de déclaration de type. «Je ne connais pas le type en un coup d'œil… Ugh…» Alors cette fois, j'ai étudié les moisissures. (Pourquoi
En Python, il semble qu'il y ait environ 6 types (types?).
Il y a deux choses que je ne connais pas. Que sont les tapples et les dictionnaires? Je n'ai même pas entendu parler de taples ... Le dictionnaire est un dictionnaire lorsqu'il est traduit littéralement, mais qu'est-ce qu'un type de dictionnaire ...
Pour le moment, j'étudierai en comparant avec Java dans l'ordre du haut.
Il existe trois types numériques en Python:
Je les ai tous vus en Java, donc je suis soulagé.
int Avec Java
IntDemo.java
int num1 = 1234; //Nombre décimal
int num2 = 0b10011010010; //Nombre binaire
int num3 = 02322; //8 base
int num4 = 0x4D2; //Hexadécimal
En Python
IntDemo.py
num1 = 1234 #Nombre décimal
num2 = 0b10011010010 #Nombre binaire
num3 = 0o2322 #8 base
num4 = 0x4D2 #Hexadécimal
Si vous essayez de générer à la fois Java et Python dans l'ordre du haut,
1234
1234
1234
1234
Il n'y avait qu'une petite différence dans le nombre octadécimal étant "0" ou "0o". Ça va bien jusqu'ici.
long Le suivant est long. Avec Java
LongDemo.java
long l = 9223372036854775807L;
Écrivez Python de la même manière.
LongDemo.py
l = 9223372036854775807L
Hmm? Y a-t-il une erreur?
SyntaxError: invalid syntax
Pourquoi! N'ajoutez pas simplement L à la fin! Si vous lisez attentivement le site de référence,
Dans Python 3, les entiers (ints) et les entiers longs (longs) ont été fusionnés et traités comme tous les entiers (ints), et L et l ont également été dépréciés.
\(^o^)/ Celui ci-dessus était de savoir comment écrire Python 2. Il semble que Python 3 n'a pas un long. Lisez attentivement le site de référence! !! !! !! (Pardon
Et ce qui est encore important ...
Pour les entiers longs, il n'y a pas de limite au nombre de chiffres tant que la mémoire le permet, et il n'y a pas d'erreur de calcul dans les opérations entre entiers longs.
Donc, il semble que n'importe quel nombre de chiffres est OK tant que la mémoire le permet.
LongDemo2.py
num = 1234567890123456789012345678901234567890123456789012345678901234567890
print(num)
A été sortie correctement.
Vous n'avez pas à être effrayé par les chiffres ... Python est génial ...
float
En Java, double a plus de chiffres valides, donc nous n'utilisons pas float. Cela ressemblera à celui ci-dessous.
FloatDemo.java
float f = 1.2345f;
Avec Python,
FloatDemo.py
f = 1.2345
Essayez de sortir.
1.2345
C'était normal. Le nombre maximum de chiffres dépend du système. Il ne semble y avoir aucun problème avec la reconnaissance que Java double = Python float.
Vient ensuite une chaîne de caractères.
StrDemo.java
String str1 = "Chaîne";
//Comme ci-dessus
String str2 = new String("Chaîne");
Dans le cas de Python également, les détails du mouvement n'ont pas été étudiés, mais il est écrit comme suit.
StrDemo.py
str1 = "Chaîne"
str2 = 'Chaîne'
Il semble que le caractère de clôture peut être une citation simple ou une citation double. En regardant Qiita et GitHub, j'ai eu l'impression que beaucoup de gens utilisent des citations simples. (Le cerveau Java veut juste utiliser des guillemets doubles ...)
En passant, vous pouvez concaténer des chaînes en utilisant le signe plus.
StrDemo2.py
str3 = "Chaîne" + "Mise en relation!"
Comme vous pouvez l'imaginer d'après le nom, est-ce comme un tableau dans d'autres langages de programmation? À partir de l'attente, essayez d'abord d'écrire un tableau en Java.
ListDemo.java
int foo[] = [1, 2, 3, 4, 5];
Si c'est Python
ListDemo.py
foo = [1, 2, 3, 4, 5]
Bien sûr, il existe des fonctions telles que l'ajout, l'insertion, la modification et la suppression d'éléments. Je vais omettre le mouvement, mais j'ai essayé de le résumer.
une fonction | Comment utiliser |
---|---|
ajouter à | foo.append(6) #Ajouter 6 à la fin |
Insérer | foo.insert(5, 6) #Insérez 6 après le 5 dans la liste |
Changement | foo[5] = 6 #Remplacez le 5e de la liste par 6 |
Il y avait quatre types de suppressions pour autant que je sache.
Supprimer la fonction | Comment utiliser |
---|---|
Supprimer tous les éléments | foo.clear() |
Supprimer l'élément à la position spécifiée | foo.pop(1) |
Supprimer le même élément que la valeur spécifiée | foo.remove("A") |
Supprimer en spécifiant la position et la plage | del foo[:3] #Supprimer les 3 éléments précédents |
~~ J'ai sauté l'enquête parce que c'était ennuyeux, mais ~~ del semble avoir la syntaxe ** "instruction del" ** au lieu de la méthode. Rappelez-vous simplement la "syntaxe de suppression des variables et des objets" et continuez.
Traduit littéralement, c'est un dictionnaire, mais qu'est-ce qu'un type de dictionnaire ... Sur la page correspondante du site de référence tohoho, il est écrit comme suit.
{...} contient une liste de paires clé / valeur appelée dict.
Est-ce quelque chose comme Map en Java? ?? Pour l'exemple de code Python, j'ai emprunté le site de référence tohoho tel quel.
DictDemo.py
d = {'Yamada': 30, 'Suzuki': 40, 'Tanaka': 80}
L'ordre est inversé, mais si vous changez cela en Java
MapDemo.java
Map<String, Integer> d = new HashMap<String, Integer>();
d.put("Yamada", 30);
d.put("Suzuki", 40);
d.put("Tanaka", 80);
Java ne peut en aucun cas définir une valeur sans utiliser la méthode put (). Python est beaucoup plus simple à écrire que Java. ~~ Java vraiment incompétent ~~ N'oubliez pas le type de dictionnaire Python = Java Map. En outre, il semble qu'il y ait plus de gens qui l'appellent le type de dictionnaire plutôt que le dictionnaire.
Je n'en ai même plus entendu parler. Tout d'abord, recherchez Google avec "Taple"! Il y avait une page "Tupple" dans Wikipedia.
Tuple ou tuple (anglais: tuple) est un concept général qui fait référence collectivement à un ensemble composé de plusieurs composants. Habituellement utilisé en mathématiques, en informatique, etc. pour représenter une séquence ordonnée d'objets. Individuellement, un ensemble de n morceaux est écrit comme "n-uplet" en anglais, et lorsqu'il est traduit en japonais, il est généralement écrit comme "n ensembles". Le concept de tapple lui-même est parfois appelé un ensemble. En plus de signifier un taple mathématique, n-tuple est également utilisé pour exprimer plusieurs mots comme une extension de double, triple, etc.
_〆 (-∧- ;) Hmm ... Wakaranai ... Si vous êtes un idiot qui ne sait même pas faire d'arithmétique, vous avez l'impression qu'on vous dit: "N'étudiez pas Python!" (Je vais étudier
Je suis désolé. C'est le sujet principal.
Cette fois, j'ai extrait de Python Web.
Le type tapple est l'un des types de séquence ainsi que la chaîne de caractères et les types de liste. Il est composé de plusieurs éléments et les éléments sont disposés dans l'ordre. En particulier, il y a beaucoup de choses en commun avec le type de liste, mais avec tapple, vous ne pouvez pas changer les éléments d'un objet une fois créé. De plus, le taple n'a pas de méthode
Exprimé en Java, est-ce une version tableau (liste) des variables finales? ??
Quand je l'écris, ça ressemble à celui ci-dessous.
TapleDemo.py
tuple = (2005, 2006, 2007, 2008)
Apparemment, il ne peut pas être modifié, il semble donc fonctionner un peu plus vite que la liste. Utilisez tapple si vous ne prévoyez pas de modifier la valeur. À part ça, c'est comme utiliser une liste.
Au fait, si vous voulez définir un taple qui n'a qu'une seule valeur,
TapleDemo2.py
tuple = (2005, )
Il semble qu'il soit nécessaire d'écrire une virgule à la fin.
J'ai écrit que je faisais des recherches sur Python et j'ai pensé "Hey ~ _〆 (・ ∀ ・ *)". J'avais des problèmes avec le titre, donc pour le moment, "bonus".
Python n'a pas le concept de constantes. Par conséquent, il semble habituel d'utiliser un nom de variable composé de lettres majuscules et de traits de soulignement comme constante. Je l'ai écrit en PEP8. (Traduction Google vraiment excellente
value = 1 #Variable variable
VALUE = 1 #Traiter comme une constante
VALUE_MAX = 10 #Traiter comme une constante
Pour la série Python 3, la chaîne de caractères est unicode. Au fait, il semble qu'il existe deux types de 2 séries, unicode et str.
Comme le dit le titre. 123 n'est pas bon, hensu123 est OK.
value = 1, 2, 3
print(value)
print(1, 2, 3)
print((1, 2, 3))
Le résultat de l'exécution est
(1, 2, 3)
1 2 3
(1, 2, 3)
C'est devenu un taple. Le cerveau Java est trop rafraîchissant et inconfortable, mais c'est bien parce que vous pouvez réduire le nombre de caractères d'entrée.
Le taple étant un objet immuable, il peut également être utilisé comme clé de dictionnaire. De plus, comme il n'est pas nécessaire d'avoir des parenthèses, il semble que cela puisse être utilisé comme spécifier des coordonnées XY.
>>> a = {}
>>> a[(1, 2)] = 'abc'
>>> a
{(1, 2): 'abc'}
>>> a[1, 2]
'abc'
Ce domaine est-il utile pour les statistiques telles que l'apprentissage automatique? Je ne sais pas si j'ai oublié les mathématiques ...
En Python, toutes les valeurs sont des objets. Cela signifie qu'il existe des types primitifs et des types de référence en Java, mais Python semble être comme des types de référence en Java. Ainsi, Python a une méthode même s'il s'agit d'une valeur numérique. Incroyable (petite sensation moyenne) Ce qui suit est un extrait des commentaires.
>>> dir(-5)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
>>> (-5).__abs__()
5
Comme vous pouvez le voir, dir semble obtenir une liste de méthodes. abs semble être une méthode pour obtenir la valeur absolue.
Comment utiliser les listes, les dictionnaires (type dictionnaire) et les taples semble déroutant. J'ai pensé, alors j'en ai fait une table.
Supprimer la fonction | Comment utiliser |
---|---|
liste | []Entourez de |
dictionnaire(Sorte de dictionnaire) | {}Entourez de |
Taple | ()Entouré de * Même si vous ne l'entourez pas, c'est OK s'il y a une virgule |
J'ai fait une erreur, mais il semble que la syntaxe et les bibliothèques disponibles soient assez différentes entre Python 2 et 3. Si vous commencez à étudier maintenant, assurez-vous de vérifier les références et les versions du site de référence.
Recommended Posts