我想创建一个接收列表的函数,检查它的每个元素并返回一个新列表。如果元素大于97,则它将在新列表中放置100。否则,它将为数字添加三个并将其放入新列表中。在函数我只是通过列表。但是,当我运行它时,它不会返回任何东西。
以下是我将列表发送到函数的方法:
res=bonus(mark)
这是我的功能:
def bonus(mark):
new=[]
for i in range(1,31):
if (mark[i-1]>97):
new.append(100)
else:
new.append(mark[i-1]+3)
return new
答案 0 :(得分:0)
您需要在调用之前声明该函数。
例如:
mark = [1,97,3,4,98,6,99,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
def bonus(mark):
new=[]
for i in range(1,31):
if (mark[i-1]>97):
new.append(100)
else:
new.append(mark[i-1]+3)
return new
res=bonus(mark)
print(res)
输出:
[4, 100, 6, 7, 100, 9, 100, 11, 12, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3]
答案 1 :(得分:0)
如果您浏览列表,请不要使用range(..)
使用for item in listname:
def bonus(mark):
new=[]
for item in mark: # item will be each element of mark in order, no need to indexaccess
if (item > 97):
new.append(100)
else:
new.append(item + 3)
return new
或者将其缩短为列表理解:
mark = list(range(80,100))
def bonus(m):
return [min(100,m+3) for m in mark] # add m+3, if > 100 (for 98,99,100) use 100.
print (mark)
print (bonus(mark))
输出:
[80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
[83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 100, 100]