Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何调用函数而不导致调用循环_Python_Python 3.x - Fatal编程技术网

Python 如何调用函数而不导致调用循环

Python 如何调用函数而不导致调用循环,python,python-3.x,Python,Python 3.x,我有以下代码: def make_album(): album1 = {} album2 = {} album3 = {} for x in range(3): album_nm = input("Album name: ") artist_nm = input("Artist name: ") if x == 0: album1[album_nm] = artist_nm e

我有以下代码:

def make_album():
    album1 = {}
    album2 = {}
    album3 = {}
    for x in range(3):
        album_nm = input("Album name: ")
        artist_nm = input("Artist name: ")
        if x == 0:
            album1[album_nm] = artist_nm
        elif x == 1:
            album2[album_nm] = artist_nm
        elif x == 2:
            album3[album_nm] = artist_nm
    return album1, album2, album3
make_album()
print(make_album())

当我通过终端启动代码时,它会要求我输入相册名和艺术家名6次,尽管我在
范围内要求只调用3次。我发现这个错误是因为for循环被启动,即使我没有调用它是
make\u album()
的一部分的函数。我不想调用
make_album()
函数中的循环,因此它会要求我输入三次所要求的数据,就像我在
范围(3)

中所要求的那样查看代码的最后两行

make_album()
print(make_album())
您调用了函数
make_album()
两次,这就是为什么您得到了6次输入。只需更改为:

result = make_album()
print(result)
或者,只需删除最后一行:

print(make_album())
祝你好运,好运

更多Python代码:

def make_album():
    albums = []
    for x in range(3):
        print(x+1)
        album_nm = input("Album name: ")
        artist_nm = input("Artist name: ")
        albums.append({album_nm: artist_nm})
    return albums
albums = make_album()
print(albums)

您将调用两次
make_album()
,每次调用产生三组输入。第一个电话完全没用,因为你把结果扔掉了。好吧,我明白了。我认为print(make_album())内部调用只是为了输出结果。现在谢谢你,我理解得很好;D@Youssef,只需从代码中删除最后第二行。保持最后一行,你就完成了。进行2次函数调用就是要求您输入
3*2=6次。