Py3.3 unicode literal and input()

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Jun 18 06:08:02 EDT 2012


On 2012年6月18日 01:19:32 -0700, jmfauth wrote:
> What is input() supposed to return?

Whatever you type.
>>>> u'a' == 'a'
> True

This demonstrates that in Python 3.3, u'a' gives a string equal to 'a'.
>>>> r1 = input(':')
> :a

Since you typed the letter a, r1 is the string "a" (a single character).
>>>> r2 = input(':')
> :u'a'

Since you typed four characters, namely lowercase u, single quote, 
lowercase a, single quote, r2 is the string "u'a'" (four characters).
>>>> r1 == r2
> False
>>>> type(r1), len(r1)
> (<class 'str'>, 1)
>>>> type(r2), len(r2)
> (<class 'str'>, 4)

If you call print(r1) and print(r2), that will show you what they hold. 
If in doubt, calling print(repr(r1)) will show extra information about 
the object.
> sys.argv?

What about it?
>> jmf



More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /