#501 Le 22/04/2010, à 15:08
- Кຼزດ
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
En Python comment forcer l'arrêt d'un thread ?
L'auteur du tutoriel nous conseil d'utiliser la méthode__Thread__stop()
mais dans une note en bas de page, demande aux puristes de bien vouloir le pardonner.
Y'a un moyen de faire ça plus proprement ?
exit() ou exit_thread() non ?
dou
Hors ligne
#502 Le 22/04/2010, à 15:58
- compte supprimé
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Les méthodes n'existent pas.
Mais finalement, je garde ma technique, l'autre moyen d'arrêter un thread ne fonctionne pas dans mon cas.
#503 Le 22/04/2010, à 16:53
- Кຼزດ
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
exit(...)
exit()
(PyThread_exit_thread() is an obsolete synonym)
This is synonymous to ``raise SystemExit''. It will cause the current
thread to exit silently unless the exception is caught.
exit_thread(...)
exit()
(PyThread_exit_thread() is an obsolete synonym)
This is synonymous to ``raise SystemExit''. It will cause the current
thread to exit silently unless the exception is caught.
Tu as bien fait import thread avant le thread.exit_thread() ? (je suppose que tu utilises threading.Thread
dou
Hors ligne
#504 Le 22/04/2010, à 17:04
- compte supprimé
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Oui, j'utilise bien "threading.Thread".
Je savais pas que tes méthodes fessaient partie d'un autre module. Merci !
#505 Le 22/04/2010, à 17:24
- Кຼزດ
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Cela dit, je ne sais pas du tout si c'est plus propre que l'autre méthode, hein
dou
Hors ligne
#506 Le 22/04/2010, à 19:36
- tshirtman
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
je pense que tu n'es pas sensé stoper un thread, soit tu lui envoit un signal lui signifiant de se terminer et tu le join, soit tu attends qu'il se termine tout seul (pareil, avec join). Si tu as besoin de killer ton thread, c'est probablement que tu fais quelque chose de mal…
Hors ligne
#507 Le 22/04/2010, à 20:44
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Par concis je parle du nombre d'instructions, pas du nombre de lettre (ce qui n'a aucun sens).
Boah, si on part comme ça…
Mais sur ce coup là le C n’est pas plus concis.
#include <stdio.h>
int main(void)
{
unsigned char c;
for(c=0;c<128;c++)
putc(c,stdout);
return 0;
}
Après bien sûr c’est un exemple à la con, mais c’était juste histoire de dire.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#508 Le 22/04/2010, à 20:51
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Je n'ai pas dis que le C était plus concis, ça n'a jamais été un des ces atouts, au contraire (mais il à le mérite d'être plus lisible que le bf ou ton langage).
Hors ligne
#509 Le 22/04/2010, à 20:54
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Je suis d’accord.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#510 Le 22/04/2010, à 21:02
- grim7reaper
Hors ligne
#511 Le 22/04/2010, à 21:10
- tshirtman
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
from string import lowercase
print "".join(lowercase)
Hors ligne
#512 Le 22/04/2010, à 21:18
- grim7reaper
Hors ligne
#513 Le 22/04/2010, à 21:24
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
@tshirtman : et pour les non-pythoneux ?
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#514 Le 22/04/2010, à 21:25
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
C'est un contre-exemple sur la soit-disante clarté du Python
Hors ligne
#515 Le 22/04/2010, à 21:26
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
^^
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#516 Le 22/04/2010, à 21:29
- Кຼزດ
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
C'est un contre-exemple sur la soit-disante clarté du Python
Quoi, c'est pas compliqué
dou
Hors ligne
#517 Le 22/04/2010, à 21:30
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Bah quand tu connais pas le Python si !
Je vois pas ce qu'est lowercase surtout (une fonction, une variable, ...)
Dernière modification par grim7reaper (Le 22/04/2010, à 21:31)
Hors ligne
#518 Le 22/04/2010, à 21:34
- tshirtman
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
en fait c'est encore plus simple (je croyais me souvenir que c'était une liste, mais c'est une simple chaine):
>>> from string import lowercase
>>> print lowercase
abcdefghijklmnopqrstuvwxyz
>>>
(mais le code que j'ai donné à exactement le même effet).
(il y a uppercase, alphanum et d'autres, dans le module string)
Hors ligne
#519 Le 22/04/2010, à 21:39
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
Comme ça c’est plus clair.
Mais ça ne fait pas la même chose que le code de six caractères que j’ai donné.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#520 Le 22/04/2010, à 21:40
- Кຼزດ
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
en fait c'est encore plus simple (je croyais me souvenir que c'était une liste, mais c'est une simple chaine):
>>> from string import lowercase >>> print lowercase abcdefghijklmnopqrstuvwxyz >>>
(mais le code que j'ai donné à exactement le même effet).
(il y a uppercase, alphanum et d'autres, dans le module string)
ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
digits = '0123456789'
hexdigits = '0123456789abcdefABCDEF'
letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
lowercase = 'abcdefghijklmnopqrstuvwxyz'
octdigits = '01234567'
printable = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU...
punctuation = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
whitespace = '\t\n\x0b\x0c\r '
C'est sympa mais ça sert à quoi ?
dou
Hors ligne
#521 Le 22/04/2010, à 21:56
- tshirtman
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
ben plein d'opérations sur les chaines pardi
genre
for char in string:
if char in whitespace: # ah on est entre deux mots
mot_courant = ''
elif char in asciiletters and mot_courant == '': # ah, on commence un mot clé ou une variable
mot_courant += char
elif char in digit and mot_courant == '': # on commence une constante
………
fin bon c'est un exemple un peu simple, mais dans pas mal de cas, ça fait gagner du temps…
Hors ligne
#522 Le 22/04/2010, à 22:05
- Grünt
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
whitespace=' '
Red flashing lights. I bet they mean something.
Hors ligne
#523 Le 22/04/2010, à 22:56
- gnuuat
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
grim7reaper a écrit :Par concis je parle du nombre d'instructions, pas du nombre de lettre (ce qui n'a aucun sens).
Boah, si on part comme ça…
Mais sur ce coup là le C n’est pas plus concis.
#include <stdio.h> int main(void) { unsigned char c; for(c=0;c<128;c++) putc(c,stdout); return 0; }
Après bien sûr c’est un exemple à la con, mais c’était juste histoire de dire.
#include <stdlib.h>
#include <stdio.h>
#include "my.h"
int main(void)
{
char buff[BUFSIZ];
int ctr;
ctr = -1;
buff[BUFSIZ - 1] = 'a';
while (++ctr < BUFSIZ)
{
if (buff[BUFSIZ - 1] <= 'z')
buff[ctr] = buff[BUFSIZ -1]++;
else
buff[ctr] = '\0';
}
my_putstr(buff);
return (EXIT_SUCCESS);
}
edit : de toute façon, ton code écrit caractère par caractère, ce qui est assez lent (mieux vaut faire un write d'un buffer), et il écrit des caractères non affichables...
Dernière modification par gnuuat (Le 22/04/2010, à 22:58)
Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !
Hors ligne
#524 Le 22/04/2010, à 23:07
- grim7reaper
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
@gnuuat : Bel démo de comment rendre obscur un code simple .
Non, ça vient peut-être de moi, mais j'ai vraiment du mal avec cette mise en forme
À part ça ton code est HS car on demandes les 128 caractères de la table ASCII, pas les 26 lettres de l'alphabet en minuscule
Et sinon, avant de juger un code plus lent qu'un autre, il faut comparer les sorties asm produitent après optimisations pour voir si ton jugement est valide ou pas. Dans ce cas il l'est peut-être, je n'ai pas vérifié, mais c'est une remarque d'ordre générale (on a parfois de sacré surprise).
Dernière modification par grim7reaper (Le 22/04/2010, à 23:10)
Hors ligne
#525 Le 22/04/2010, à 23:09
- Pylades
Re : ..:: Topic des Codeurs Couche-Tard [0] ::..
@gnuuat : buffer overflow Euh, merde, non rien, j’ai dit une connerie, j’ai lu trop vite…
Et pourquoi toujours ce style ÉPITECH ?
Dernière modification par Pylade (Le 22/04/2010, à 23:14)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne