如何在整数列表中搜索满足多个循环条件的整数?
How to search a list of integers for the integers that satisfy more than one criteria with loops?
我需要创建一个循环,可以在整数列表中搜索可被 5 和 7 整除的整数,同时允许 reader 确定列表的开始和结束数字。下面是我的代码,但出于某种原因,它只打印满足条件的列表的最后一个数字,而不是所有内容?我的代码有什么问题?我只允许使用循环函数执行此操作。
startRange =int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
a=range(startRange,endRange)
b=list(a)
c=b.append(int(endRange))
#find numbers
def findNumbers(startRange,endRange):
for i in b:
if i%5==0 and i%7==0:
Numbers=[]
z=i
y=Numbers.append(i)
continue
print(favNumbers)
return favNumbers
startRange =int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
a= range(startRange,endRange)
b= list(a)
c= b.append(int(endRange))
#find numbers
favNumbers = []
def findNumbers(startRange, endRange):
for i in b:
if i%5==0 and i%7==0:
favNumbers.append(i)
print(favNumbers)
你的代码有一些问题,所以我试着在这里解决它们:
def findNumbers(list): #findNumbers is now passed a list
favNumbers=[] #This needs to be initialized before the for loop, or it will be reset on every iteration
for i in list:
if i%5==0 and i%7==0:
favNumbers.append(i) #The number is appended to favNumbers, and you do not set this equal to a variable.
return favNumbers
def main(): #I don't know about you, but my CS prof would kill me if I didn't have a main()...
startRange = int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
mylist = list(range(startRange,endRange+1)) #This allows you to include endRange in the list without appending it yourself
print(findNumbers(mylist))
main()
我尝试对我做出重大更改的区域进行评论,但如果您有任何问题,请在下方评论!
希望对您有所帮助!
编辑
或者,这里的代码没有 main()
~~shudder~~ 更接近你原来的代码,有一个 findNumbers 函数接受两个整数而不是一个列表!
startRange = int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
#find numbers
def findNumbers(startRange, endRange):
a = range(startRange,endRange+1) #Again, this way you don't have to say c = b.append(int(endRange))
b = list(a)
favNumbers = [] #This needs to be initialized here, or else it won't return the list you want.
for i in b:
if i%5==0 and i%7==0:
favNumbers.append(i)
print(favNumbers)
return favNumbers
findNumbers(startRange, endRange)
我需要创建一个循环,可以在整数列表中搜索可被 5 和 7 整除的整数,同时允许 reader 确定列表的开始和结束数字。下面是我的代码,但出于某种原因,它只打印满足条件的列表的最后一个数字,而不是所有内容?我的代码有什么问题?我只允许使用循环函数执行此操作。
startRange =int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
a=range(startRange,endRange)
b=list(a)
c=b.append(int(endRange))
#find numbers
def findNumbers(startRange,endRange):
for i in b:
if i%5==0 and i%7==0:
Numbers=[]
z=i
y=Numbers.append(i)
continue
print(favNumbers)
return favNumbers
startRange =int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
a= range(startRange,endRange)
b= list(a)
c= b.append(int(endRange))
#find numbers
favNumbers = []
def findNumbers(startRange, endRange):
for i in b:
if i%5==0 and i%7==0:
favNumbers.append(i)
print(favNumbers)
你的代码有一些问题,所以我试着在这里解决它们:
def findNumbers(list): #findNumbers is now passed a list
favNumbers=[] #This needs to be initialized before the for loop, or it will be reset on every iteration
for i in list:
if i%5==0 and i%7==0:
favNumbers.append(i) #The number is appended to favNumbers, and you do not set this equal to a variable.
return favNumbers
def main(): #I don't know about you, but my CS prof would kill me if I didn't have a main()...
startRange = int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
mylist = list(range(startRange,endRange+1)) #This allows you to include endRange in the list without appending it yourself
print(findNumbers(mylist))
main()
我尝试对我做出重大更改的区域进行评论,但如果您有任何问题,请在下方评论!
希望对您有所帮助!
编辑
或者,这里的代码没有 main()
~~shudder~~ 更接近你原来的代码,有一个 findNumbers 函数接受两个整数而不是一个列表!
startRange = int(input("Enter the starting number:"))
endRange = int(input("Enter the end number:"))
#find numbers
def findNumbers(startRange, endRange):
a = range(startRange,endRange+1) #Again, this way you don't have to say c = b.append(int(endRange))
b = list(a)
favNumbers = [] #This needs to be initialized here, or else it won't return the list you want.
for i in b:
if i%5==0 and i%7==0:
favNumbers.append(i)
print(favNumbers)
return favNumbers
findNumbers(startRange, endRange)