Python脚本在PowerShell中无法运行

1 投票
2 回答
1127 浏览
提问于 2025-05-01 05:29

我刚开始学Python,想自己摸索一下。 下面是我的Python程序。当我在Powershell里运行它的时候,它就卡住了。 程序不会显示任何输出,我也没有看到屏幕上有错误信息。

from sys import argv

script, name = argv

print "this is: ", script
print "my name is: ", name
age = raw_input("what is your age: ")
height = raw_input("what is your height")

print "so your name is %s, your age is %s and height is %r" %(name, age, height)

谢谢

暂无标签

2 个回答

0

这段代码是可以运行的:

from sys import argv

script, name = argv

print ("this is: ", script)
print ("my name is: ", name)
age = input("what is your age: ")
height = input("what is your height")

print ("so your name is {}, your age is {} and height is {}" .format(name, age, height))

在Python 3中有一些更新,所以我猜这可能是导致语法错误的原因。

我也是个新手(这是我在StackOverflow上的第一次回答),我一直在看《Learn Python the Hard Way》这本书。我遇到过和你一样的问题:

  1. 在Python 3中,raw_input这个函数不能用了。
  2. 打印的时候必须加上()。
  3. %r在通过命令行运行时似乎不太好用,我想知道这个问题的答案。
0

我不知道你为什么在PowerShell里没有看到任何错误,但你的代码有不少问题,大部分可能是因为复制粘贴出错了。不过导致程序卡住的原因在这一行:

script, name = argv

为了更好地理解这个问题,我们可以参考一下官方文档

sys.argv 是传递给Python脚本的命令行参数列表。 argv[0] 是脚本的名称(这取决于操作系统,可能是完整路径,也可能不是)。如果使用了 -c 这个命令行选项来执行命令,argv[0] 就会被设置为字符串 '-c'。如果没有传递脚本名称给Python解释器,argv[0] 就是一个空字符串。

所以你需要的应该是像这样(修正过的代码):

from sys import argv

script, name = argv[0], argv[1]

print "this is: ", script 
print "my name is: ", name 
age = raw_input("what is your age: ") 
height = raw_input("what is your height")

print "so your name is %s, your age is %s and height is %r" %(name, age, height)

撰写回答