Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   python coding contest (http://www.velocityreviews.com/forums/t352942-python-coding-contest.html)

 Mark Dickinson 12-31-2005 01:24 AM

python coding contest

Here's a variant of André's brilliant idea that's
119 characters long, and fully printable:

j=''.join;seven_seg=lambda z:j(j(' _ | |_ _|_|'
[ord('^r|=Zm.:v\r'[int(a)])%u*2:][:3]for a in z)
+"\n"for u in(3,7,8))

Mark

 Christoph Zwerschke 12-31-2005 02:50 AM

Re: python coding contest

Mark Dickinson wrote:
> Here's a variant of André's brilliant idea that's
> 119 characters long, and fully printable:
>
> j=''.join;seven_seg=lambda z:j(j(' _ | |_ _|_|'
> [ord('^r|=Zm.:v\r'[int(a)])%u*2:][:3]for a in z)
> +"\n"for u in(3,7,8))

You have an escaped CR (\r) as the last character in your string.

Here is a 118 character fully printable variant without the \r:

j=''.join;seven_seg=lambda x:j(j(' _ |_|_ _|
|'[ord('^rm=3|4:sť'[int(c)])%d*2:][:3]for c in x)+"\n"for d in(3,8,7))

Note that there is only one non-ascii character in the code.

However, André's final solution is one character shorter (117).

-- Christoph

 Just 12-31-2005 07:57 AM

Re: python coding contest

In article <dp4rkq\$s45\$1@online.de>,
Christoph Zwerschke <cito@online.de> wrote:

> Mark Dickinson wrote:
> > Here's a variant of André's brilliant idea that's
> > 119 characters long, and fully printable:
> >
> > j=''.join;seven_seg=lambda z:j(j(' _ | |_ _|_|'
> > [ord('^r|=Zm.:v\r'[int(a)])%u*2:][:3]for a in z)
> > +"\n"for u in(3,7,8))

>
> You have an escaped CR (\r) as the last character in your string.

Which is perfectly printable.

> Here is a 118 character fully printable variant without the \r:
>
> j=''.join;seven_seg=lambda x:j(j(' _ |_|_ _|
> |'[ord('^rm=3|4:sť'[int(c)])%d*2:][:3]for c in x)+"\n"for d in(3,8,7))
>
> Note that there is only one non-ascii character in the code.

Which isn't. So I'm not sure what the point is you're trying to make.

Just

 Just 12-31-2005 08:28 AM

Re: python coding contest

In article <just-310A41.08573831122005@news1.news.xs4all.nl>,
Just <just@xs4all.nl> wrote:

> In article <dp4rkq\$s45\$1@online.de>,
> Christoph Zwerschke <cito@online.de> wrote:
>
> > Mark Dickinson wrote:
> > > Here's a variant of André's brilliant idea that's
> > > 119 characters long, and fully printable:
> > >
> > > j=''.join;seven_seg=lambda z:j(j(' _ | |_ _|_|'
> > > [ord('^r|=Zm.:v\r'[int(a)])%u*2:][:3]for a in z)
> > > +"\n"for u in(3,7,8))

> >
> > You have an escaped CR (\r) as the last character in your string.

>
> Which is perfectly printable.
>
> > Here is a 118 character fully printable variant without the \r:
> >
> > j=''.join;seven_seg=lambda x:j(j(' _ |_|_ _|
> > |'[ord('^rm=3|4:sť'[int(c)])%d*2:][:3]for c in x)+"\n"for d in(3,8,7))
> >
> > Note that there is only one non-ascii character in the code.

>
> Which isn't. So I'm not sure what the point is you're trying to make.

Duh, sorry, it's early. 118 is better than 119. Printable or not :)
Still, a 119 bytes version that is fully printable is pretty cool.

Just

 Christoph Zwerschke 12-31-2005 09:56 AM

Re: python coding contest

Just wrote:
> Duh, sorry, it's early. 118 is better than 119. Printable or not :)
> Still, a 119 bytes version that is fully printable is pretty cool.

No, you're right, I also somehow missed the point. I believed "ť" to be
"printable" (opposed to control char's) but technically speaking, the
consensus is that "printable" restricts to 7-bit-ascii (in Python,
string.printable does not even change if you change the locale setting,
contrary to string.letters; this is a bit unclear in the Python docs).

Mark's point was that his solution was purely 7-bit-ascii printable and
as such it was good although it was one byte more.

In the next contest, there should be subcategories for solutions that
are 7-bit-printable and/or have no imports.

-- Christoph

 All times are GMT. The time now is 10:31 PM.