Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 21/09/2017, à 05:08

Orbital_Verbose

[Logiciel/Excercices] Apprentissage vietnamien

Bonjour à toutes et à tous,

Je ne sais pas trop où poser le post donc je l'ai mis ici en attendant qu'un modo me dise s'il est à la bonne place.

Ce que je fais est pour le moment embryonnaire et totalement orienté vers mes besoin (y'a 30 lignes de codes pour le moment)

Je programme sous Python 3, et je suis en train d'apprendre le Vietnamien. Mes petits programmes génèrent une question sur un sujet donné (vocabulaire essentiellement) et donnent la réponse une fois que l'on appuie sur entrée le tout dans la console -> Rien de compliqué.

L'ennui vient d'ailleurs : la langue Vietnamienne dispose d'un grand nombre d'accents (parfois inexistant sur le clavier Français) et j'aimerais pouvoir les intégrer dans mes programmes sans changer du tout au tout la configuration de mon clavier, j'ai bien vu qu'il fallait spécifier le type de sortie sous python, mais je ne trouve pas la table correspondante pour les codes de caractères.

Est-ce que quelqu'un a une ou des idées ?


Modération

Bonjour, je penserais plutôt à la section « Développement et programmation » donc j'y déplace cette question.

Dernière modification par cqfd93 (Le 21/09/2017, à 08:11)

Hors ligne

#2 Le 21/09/2017, à 08:25

grim7reaper

Re : [Logiciel/Excercices] Apprentissage vietnamien

Salut,

Orbital_Verbose a écrit :

Ce que je fais est pour le moment embryonnaire et totalement orienté vers mes besoin (y'a 30 lignes de codes pour le moment)

Je programme sous Python 3, et je suis en train d'apprendre le Vietnamien. Mes petits programmes génèrent une question sur un sujet donné (vocabulaire essentiellement) et donnent la réponse une fois que l'on appuie sur entrée le tout dans la console -> Rien de compliqué.

Anki ne répondait pas à tes besoins?
Après, si tu fait ça pour le plaisir de te coder un truc toi-même, continue smile

Orbital_Verbose a écrit :

j'ai bien vu qu'il fallait spécifier le type de sortie sous python, mais je ne trouve pas la table correspondante pour les codes de caractères.

Qu’est ce que tu entends par «spécifier le type de sortie»?
Si tu parles de l’encodage des caractères, je te conseille de partir sur l’UTF-8 (qui est un des encodage possible de l’Unicode, qui est conçu pour supporter tout les caractères).

Hors ligne

#3 Le 21/09/2017, à 09:41

Orbital_Verbose

Re : [Logiciel/Excercices] Apprentissage vietnamien

Bonjour Grim7reaper,

Merci de me filer un coup de main.

grim7reaper a écrit :

Salut,

Orbital_Verbose a écrit :

Ce que je fais est pour le moment embryonnaire et totalement orienté vers mes besoin (y'a 30 lignes de codes pour le moment)

Je programme sous Python 3, et je suis en train d'apprendre le Vietnamien. Mes petits programmes génèrent une question sur un sujet donné (vocabulaire essentiellement) et donnent la réponse une fois que l'on appuie sur entrée le tout dans la console -> Rien de compliqué.

Anki ne répondait pas à tes besoins?
Après, si tu fait ça pour le plaisir de te coder un truc toi-même, continue smile

Un peu des deux mon capitaine (Je perfectionne mon code (balbutiant) et j'apprends la langue). Anki a l'air très pratique pour des cas de mots de vocabulaires ou des phrases. Mais les petits programmes que j'ai conçus génère un nombre aléatoire, l'affiche, puis donne la réponse en Vietnamien, ou alors fait l'inverse (affiche en Vietnamien puis donne la réponse en chiffre arabes). Même chose pour les heures.

Je pensais utiliser tkinter pour mettre une jolie boite là dessus plus tard et en faire profiter la communauté même si c'est une utilisation très spécifique

(Au fait, je ne connaissais pas Anki -> J'installe tout de suite !)

grim7reaper a écrit :
Orbital_Verbose a écrit :

j'ai bien vu qu'il fallait spécifier le type de sortie sous python, mais je ne trouve pas la table correspondante pour les codes de caractères.

Qu’est ce que tu entends par «spécifier le type de sortie»?

quelque chose comme ça :Caractères-spéciaux-python

grim7reaper a écrit :

Si tu parles de l’encodage des caractères, je te conseille de partir sur l’UTF-8 (qui est un des encodage possible de l’Unicode, qui est conçu pour supporter tout les caractères).

Le problème de l'UTF-8, c'est qu'il est codé sur 8 bits, Unicode est sur 16 bits. Et donc, même s'il est tout à fait correct pour un langage Francais, il n'est pas suffisant pour l'alphabet vietnamien (ou alors j'ai pas tout compris)

Hors ligne

#4 Le 21/09/2017, à 10:24

grim7reaper

Re : [Logiciel/Excercices] Apprentissage vietnamien

Orbital_Verbose a écrit :
grim7reaper a écrit :
Orbital_Verbose a écrit :

j'ai bien vu qu'il fallait spécifier le type de sortie sous python, mais je ne trouve pas la table correspondante pour les codes de caractères.

Qu’est ce que tu entends par «spécifier le type de sortie»?

quelque chose comme ça :Caractères-spéciaux-python

Petite question qui a son importance dans ton cas: tu utilises Python 2 ou Python 3?
Une des grosses différences entre les deux se situe à ce niveau.

Personnellement, je recommande Python 3: le comportement est plus logique et il y a moins d’erreurs «surprenantes».
Si tu comprends l’anglais, tu peux lire cet article.

Orbital_Verbose a écrit :
grim7reaper a écrit :

Si tu parles de l’encodage des caractères, je te conseille de partir sur l’UTF-8 (qui est un des encodage possible de l’Unicode, qui est conçu pour supporter tout les caractères).

Le problème de l'UTF-8, c'est qu'il est codé sur 8 bits, Unicode est sur 16 bits. Et donc, même s'il est tout à fait correct pour un langage Francais, il n'est pas suffisant pour l'alphabet vietnamien (ou alors j'ai pas tout compris)

Non, ça ne fonctionne pas comme ça.
Voyons voir si je peux te faire une explication simplifiée smile (les experts me pardonneront les approximations que je vais faire dans ce qui suit wink).

Tout d’abord, il y a le standard Unicode qui assigne un entier (code point) à chaque caractère existant.
Exemple : le caractère a est associé au code 97, le caractère 冷 est associé au code 20919, etc.
En Python 3 :

>>> ord('a')
97
>>> ord('冷')
20919

Maintenant, il existe plusieurs façons pour encoder une suite de code point en texte : UTF-8, UTF-16 et UTF-32.
Là où il y a une mauvaise compréhension c’est que UTF-8 ne veut pas dire que seul 8 bits sont utilisés: ça signifie que l’unité de base est 8-bit.
L’encodage d’un caractère va ensuite utiliser 1, 2, 3 ou 4 octets, selon le code du caractère.
Exemple en Python :

>>> ord('a')
97
>>> 'a'.encode('utf-8')
b'a'
>>> ord('é')
233
>>> 'é'.encode('utf-8')
b'\xc3\xa9'
>>> ord('冷')
20919
>>> '冷'.encode('utf-8')
b'\xe5\x86\xb7'

Du coup, aucun souci niveau UTF-8 pour stocker de l’anglais, du français, du chinois, du vietnamien, …
De manière générale, faut oublier l’ASCII, le Latin-1, Big5, … et utiliser l’Unicode (via UTF-8 en général) si on veut gérer n’importe quelles langues.

Hors ligne