614 shaares
35 results
tagged
python
Personnes intéressées pour rendre les avantages des systèmes décentralisés en informatique accessibles à tout le monde ? :D
Anyone interested to give to everyone the advantages of decentralized systems (especially in the programming world, for instance like git, …)?
Contact-me ^-^
Anyone interested to give to everyone the advantages of decentralized systems (especially in the programming world, for instance like git, …)?
Contact-me ^-^
Plein de chouettes conseils ☺
Notamment, le debug mode pour les REGEX que j'ignorais. Really neat. (J'espère ne pas l'oublier celui là :p)
Dommage que la question soit fermées, certaines réponses auraient, je trouve, méritées des commentaires ou éditions.
EDIT: Woah, y a carrément 7 pages Oo
Je n'avais jamais vu ça, c'est excellent : http://stackoverflow.com/a/4602518/1524913
>>> first,second,*rest = (1,2,3,4,5,6,7,8)
>>> first
1
>>> second
2
>>> rest
[3, 4, 5, 6, 7, 8]
Et
>>> first,*rest,last = (1,2,3,4,5,6,7,8)
>>> first
1
>>> rest
[2, 3, 4, 5, 6, 7]
>>> last
8
Notamment, le debug mode pour les REGEX que j'ignorais. Really neat. (J'espère ne pas l'oublier celui là :p)
Dommage que la question soit fermées, certaines réponses auraient, je trouve, méritées des commentaires ou éditions.
EDIT: Woah, y a carrément 7 pages Oo
Je n'avais jamais vu ça, c'est excellent : http://stackoverflow.com/a/4602518/1524913
>>> first,second,*rest = (1,2,3,4,5,6,7,8)
>>> first
1
>>> second
2
>>> rest
[3, 4, 5, 6, 7, 8]
Et
>>> first,*rest,last = (1,2,3,4,5,6,7,8)
>>> first
1
>>> rest
[2, 3, 4, 5, 6, 7]
>>> last
8
Ahaha x'D Courage ^^
Je me suis tappé la tête contre le mur pendant plusieurs jours avec l'encodage en PHP et même un peu en Python (surtout le 2 qui me casse les noises :o)
Mon site se convertit en UTF-8, yeay !! :DD
Au fait, j'crois que tu n'utilises pas de BDD genre MySQL toi, mais sachez que, en plus de tous les autres trucs qui font chier en PHP vis-à-vis de l'UTF-8 mal géré nativement, MySQL utilise également un encodage à la con de base pour ces communications :/ donc rien à voir avec la façon dont vous stockez vos chaines dans la BDD. Quand vous les récup, il convertit en ISO quelque chose ce con :o (lol) sauf si vous faites la requête SET NAMES utf-8.
Rappel: Utilisez toujours et partout UTF-8. Les problèmes viennent des autres encodages !! Si vous ne prenez pas la bonne habitude de mettre de l'utf-8 partout, vous "risquez" d'en chier lorsque vous voudrez reconvertir en UTF-8 (car c'est un milliard de fois mieux).
Je me suis tappé la tête contre le mur pendant plusieurs jours avec l'encodage en PHP et même un peu en Python (surtout le 2 qui me casse les noises :o)
Mon site se convertit en UTF-8, yeay !! :DD
Au fait, j'crois que tu n'utilises pas de BDD genre MySQL toi, mais sachez que, en plus de tous les autres trucs qui font chier en PHP vis-à-vis de l'UTF-8 mal géré nativement, MySQL utilise également un encodage à la con de base pour ces communications :/ donc rien à voir avec la façon dont vous stockez vos chaines dans la BDD. Quand vous les récup, il convertit en ISO quelque chose ce con :o (lol) sauf si vous faites la requête SET NAMES utf-8.
Rappel: Utilisez toujours et partout UTF-8. Les problèmes viennent des autres encodages !! Si vous ne prenez pas la bonne habitude de mettre de l'utf-8 partout, vous "risquez" d'en chier lorsque vous voudrez reconvertir en UTF-8 (car c'est un milliard de fois mieux).
Voilà ma version, j'en suis plutôt satisfait :
As PHP doesn't really have a proper alternative to str.format in Python, I decided to implement my very simple own which as most of the basic functionnalitites of the Python's one.
function format($msg, $vars)
{
$vars = (array)$vars;
$msg = preg_replace_callback('#\{\}#', function($r){
static $i = 0;
return '{'.($i++).'}';
}, $msg);
return str_replace(
array_map(function($k) {
return '{'.$k.'}';
}, array_keys($vars)),
array_values($vars),
$msg
);
}
# Samples:
# Hello foo and bar
echo format('Hello {} and {}.', array('foo', 'bar'));
# Hello Mom
echo format('Hello {}', 'Mom');
# Hello foo, bar and foo
echo format('Hello {}, {1} and {0}', array('foo', 'bar'));
# I'm not a fool nor a bar
echo format('I\'m not a {foo} nor a {}', array('foo' => 'fool', 'bar'));
1. The order doesn't matter,
2. You can omit the name/number if you want it to simply increment (the first {} matched will be transformed into {0}, etc),
3. You can name your parameters,
4. You can mix the three other points.
As PHP doesn't really have a proper alternative to str.format in Python, I decided to implement my very simple own which as most of the basic functionnalitites of the Python's one.
function format($msg, $vars)
{
$vars = (array)$vars;
$msg = preg_replace_callback('#\{\}#', function($r){
static $i = 0;
return '{'.($i++).'}';
}, $msg);
return str_replace(
array_map(function($k) {
return '{'.$k.'}';
}, array_keys($vars)),
array_values($vars),
$msg
);
}
# Samples:
# Hello foo and bar
echo format('Hello {} and {}.', array('foo', 'bar'));
# Hello Mom
echo format('Hello {}', 'Mom');
# Hello foo, bar and foo
echo format('Hello {}, {1} and {0}', array('foo', 'bar'));
# I'm not a fool nor a bar
echo format('I\'m not a {foo} nor a {}', array('foo' => 'fool', 'bar'));
1. The order doesn't matter,
2. You can omit the name/number if you want it to simply increment (the first {} matched will be transformed into {0}, etc),
3. You can name your parameters,
4. You can mix the three other points.
Ouh, j'ai hâte perso, elle a l'air vraiment chouette à utiliser cette classe.
(via http://stackoverflow.com/a/1695250/1524913 )
(via http://stackoverflow.com/a/1695250/1524913 )
Cool ça :o
Ce que j'avais beaucoup aimé aussi c'est la possibilité de faire du Java depuis Python (en faite il s'agissait de coder en Python puis compiler en bytecode Java. J'aimerais bien faire un mod pour Minecraft ainsi :p)
Ce que j'avais beaucoup aimé aussi c'est la possibilité de faire du Java depuis Python (en faite il s'agissait de coder en Python puis compiler en bytecode Java. J'aimerais bien faire un mod pour Minecraft ainsi :p)
There might be some easier ways to do that but that's the easiest I found so far…
As usual, not surprisingly, Python is better (IMO).
Python:
try:
foo()
except ValueError:
bar()
PHP:
It's actually pretty easy when you implement your own errors (throw new Exception then catch it with a try…catch) but how to catch errors this easily and being able to handle them that easily? Well, turn them into exceptions!
set_error_handler(function($errno, $errstr){throw new Exception($errno);});
try
{
file_get_contents('lol');
}
catch(Exception $e)
{
echo 'Error n°',$e->getMessage();
}
restore_error_handler();
I still prefer Python… I think I'll always do. </PHPTROLL> </PYTHONFAN>
As usual, not surprisingly, Python is better (IMO).
Python:
try:
foo()
except ValueError:
bar()
PHP:
It's actually pretty easy when you implement your own errors (throw new Exception then catch it with a try…catch) but how to catch errors this easily and being able to handle them that easily? Well, turn them into exceptions!
set_error_handler(function($errno, $errstr){throw new Exception($errno);});
try
{
file_get_contents('lol');
}
catch(Exception $e)
{
echo 'Error n°',$e->getMessage();
}
restore_error_handler();
I still prefer Python… I think I'll always do. </PHPTROLL> </PYTHONFAN>
Tiens, je connaissais pas, c'est marrant cette notation :)
print('\N{left-pointing double angle quotation mark}') # Output: «
Et pour avoir le nom d'un caractère :
import unicodedata
print(unicodedata.name('«')) # Output: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
print('\N{left-pointing double angle quotation mark}') # Output: «
Et pour avoir le nom d'un caractère :
import unicodedata
print(unicodedata.name('«')) # Output: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
Why?! Seriously guys…
So this is an piece of my code :
messages = {'chooseYourLang': {'fr': 'Saisis {} pour le français.', 'en': 'Type {} for the English.'}}
langs = ('fr', 'en')
# This…
for n, (code, msg) in enumerate(messages['chooseYourLang'].items(), 1):
print('{}. [{}] {}'.format(n, code.upper(), msg.format(n)))
# Always become that!!
print('\n'.join('{}. [{}] {}'.format(n, lang.upper(), messages['chooseYourLang'][lang].format(n)) for n, lang in enumerate(langs, 1)))
# I just wanted to have it always in this order (fr then en) without needing to use collections.OrderedDict
Fine for me though (more or less)…
So I guess my answer to my own question could be "Just cause I can!" but I don't know… It -always- just happens suddenly, without a warning. Weird.
Do you understand me? Do you share this with me? Am I alone on this planet? Why are we? Who am I? Maybe I should take a break :D
So this is an piece of my code :
messages = {'chooseYourLang': {'fr': 'Saisis {} pour le français.', 'en': 'Type {} for the English.'}}
langs = ('fr', 'en')
# This…
for n, (code, msg) in enumerate(messages['chooseYourLang'].items(), 1):
print('{}. [{}] {}'.format(n, code.upper(), msg.format(n)))
# Always become that!!
print('\n'.join('{}. [{}] {}'.format(n, lang.upper(), messages['chooseYourLang'][lang].format(n)) for n, lang in enumerate(langs, 1)))
# I just wanted to have it always in this order (fr then en) without needing to use collections.OrderedDict
Fine for me though (more or less)…
So I guess my answer to my own question could be "Just cause I can!" but I don't know… It -always- just happens suddenly, without a warning. Weird.
Do you understand me? Do you share this with me? Am I alone on this planet? Why are we? Who am I? Maybe I should take a break :D
Bon, sûrement peu d'entres vous en auront besoin un jour mais sait-on jamais :) je partage !
Personnellement, ça m'arrive encore assez bien souvent de m'endormir sur une musique de relaxation pour m'aider mais une fois n'est pas coutume, la musique que je voulais écouter était un flux continu (radio en ligne) donc VLC ne se serait jamais arrêté et mon PC ne ce serait jamais mis en veille, il aurait continué à chanter toute la nuit en utilisant ma bande passante pour rien qui plus est :p
La version actuelle est pour Windows seulement mais je sais de fait que faire la version Linux (ou carrément directement multiplateforme) serait un jeu d'enfant.
Personnellement, ça m'arrive encore assez bien souvent de m'endormir sur une musique de relaxation pour m'aider mais une fois n'est pas coutume, la musique que je voulais écouter était un flux continu (radio en ligne) donc VLC ne se serait jamais arrêté et mon PC ne ce serait jamais mis en veille, il aurait continué à chanter toute la nuit en utilisant ma bande passante pour rien qui plus est :p
La version actuelle est pour Windows seulement mais je sais de fait que faire la version Linux (ou carrément directement multiplateforme) serait un jeu d'enfant.
-.- En Python, c'est super simple :/
En PHP faudrait que chaque fonction soit référencée dans un array du style array('functionName' => 'functionName'); mais j'ignore quel serait l'impact sur les performances :/
Et quand bien même, ça a encore des limitations.
En Python:
L'application:
def a():
pass
# And you can call it normally
Le patch:
def a():
# Do some more stuff
a() # Then call "a" normally
(C'est le principe d'un décorateur quoi, mais je pourrais aussi simplement remplacer la fonction sans appeler l'ancienne fonction)
En PHP:
function lol()
{
}
$functions = array('lol' => 'lol');
# And you call it using $functions['lol']();
Le patch:
$functions['lol'] = function() use($functions)
{
static $lol;
if($lol === null) $lol = $functions['lol'];
# Do some more stuff …
$lol();
};
# To call it, it's the same than before $functions['lol']();
EDIT: Il existe bien des techniques pour créer des "Décorateurs" en PHP (aka surcharger une fonction) (à base de POO) mais ... meh. J'accroche pas perso, j'trouve ça lourd.
En PHP faudrait que chaque fonction soit référencée dans un array du style array('functionName' => 'functionName'); mais j'ignore quel serait l'impact sur les performances :/
Et quand bien même, ça a encore des limitations.
En Python:
L'application:
def a():
pass
# And you can call it normally
Le patch:
def a():
# Do some more stuff
a() # Then call "a" normally
(C'est le principe d'un décorateur quoi, mais je pourrais aussi simplement remplacer la fonction sans appeler l'ancienne fonction)
En PHP:
function lol()
{
}
$functions = array('lol' => 'lol');
# And you call it using $functions['lol']();
Le patch:
$functions['lol'] = function() use($functions)
{
static $lol;
if($lol === null) $lol = $functions['lol'];
# Do some more stuff …
$lol();
};
# To call it, it's the same than before $functions['lol']();
EDIT: Il existe bien des techniques pour créer des "Décorateurs" en PHP (aka surcharger une fonction) (à base de POO) mais ... meh. J'accroche pas perso, j'trouve ça lourd.
Une liste de quelques exercices (à difficulté croissante) pour s'entrainer à Python (+ liste de liens externes connu ou non, tels que le projet Euler)
Site qui propose de dire quelle fonction utiliser en Python à partir d'une fonction PHP.
Le concept est juste sensationnel :)
Le concept est juste sensationnel :)
Magnifique wiki très complet et pratique.
Néophyte en programmation ou pas, langage de haut niveau ou pas, tout n'est pas toujours intuitif et on apprend parfois tous les jours :) Alors je partage !
(Rappel: haut niveau = proche de l'être humain, ex: Python
bas niveau = proche de la machine, ex: C++)
Lien direct vers la version anglaise: http://sebsauvage.net/python/snyppets/#binary_repr
J'en parle aussi dans mon article sur les ptits trucs python: https://www.olissea.com/doc/?artId=6 . J'ai même rajouter une méthode pour contourner le problème car la seconde proposée par sebsauvage ne fonctionne pas toujours en Python 3 :o
(Rappel: haut niveau = proche de l'être humain, ex: Python
bas niveau = proche de la machine, ex: C++)
Lien direct vers la version anglaise: http://sebsauvage.net/python/snyppets/#binary_repr
J'en parle aussi dans mon article sur les ptits trucs python: https://www.olissea.com/doc/?artId=6 . J'ai même rajouter une méthode pour contourner le problème car la seconde proposée par sebsauvage ne fonctionne pas toujours en Python 3 :o