Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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 - Fatal编程技术网

Python脚本在我从空闲运行但不在命令行中运行时工作?

Python脚本在我从空闲运行但不在命令行中运行时工作?,python,Python,我在做一个学校的项目,我们要做一个剧本。 基本上,每当我空闲时,我按F5运行脚本,一切都正常,但当我双击python文件本身并进入命令行时,我只需要输入一个东西(R或L),然后窗口关闭。为什么会这样?我认为任务的一个要求是它需要在命令行中执行,所以这就是为什么我要问这个问题。 这是我的剧本(还没写完) 如果文件扩展名与python解释器关联,则可以通过双击来运行它,问题是在脚本执行完成后,terminal/cmd窗口立即关闭。要解决此问题,您有两个选项: 在执行main()后,在脚本末尾添加一条

我在做一个学校的项目,我们要做一个剧本。 基本上,每当我空闲时,我按F5运行脚本,一切都正常,但当我双击python文件本身并进入命令行时,我只需要输入一个东西(R或L),然后窗口关闭。为什么会这样?我认为任务的一个要求是它需要在命令行中执行,所以这就是为什么我要问这个问题。 这是我的剧本(还没写完)


如果文件扩展名与python解释器关联,则可以通过双击来运行它,问题是在脚本执行完成后,terminal/cmd窗口立即关闭。要解决此问题,您有两个选项:

  • 在执行
    main()
    后,在脚本末尾添加一条阻塞语句,例如
    input('Press enter to exit')
    。这样,脚本不会立即终止,而是在您按键后终止

  • 从脚本执行后将保留的terminal/cmd实例运行脚本


  • 我假设你在Windows上

    这是窗口控制台的工作方式;一旦在其中运行的程序退出,它就会关闭。我猜您的程序以错误结束,或者只是正常结束,在任何一种情况下,windows都会立即关闭控制台窗口(耶)


    避免这种情况的一种方法是在程序末尾添加
    输入(“按enter键退出”)
    。但是,如果程序崩溃,这没有帮助,在这种情况下,Vinny的上述注释就是一种方法:手动打开一个命令窗口,通过键入
    python
    和.py文件的路径手动启动程序。如果程序中出现错误,它将被打印出来,您将返回cmd shell提示符。

    Python脚本是从命令行执行的,而不是双击它们。打开cmd.exe,执行
    python path/to/your/script.py
    我相信
    input
    只会在新行终止,所以“any key”可能应该是“enter”。在同一上下文中,我有一个不同的问题-我正在尝试运行线程。这些程序在空闲状态下工作正常,但无法通过python启动器启动。各种各样的程序——从简单线程到tkinter GUI。我正在使用Windows10和Python 3.8
    import os
    import csv
    import sys
    
    
    def main():
        menu()
    
    
    
    def menu():
        print ("******MAIN MENU******")
        print()
        veryFirstChoice = input("Would you like to register an account, or log in? Type R to register and L to log in ").upper()
        if veryFirstChoice == "R":
            register()
        elif veryFirstChoice == "L":
            login()
    
    def login():
        username = input("Please enter your username")
        password = input("Please enter your password")  
        for line in open("accountfile.txt","r").readlines():
            login_info = line.split()
            if username == login_info[0] and password == login_info[1]:
                print("Correct credentials!")
                return quiz()
        print("Incorrect credentials,please try again. ")
        return login()
    
    def register():
        username = input("Please input the first 3 letters of your first name and your age ")
        password = input("Please input your desired password ")
        file = open("accountfile.txt","a")
        file.write(username)
        file.write(" ")
        file.write(password)
        file.write("\n")
        file.close()
        menu()
    
    def quiz():
        choice1 = input ("""Would you like to take the Chemistry Quiz,or the Computer Science quiz ? Type in CH for Chemistry or CS for Computer Science """).upper()
        score = 0
    
        if choice1 == "CH":
            choice2 = input ("Would you like to do the easy, medium or hard questions ?").lower()
            if choice2 == "easy":
                load_profile = open("chemistryquiz.txt","r")
                lines = load_profile.read().splitlines()
                question1 = lines[4]
                question2 = lines[5]
                question3 = lines[6]
                question4 = lines[7]
                question5 = lines[8]
                print (question1)
                answer1 = input("Please enter your answer ").upper()
                if answer1 != "A":
                    print ("You got the wrong answer, your score is", score)
                else:
                    score1 = (score+1)
                    print ("Your score is", score1)
                print (question2)
                answer2 = input("Please enter your answer ").upper()
                if answer2 != "A":
                    score1 = score1
                    print ("You got the wrong answer, your score is", score1)
    
                else:
                    score2 = (score1+1)
                    print ("Your score is", score2)
                print (question3)
                answer3 = input("Please enter your answer ").upper()
                score2 = score1
                if answer3 != "A":
                    score3 = score2
                    print ("You got the wrong answer, your score is", score3)
                else:
                    score3 = (score2+1)
                    print ("Your score is", score3)
                print (question4)
                answer4 = input("Please enter your answer ").upper()
                if answer4 != "A":
                    score4 = score3
                    print ("Wrong answer, your score is ", score4)
                else:
                    score4 = (score3+1)
                    print ("Your score is", score4)
                print (question5)
                answer5 = input("Please enter your answer ").upper()
                if answer5 != "A":
                    score5 = score4
                    print ("You got the wrong answer, your score is ", score5)
                else:
                    score5 = (score4+1)
                    print ("Well done, your score is ", score5)
            if choice2 == "medium":
                load_profile = open("chemistryquiz.txt","r")
                lines = load_profile.read().splitlines()
                question1 = lines[13]
                question2 = lines[14]
                print (question1)
                answer1 = input("Please enter answer ").upper()
                if answer1 != "A":
                    score1 = score
                    print ("Wrong answer ", score1)
                else:
                    score1 = (score+1)
                    print ("Noice, score is ", score1)
    
    main()