「已注销」 2022-05-18 18:34 采纳率: 79.3%
浏览 19
已结题

python的sys运行错误问题

img

请问为什么只要有sys的我就运行不了,我要怎么解决这个问题。

第一个是:


import sys
def gcd(p,q):
    if q==0:return p
    return gcd(q,p%q)
p=int(float(sys.argv[1]))
q=int(float(sys.argv[2]))
print(gcd[p,q])

第二个代码是:

import sys
import turtle
def koch(t,order,size):
        if order==0:
            t.forward(size)
        else:
            koch(t,order-1,size/3)
            t.left(60.0)
            koch(t,order-1,size/3)
            t.left(120.0)
            koch(t,order-1,size/3)
            t.left(60.0)
            koch(t,order-1,size/3)
def main():
    n=int(sys.argv[1])
    step=300
    p=turtle.Turtle()
    koch(p,n,step)
if __name__=='__main__':main()

  • 写回答

1条回答 默认 最新

  • 勿子杳 2022-05-18 19:32
    关注
    
    (base) PS F:\python\python_test> python.exe test1.py
    Traceback [1;36m(most recent call last)[0m:
      File [0;32mF:\python\python_test\test1.py:21[0m in [0;35m<module>[0m
        main()
    [1;36m  File [1;32mF:\python\python_test\test1.py:15[1;36m in [1;35mmain[1;36m[0m
    [1;33m    n=int(sys.argv[1])[0m
    [1;31mIndexError[0m[1;31m:[0m list index out of range
    
    (base) PS F:\python\python_test> python.exe test1.py 10
    

    sys.argv 是从控制台取参数;如果直接运行的话,类似 python.exe test1.py 的效果,sys.argv 只有一个文件名test1.py作为输入,没有第二个参数,所以 n=int(sys.argv[1]) 会报错;按照python.exe test1.py 10,添加了额外的参数 10,就跑起来了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 已采纳回答 5月25日
  • 创建了问题 5月18日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助