为什么我的 Python 脚本在使用函数并使用 input(print()) 后打印 "None"?

Why is my Python script printing "None" after using a function and using input(print())?

这是我的代码:

def videoConv(sourceDir, targetDir):
videoSourceDeclaration(sourceDir, targetDir)
input(print("\nis this correct?\n[y]/[n] (yes or no): "))

打印如下:

is this correct?
[y]/[n] (yes or no):
None

如何阻止它打印“None”?我读过我应该使用 return,但我不确定我应该做什么。

此外,这是整个 videoSourceDeclaration 函数:

def videoSourceDeclaration(sourceDir, targetDir):
sourceDir = input("Input source directory (leave blank for default): ")
os.system('cls||clear')
os.chdir("..")
print("source directory: " + os.getcwd())
targetDir = input("\nInput target directory (leave blank for default): ")
if targetDir == "":
    if platform == "linux":
        targetDir = ("~\videos")
        # not sure of the linux dir, change later and add macos")
    elif platform == "win32":
        targetDir = ("c:\" + "users\" + getpass.getuser() + "\" + "videos")
if targetDir == ("~\videos") or ("c:\" + "users\" + getpass.getuser() + "\" + "videos"):
    isTargetDirDefault = True   
    os.system('cls||clear')
print("source directory: " + os.getcwd() + "\ntarget directory: " + targetDir)

你在这里混合了一些东西。

为了打印用户的输入,您必须先获取它。您使用 input() 函数正确地完成了它,但这将 return 您的结果。这就是您需要打印的内容。

所以你应该改变你的代码:

input(print("\nis this correct?\n[y]/[n] (yes or no): "))

至此

print(input("\nis this correct?\n[y]/[n] (yes or no): "))