我用这段代码写了一个程序:
('<') = raw_input(v1), ('>') = raw_input(v2)
并收到消息syntax error: can't assign to literal
。我做错了什么?
答案 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"
您说的内容是(忽略v1
和v2
个变量):
('<') #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
将提示作为参数接收,此函数调用的输出(您在终端中输入的内容)将被分配到v1
和v2
。
一行中的另一个选项,因为看起来你正试图做一行:
v1, v2 = raw_input('<'), raw_input('>')
您收到该错误消息的原因是('<')
,这就是所谓的文字。文字是在代码中明确键入的值。基本上,不是变量。这就像说3 = len(mylist)
...如何将len
函数的输出分配给3?你不能,因为3不是变量。你应该只在python(和大多数其他语言)中分配一个变量,通常是某种类似单词的字符集,如v1
或myinput
:
v1 = len(mylist)