2014-02-25 94 views
0

我仍在尝试学习编程,所以请帮我简化它。我试图运行一些看起来通过列表中的索引,如果它发现1返回“yay”(仅用于调试目的)。这是我到目前为止有:比较两个列表并创建一个列表

def replaceValues(distList, indexList): 

    for i in range (1,len(indexList)): 

     if indexList[i] = 1 
    return "yay!" 

不过,我得到每当我跑这一个语法错误,这彰显了1.请帮帮忙!

谢谢!

+1

Python是压痕敏感。你必须缩进它。请参考一个开始的python教程。 – aIKid

+0

对不起,我固定了缩进。 – user3288734

+0

私人评论应该解决您的问题。否则,发布错误信息。 – Sheng

回答

4

除了不正确的缩进(下面已修复)之外,当您应该使用==时,您正在使用=,并且在if语句中省略了冒号。

=用于分配值

==评估平等的if语句(返回一个布尔即TrueFalse

你忽略了一个:

更正代码:

def replaceValues(distList, indexList): 

    for i in range (1,len(indexList)): 
     if indexList[i] == 1: 
      return "yay!" 

如果你不明白的Python究竟是如何使用空格/缩进作为它的一个组成部分语法/结构等基本语法,那么你需要得到关于即教程..快速谷歌应该出现很多。我推荐UdacityCodeacademy

0

=是一个赋值语句。例如:

name = "tyler"

您应该使用==检查原语的平等(你比较整数,这是原语)。


开关:

if indexList[i] = 1

到:

if indexList[i] == 1

2

有我看到的语法错误。

首先,you're using the = sign (assignment) when you need == (comparison)

其次,在if语句末尾缺少冒号。

最后,您的必须*在您的if声明后面有一个缩进块。

总之,应该这样写:

if indexList[i] == 1: # double-equals and colon 
    return "yay!" # This must be indented to the proper level 

你真的应该去看看的tutorials;这是所有在那里都布置得很好的东西,而且在Python中做任何事情都是至关重要的。


*从技术上讲,你还可以按照一个if语句在同一行(例如if 1: pass)的表达式。但是,我个人认为这在几乎所有情况下都是可怕的。

+0

最后说明:我做了很多'try:语句;除了:block'线。通常当我尝试的东西是'int(foo)'或'os.remove(file)'等等。一行东西去尝试,然后是一块东西,以防万一出错。我偶尔会在'if's上使用它,而且当我宁愿使用switch/case时;-) –

0

试试这样说:

def replaceValues(distList, indexList): 
    for k in range(1, len(indexList)): 
     if indexList[k] == 1:    
      return "yay!"