<p>完全披露,我是完全新的编程,所以我提前道歉。我正在编写这个python脚本,它将获取用户输入并在某些OS命令(ping、traceroute、whois)中使用这些输入。虽然不完整,但脚本如下:</p>
<pre><code>#!/usr/bin/python
from os import system
def pingz():
system('ping -c 5 %(ab)s' % locals())
def trace_route():
system('traceroute %(cd)s' % locals())
print("My Web Utility:")
print("____________________\n")
print(" 1)Ping a website/IP Address.\n")
print(" 2)Trace the route to a website/IP Address.\n")
print(" 3)Whois inforation.\n")
choice = raw_input("What would you like to do? \n")
if choice == '1':
ab = raw_input("Please enter the Domain Name/IP Address:\n")
pingz()
elif choice == '2':
cd = raw_input("Please enter the Domain Name/IP Address:\n")
trace_route()
</code></pre>
<p>我在每个“选择”上都有两个错误。例如,如果我键入1,我会得到一个提示,要求输入域名/ip地址,当我输入时,得到的错误是:</p>
<pre><code>Traceback (most recent call last):
File "./test2.py", line 19, in <module>
pingz()
File "./test2.py", line 6, in pingz
system('ping -c 5 %(ab)s' % locals())
KeyError: 'ab'
</code></pre>
<p>选择2也有类似的错误。我调用函数的方式有问题吗?有人能给我指一下正确的方向吗?我已经尝试过这个脚本的较小的实现(没有创建自己的函数)并且没有else/elif语句,它工作得很好。。。抱歉发了这么长的帖子,提前谢谢!你知道吗</p>