你好我试图制作一个MP3播放器。目前我只是试图让它将找到的mp3文件打印到控制台,但它陷入了一个无限循环,我不知道如何打破它,因为我仍然是python的新手
def mp3_finder():
times_done = 5
starting = 0
for file in os.listdir(full_dir):
if file.endswith(".mp3"):
while starting < times_done:
starting = starting + 1
print(file)
return mp3_finder()
修改
抱歉,我不是很清楚,但我想要做的是找到mp3文件并将名称打印到控制台5次,但因为它一直找到文件,它一直打印到控制台,直到python停止它,因为它打印数百它的
答案 0 :(得分:2)
您在return语句中再次调用该函数;因为您在函数中print
,所以您可以完全删除return
。
def mp3_finder():
times_done = 5
starting = 0
for file in os.listdir(full_dir):
if file.endswith(".mp3"):
while starting < times_done:
starting = starting + 1
print(file)
这回答了你关于打破循环的问题,但也许你应该问另一个关于你的代码的问题,因为我不认为它会给你你想要的输出。
答案 1 :(得分:0)
首先,你可能不应该在函数结束时调用mp3_finder
- 它将无限地递归。你也许不想要内循环,它只会打印第一个文件五次。结合的结果是该函数打印第一个文件五次,然后它调用自己再次打印第一个文件五次,依此类推,直到达到最大递归深度。
您想要返回的内容并不清楚可能只需返回None
(即完全跳过return
语句)。其次,当你完成时,你需要break
离开循环。
def mp3_finder():
times_done = 5
starting = 0
for file in os.listdir(full_dir):
if file.endswith(".mp3"):
if starting < times_done:
starting = starting + 1
print(file)
else:
break
答案 2 :(得分:-1)
def mp3_finder():
times_done = 5
starting = 0
for file in os.listdir(full_dir):
if file.endswith(".mp3"):
while starting < times_done:
starting = starting + 1
print(file)
mp3_finder()
注意你的缩进,否则看起来不错