【问题标题】:I don't have any idea about how to execute this Python script (program)我不知道如何执行这个 Python 脚本(程序)
【发布时间】:2021-08-13 06:21:32
【问题描述】:

你好,我需要你的帮助我不知道如何执行这个 python 脚本或运行我写的攻击()但是没有结果,如果有人可以帮助你这么多。

请你检查一下它是否正确(语法)。

def attack():

while 1:
    X = list(
            map(float_input,[
                "WHAT IS TARGET SHIP LENGTH IN FEET?\n",
                "WHAT IS TARGET SHIP BEAM IN FEET?\n",
                "WHAT IS TARGET SHIP SPEED IN KNOTS?\n",
                "WHAT IS RANGE TARGET TO SUB IN YARDS?\n",
                "WHAT IS ASPECT ANGLE (ANGLE ON THE TARGET BOW) IN DEGREES?\n",
                "HOW MANY TORPEDOS IN A SALVO?\n",
                "WHAT IS THE COVERAGE FACTOR? ( TORPEDO SPREAD + TARGET SHIP LENGTH)\n",
                "WHAT IS TORPEDO SPEED IN KNOTS?\n",
                "WHAT IS TORPEDO MAXIMUM RANGE IN YARDS?\n",
            ]))

    print("YOUR ANSWERS IN ORDER WERE ")
    print(' '.join(vector))
    if input("ARE THEY OK? YES/NO\n")=="YES":
        break
    else:
        print('\n'*5)

SW = list(
            map(yes_no_input,[
                    "DO YOU WANT TRACK PROBABILITIES DISPLAYED? YES/NO\n",
                    "DO YOU WANT TRACK ANGLE, RUN DISTANCE, RUN TIME, EFFECTIVE LENGTH, AND TL DISPLAYED? YES/NO\n",
                    "DO YOU WANT HITS DISPLAYED? YES/NO\n"
                ]))

while 1:
    print("IF YOU HAVE A VULNERABILITY VECTOR I’’LL COMPUTE EXPECTED LOSSES.")
    VUL = input("INPUT THE VECTOR STARTING WITH PROB OF LOSS GIVEN ONE HIT,PROB OF LOSS GIVEN TWO HITS, ...ETC. IF AVAILABLE. OTHERWISE HIT THE RETURN.\n")

    try:
        VUL = 0 if not VUL else (map(float, VUL.split()) if ' ' in VUL else [float(VUL)])
        SW.append(bool(VUL))
        break
    
    except:
        print('Please insert floats or integers in vectors')

【问题讨论】:

  • 缩进看起来不对 - 所有代码都应该在 attack() 函数定义中吗?
  • 那么我该如何解决它
  • 选择,点击Tab
  • 我没找到你
  • 编写的程序坏了——如果不先修复它就无法运行它,你需要学习一些 Python 才能修复它。

标签: python python-3.x list python-2.7 execution


【解决方案1】:

好的,我意识到你的程序中有两件事是错误的,一个是你的语法,另一个是为什么它不会运行

免责声明:您可能已经知道一些事情,但我会说出来以防万一

语法错误:

函数的语法应该是这样的

def {function name}():
   code

缩进很重要,因为 python 需要判断函数内部的代码

你的程序应该被编辑成这样的:

def attack():
    while 1:
        X = list(
            map(float_input, [
                "WHAT IS TARGET SHIP LENGTH IN FEET?\n",
                "WHAT IS TARGET SHIP BEAM IN FEET?\n",
                "WHAT IS TARGET SHIP SPEED IN KNOTS?\n",
                "WHAT IS RANGE TARGET TO SUB IN YARDS?\n",
                "WHAT IS ASPECT ANGLE (ANGLE ON THE TARGET BOW) IN DEGREES?\n",
                "HOW MANY TORPEDOS IN A SALVO?\n",
                "WHAT IS THE COVERAGE FACTOR? ( TORPEDO SPREAD + TARGET SHIP LENGTH)\n",
                "WHAT IS TORPEDO SPEED IN KNOTS?\n",
                "WHAT IS TORPEDO MAXIMUM RANGE IN YARDS?\n",
            ]))
    
        print("YOUR ANSWERS IN ORDER WERE ")
        print(' '.join(vector))
        if input("ARE THEY OK? YES/NO\n") == "YES":
            break
        else:
            print('\n' * 5)
    
    SW = list(
        map(yes_no_input, [
            "DO YOU WANT TRACK PROBABILITIES DISPLAYED? YES/NO\n",
            "DO YOU WANT TRACK ANGLE, RUN DISTANCE, RUN TIME, EFFECTIVE LENGTH, AND TL DISPLAYED? YES/NO\n",
            "DO YOU WANT HITS DISPLAYED? YES/NO\n"
        ]))
    
    while 1:
        print("IF YOU HAVE A VULNERABILITY VECTOR I’’LL COMPUTE EXPECTED LOSSES.")
        VUL = input(
            "INPUT THE VECTOR STARTING WITH PROB OF LOSS GIVEN ONE HIT,PROB OF LOSS GIVEN TWO HITS, ...ETC. IF AVAILABLE. OTHERWISE HIT THE RETURN.\n")
    
        try:
            VUL = 0 if not VUL else (map(float, VUL.split()) if ' ' in VUL else [float(VUL)])
            SW.append(bool(VUL))
            break
    
        except:
            print('Please insert floats or integers in vectors')

这样就解决了缩进,下一个问题就是为什么不运行了

为什么不运行:

可能性 1。 在python中,除非被调用,否则函数不会运行,因此在代码末尾添加一个 attack() 在代码的末尾

可能性 2。 如果这只是一段sn-p代码,而你在代码的另一部分调用attack(),那是因为你没有让它输出任何东西,或者返回任何东西,所以它无法显示它有跑了,即使它跑了。如果代码的目标是更改全局变量,那么在使用变量之前,在您的函数名称下添加您要更改的全局变量。如果您没有全局声明它,它可能不起作用,因此在每个范围之外,您必须在代码屏幕顶部将变量定义为 none。如果你在你的函数中定义变量,它就不会存在于它之外。我推荐阅读这篇文章:https://www.w3schools.com/python/python_scope.asp

感谢您阅读本文,希望对您有所帮助!

【讨论】:

    【解决方案2】:

    首先:用一个名字(让“firstpython.py”)保存文件,扩展名应该是“.py”

    第二:打开命令提示符/终端然后写,

    python "firstpython.py"
    

    如果文件没有错误,它将运行并显示所需的结果,否则它将在文件中显示错误(很可能是缩进错误)

    【讨论】:

      猜你喜欢
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 2018-12-10
      • 2020-04-01
      相关资源
      最近更新 更多