I'm guessing that its something to do with the "Warning: Password may
be echoed" line. In the documentation it says:
"If echo free input is unavailable getpass() falls back to printing a
warning message to stream and reading
from sys.stdin and issuing a GetPassWarning."
But i'm not sure what that means, sry to be a pain, and again thanks
for all the help.
I did manage to find another solution which is just to print a large
number of blank lines, which just moved the line with the word in it
off the screen, but I don't really like it to be honest. The getpass
module seems to be the best solution i just don't understand why its
not working for me.
Regards
John
On 19 July 2010 16:02, <tutor-requ...@python.org
<mailto:tutor-requ...@python.org>> wrote:
Send Tutor mailing list submissions to
tutor@python.org <mailto:tutor@python.org>
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.python.org/mailman/listinfo/tutor
or, via email, send a message with subject or body 'help' to
tutor-requ...@python.org <mailto:tutor-requ...@python.org>
You can reach the person managing the list at
tutor-ow...@python.org <mailto:tutor-ow...@python.org>
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Tutor digest..."
Today's Topics:
1. Re: A file containing a string of 1 billion random digits.
(Peter Otten)
2. Re: A file containing a string of 1 billion random digits.
(ALAN GAULD)
3. Re: A file containing a string of 1 billion random digits.
(Richard D. Moores)
4. Re: A file containing a string of 1 billion random digits.
(Richard D. Moores)
5. Re: Contents of Tutor digest, help with Hangman program
(Steven D'Aprano)
6. Re: Contents of Tutor digest, help with Hangman program
(bob gailer)
7. Re: A file containing a string of 1 billion random digits.
(Steven D'Aprano)
----------------------------------------------------------------------
Message: 1
Date: Mon, 19 Jul 2010 15:45:43 +0200
From: Peter Otten <__pete...@web.de <mailto:pete...@web.de>>
To: tutor@python.org <mailto:tutor@python.org>
Subject: Re: [Tutor] A file containing a string of 1 billion random
digits.
Message-ID: <i21ku0$e0...@dough.gmane.org <mailto:1...@dough.gmane.org>>
Content-Type: text/plain; charset="ISO-8859-1"
Richard D. Moores wrote:
> On Mon, Jul 19, 2010 at 04:51, Peter Otten <__pete...@web.de
<mailto:pete...@web.de>> wrote:
>> bob gailer wrote:
>>
>>> Check this out:
>>>
>>> import random, time
>>> s = time.time()
>>> cycles = 1000
>>> d = "0123456789"*100
>>> f = open("numbers.txt", "w")
>>> for i in xrange(n):
>>> l = []
>>> l.extend(random.sample(d, 1000))
>>> f.write(''.join(l))
>>> f.close()
>>> print time.time() - s
>>
>> Note that this is not random. E. g. the start sequence "0"*101
should
>> have a likelyhood of 1/10**101 but is impossible to generate
with your
>> setup.
> I not sure exactly what you mean, because I don't fully understand
> that '*' (despite Alan's patient explanation), but if you run
>
> import random
> cycles = 100000
> d = "0123456789"*10
> for i in range(cycles):
> l = []
> l.extend(random.sample(d, 100))
> s = (''.join(l))
> if s[:4] == '0101':
> print(s)
>
> You'll see a bunch of strings that begin with "0101"
>
> Or if you run
>
> import random
> cycles = 50
> d = "0123456789"*10
> for i in range(cycles):
> l = []
> l.extend(random.sample(d, 100))
> s = (''.join(l))
> if s[:1] == '0':
> print(s)
>
> You'll see some that begin with '0'.
>
> Am I on the right track?
No. If you fire up your python interpreter you can do
>>> "0"*10
'0000000000'
i. e. "0"*101 is a sequence of 101 zeros. Because a sample can
pick every
item in the population only once and there are only 100 zeros, at
most 100
of them can be drawn, and the more are drawn the less likely it
becomes that
another one is drawn. The simplest demo is probably
random.sample([0, 1], 2)
Possible returns are [0, 1] and [1, 0], but for true randomness
you want [1,
1] and [0, 0], too. The more often the items are repeated the less
pronounced that bias becomes, e. g.
random.sample([0, 1, 0, 1], 2)
can produce all combinations, but [0, 1] is twice as likely as [0, 0]
because once the first 0 is drawn there is only one 0 left, but
two 1s.
Here's a demonstration:
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for i in range(1000):
... d[tuple(random.sample([0, 1]*2, 2))] += 1
...
>>> dict(d)
{(0, 1): 333, (1, 0): 308, (0, 0): 174, (1, 1): 185}
Peter
------------------------------
Message: 2
Date: Mon, 19 Jul 2010 07:14:18 -0700 (PDT)
From: ALAN GAULD <alan.ga...@btinternet.com
<mailto:alan.ga...@btinternet.com>>
To: "Richard D. Moores" <rdmoo...@gmail.com
<mailto:rdmoo...@gmail.com>>
Cc: tutor@python.org <mailto:tutor@python.org>
Subject: Re: [Tutor] A file containing a string of 1 billion random
digits.
Message-ID: <94846.12586...@web86706.mail.ird.yahoo.com
<mailto:94846.12586...@web86706.mail.ird.yahoo.com>>
Content-Type: text/plain; charset=utf-8
> 4 and executed many times. Seems the 0 in 0dddd is
> there when a dddd is a 3-digit number such as 123.
> In that case a zero is prefixed to 123 to produce
> 0123. Or if just 23, 2 zeros are prefixed, etc.
> Correct?
Yes, the zero indicates that the string should be padded
with zeros to the length specified. The format string
documentation gives all the details but while zero
padding is fairly common the asterisk is less so, that's
why I explained it but not the zero...I assumed it was
the asterisk that was confusing you...
HTH,
Alan G.
------------------------------
Message: 3
Date: Mon, 19 Jul 2010 07:14:13 -0700
From: "Richard D. Moores" <rdmoo...@gmail.com
<mailto:rdmoo...@gmail.com>>
To: Peter Otten <__pete...@web.de <mailto:pete...@web.de>>
Cc: tutor@python.org <mailto:tutor@python.org>
Subject: Re: [Tutor] A file containing a string of 1 billion random
digits.
Message-ID:
<aanlktikctb03vyzhhhvmpg8hrf6lmhrdigbtkconp...@mail.gmail.com
<mailto:aanlktikctb03vyzhhhvmpg8hrf6lmhrdigbtkconp...@mail.gmail.com>>
Content-Type: text/plain; charset=UTF-8
On Mon, Jul 19, 2010 at 06:45, Peter Otten <__pete...@web.de
<mailto:pete...@web.de>> wrote:
> No. If you fire up your python interpreter you can do
>
>>>> "0"*10
> '0000000000'
Ah, you're absolutely right. Sorry, I misunderstood you and your '*'.
Good catch.
Dick
------------------------------
Message: 4
Date: Mon, 19 Jul 2010 07:48:13 -0700
From: "Richard D. Moores" <rdmoo...@gmail.com
<mailto:rdmoo...@gmail.com>>
To: ALAN GAULD <alan.ga...@btinternet.com
<mailto:alan.ga...@btinternet.com>>
Cc: tutor@python.org <mailto:tutor@python.org>
Subject: Re: [Tutor] A file containing a string of 1 billion random
digits.
Message-ID:
<aanlktinczlycj6aofpo64kfuv1ueacne7bvmhvutz...@mail.gmail.com
<mailto:aanlktinczlycj6aofpo64kfuv1ueacne7bvmhvutz...@mail.gmail.com>>
Content-Type: text/plain; charset=UTF-8
On Mon, Jul 19, 2010 at 07:14, ALAN GAULD
<alan.ga...@btinternet.com <mailto:alan.ga...@btinternet.com>> wrote:
>
>
>> 4 and executed many times. Seems the 0 in 0dddd is
>> there when a dddd is a 3-digit number such as 123.
>> In that case a zero is prefixed to 123 to produce
>> 0123. Or if just 23, 2 zeros are prefixed, etc.
>> Correct?
>
> Yes, the zero indicates that the string should be padded
> with zeros to the length specified. The format string
> documentation gives all the details
I've been unable to find any mention of that use of the asterisk in
the 3.1 docs, in
http://docs.python.org/py3k/library/string.html#formatspec
or
http://docs.python.org/py3k/library/string.html#formatstrings
Suggestion?
Dick
------------------------------
Message: 5
Date: Tue, 20 Jul 2010 00:54:57 +1000
From: Steven D'Aprano <st...@pearwood.info
<mailto:st...@pearwood.info>>
To: tutor@python.org <mailto:tutor@python.org>
Subject: Re: [Tutor] Contents of Tutor digest, help with Hangman
program
Message-ID: <201007200054.57927.st...@pearwood.info
<mailto:201007200054.57927.st...@pearwood.info>>
Content-Type: text/plain; charset="utf-8"
On Mon, 19 Jul 2010 09:37:25 pm John Palmer wrote:
> Hi Alan thanks for the help. I did try the getpass module, I think I
> used:
>
> getpass.getpass()
>
> This actually prompted the user to enter a password, which isn't
> really what I want. Unless there's something i'm missing with this
> module? I'll take another look anyway.
Tell the function what prompt to use:
>>> import getpass
>>> s = getpass.getpass("Please enter your secret word: ")
Please enter your secret word:
>>>
>>> print s
anti-disestablishmentarianism
--
Steven D'Aprano
------------------------------
Message: 6
Date: Mon, 19 Jul 2010 10:57:11 -0400
From: bob gailer <bgai...@gmail.com <mailto:bgai...@gmail.com>>
To: John Palmer <speederpyt...@gmail.com
<mailto:speederpyt...@gmail.com>>
Cc: tutor@python.org <mailto:tutor@python.org>
Subject: Re: [Tutor] Contents of Tutor digest, help with Hangman
program
Message-ID: <4c4467c7.1060...@gmail.com
<mailto:4c4467c7.1060...@gmail.com>>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
On 7/19/2010 7:37 AM, John Palmer wrote:
> Hi Alan thanks for the help. I did try the getpass module, I think I
> used:
>
> getpass.getpass()
>
> This actually prompted the user to enter a password, which isn't
> really what I want. Unless there's something i'm missing with this
> module? I'll take another look anyway.
Reading the documentation (15.7 in Python 3):
The getpass module provides two functions:
getpass.getpass(/prompt='Password: '/, /stream=None/)?
<http://docs.python.org/py3k/library/getpass.html?highlight=getpass#getpass.getpass>
Prompt the user for a password without echoing. The user is
prompted
using the string /prompt/, which defaults to 'Password: '.
HTH
--
Bob Gailer
919-636-4239
Chapel Hill NC
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.python.org/pipermail/tutor/attachments/20100719/20256873/attachment-0001.html>
------------------------------
Message: 7
Date: Tue, 20 Jul 2010 01:01:58 +1000
From: Steven D'Aprano <st...@pearwood.info
<mailto:st...@pearwood.info>>
To: tutor@python.org <mailto:tutor@python.org>
Subject: Re: [Tutor] A file containing a string of 1 billion random
digits.
Message-ID: <201007200101.58268.st...@pearwood.info
<mailto:201007200101.58268.st...@pearwood.info>>
Content-Type: text/plain; charset="iso-8859-1"
On Tue, 20 Jul 2010 12:48:13 am Richard D. Moores wrote:
> On Mon, Jul 19, 2010 at 07:14, ALAN GAULD
<alan.ga...@btinternet.com <mailto:alan.ga...@btinternet.com>>
wrote:
> >> 4 and executed many times. Seems the 0 in 0dddd is
> >> there when a dddd is a 3-digit number such as 123.
> >> In that case a zero is prefixed to 123 to produce
> >> 0123. Or if just 23, 2 zeros are prefixed, etc.
> >> Correct?
> >
> > Yes, the zero indicates that the string should be padded
> > with zeros to the length specified. The format string
> > documentation gives all the details
>
> I've been unable to find any mention of that use of the asterisk in
> the 3.1 docs, in
>
> http://docs.python.org/py3k/library/string.html#formatspec
>
> or
>
> http://docs.python.org/py3k/library/string.html#formatstrings
>
> Suggestion?
You're looking in the wrong place. This is not part of format strings,
as it doesn't use the str.format() method. It uses the % string
interpolation operator.
http://docs.python.org/py3k/library/stdtypes.html#old-string-formatting-operations
You can get the same result with the format mini-language. See the
example "Nested arguments and more complex examples" just before the
section on Template Strings here:
http://docs.python.org/py3k/library/string.html#format-specification-mini-language
--
Steven D'Aprano
------------------------------
_______________________________________________
Tutor maillist - Tutor@python.org <mailto:Tutor@python.org>
http://mail.python.org/mailman/listinfo/tutor
End of Tutor Digest, Vol 77, Issue 70
*************************************
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor