开始Python函数和列表

时间:2015-08-27 03:52:51

标签: python list python-3.4

*快速编辑我正在使用python 3.4

我刚刚开始在课堂上学习python,虽然它似乎比C ++更容易处理,但有一些我无法解决的问题。

我需要制作一个小函数,它接受farenheit给出的一些温度并将它们转换为摄氏温度并将它们放回列表形式。我有大部分代码,我相信它应该有效。但是,我一直收到一个未声明变量的错误。

input_temps = [-20.0, -10.0, 5.0, 18.0, 50.0, 212.0]

def farenheit_to_celsius(data):         #function definition
    output_temps = []                   #create empty list
        for input in data:              #cycle through list
            ((input_temps-32)* 5/9)     #done to each item oninput_temps
    output_temps += [input]             #connects list to list
    return output_temps                 #returns output_temps with newvalues

 print(output_temps)                    #prints out output_temps to debug

代码在我的编辑器上正确缩进。但是,当我尝试运行它时,它会说" output_temps"尚未宣布。此外,我正在尝试将列表添加到列表中,但我不确定我是否正确执行此操作。

output_temps += [input]          #not 100% sure if this is right.

4 个答案:

答案 0 :(得分:1)

首先,如果您不重新分配input变量,则不会修改output_temps变量。其次,output_temps中的修改应该在循环内完成。第三也是最重要的,应该调用该函数(函数执行结束后input_temps = [-20.0, -10.0, 5.0, 18.0, 50.0, 212.0] def farenheit_to_celsius(data): #function definition output_temps = [] #create empty list for input in data: #cycle through list input = ((input-32)* 5/9) #done to each item oninput_temps output_temps += [input] #connects list to list return output_temps #returns output_temps with newvalues print(farenheit_to_celsius(input_temps)) 的范围结束)。

output_temps += [input]

input是正确的。它将output_temps放在一个列表中,它是唯一的元素,然后将其添加到output_temps.append(input) 。但是,可能更好的方法是使用append method on lists

<head>
<base href="http://www.otherdomain.com/xyz/">
</head>

答案 1 :(得分:0)

for input in data:              
    ((input_temps-32)* 5/9) # this should be input = (input - 32)*5/9

Int在Python中是不可变的 你的代码中有一些缩进错误。
在打印output_temps之前,您无法调用farenheit_to_celsius。

input_temps = [-20.0, -10.0, 5.0, 18.0, 50.0, 212.0]

def farenheit_to_celsius(data):         #function definition
    output_temps = []                   #create empty list
    for input in data:              #cycle through list
        input =  ((input-32)* 5/9)     #done to each item oninput_temps
        output_temps += [input]             #connects list to list
        # I think use output_temps.append(input) will be better. But it's ok here.
    return output_temps                 #returns output_temps with newvalues

print(farenheit_to_celsius(input_temps))                    #prints out output_temps to debug

答案 2 :(得分:0)

output_temps是在方法内部声明的,但是在print语句中被引用,而不是在方法内部,这就是你得到错误的原因。而不是打印output_temps,打印您对方法的调用,该方法将返回output_temps:

print(farenheit_to_celsius(my_data))

要添加到Python中的列表,您可以执行以下操作:

my_list.append(my_data)

答案 3 :(得分:0)

input_temps = [-20.0, -10.0, 5.0, 18.0, 50.0, 212.0]


def farenheit_to_celsius(data):
    output_temps = []

    for input in data:
        ((input_temps-32)* 5/9)
        output_temps += [input]

    return output_temps
    print(output_temps)

你应该在这里做得很好,我只需要在这个程序中修复一些空格错误并输出_输出+ = [输入]好吧它不会导致任何错误