Python解释器:无法分配给文字

时间:2011-09-21 21:41:44

标签: python syntax syntax-error variable-assignment

我用这段代码写了一个程序:

('<') = raw_input(v1), ('>') = raw_input(v2)

并收到消息syntax error: can't assign to literal。我做错了什么?

3 个答案:

答案 0 :(得分:4)

  

我做错了什么?

您正在尝试将用户输入的内容分配给String的实例。这不起作用。

要在另一个答案的评论中抓住您的问题并尝试合并,如果您希望能够键入v1并让它返回'<',则需要执行此操作:

v1 = '<'

听起来,在你走得更远之前,强烈需要完成一些基本的编程概念,如赋值,变量和函数。

答案 1 :(得分:2)

对你的意思进行抨击:

user_provided_value = raw_input("Say something:")

if user_provided_value == "v1":
    print "Heavier than a duck!"
elif user_provided_value == "v2":
    print "Lighter than a duck!"
else:
    print "You must enter either v1 or v2"

的内容是(忽略v1v2个变量):

('<')              #1 Set '<'
                   #2 [ ('<') is the same as simply saying '<' ]
 =                 #3 to be the result of assigning
                   #5 to a tuple composed of
 raw_input()       #6 what the user types in at the prompt
 ,                 #7 (the comma operator creates a tuple)
 ('>')             #8 And '>'
 =                 # to be 
 raw_input()       #4 what the user types in at the prompt

用清晰易懂的英语输入这些内容,你会说:

“将'<'设置为将raw_input()的用户定义值分配给元组raw_input(), '>'”的结果。

说,“将某个固定值设置为等于用户提供的值”是代数等价于说“Set 5等于前一个等式的值。”


*由于逗号运算符是绑定最少的运算符之一,因此实际上将由字符串raw_input(), '>'组成的元组设置为等于来自第二次raw_input来电。

该陈述可细分如下:

  

设置字符串'&lt;'是评估语句raw_input(),'&gt;'得到的值= raw_input()

raw_input(), '>' = raw_input()被解释为:

  

设置由调用raw_input()和'&gt;'的结果组成的元组等于调用raw_input()

的结果

答案 2 :(得分:1)

您是否尝试使用<>作为提示进行输入?如果是这样,那就是你应该做的事情:

v1 = raw_input('<')
v2 = raw_input('>')

raw_input将提示作为参数接收,此函数调用的输出(您在终端中输入的内容)将被分配到v1v2

一行中的另一个选项,因为看起来你正试图做一行:

v1, v2 = raw_input('<'), raw_input('>')

您收到该错误消息的原因是('<'),这就是所谓的文字。文字是在代码中明确键入的值。基本上,不是变量。这就像说3 = len(mylist) ...如何将len函数的输出分配给3?你不能,因为3不是变量。你应该只在python(和大多数其他语言)中分配一个变量,通常是某种类似单词的字符集,如v1myinput

v1 = len(mylist)