我有下面的代码,它使用3个字符串“us$”、“euro”、“02-11-2014”, 和一个数字来计算给定日期的汇率。我修改了 代码来传递这些参数,但是当我尝试用
python currencyManager.py "us dollars" "euro" 100 "02-11-2014"
Traceback (most recent call last):
File "currencyManager.py", line 37. in <module>
currencyManager(currTo,currFrom,currAmount,currDate)
NameError: name 'currTo' is not defined
我对Python还比较陌生,所以我的知识有限。任何帮助都将不胜感激。谢谢。 我使用的Python版本也是3.4.2。你知道吗
import urllib.request
import re
def currencyManager(currTo,currFrom,currAmount,currDate):
try:
currency_to = currTo #'us dollars'
currency_from = currFrom #'euro'
currency_from_amount = currAmount
on_date = currDate # Day-Month-Year
currency_from = currency_from.replace(' ', '+')
currency_to = currency_to.replace(' ', '+')
url = 'http://www.wolframalpha.com/input/?i=' + str(currency_from_amount) + '+' + str(currency_from) + '+to+' + str(currency_to) + '+on+' + str(on_date)
req = urllib.request.Request(url)
output = ''
urllib.request.urlopen(req)
page_fetch = urllib.request.urlopen(req)
output = page_fetch.read().decode('utf-8')
search = '<area shape="rect.*href="\/input\/\?i=(.*?)\+.*?&lk=1'
result = re.findall(r'' + search, output, re.S)
if len(result) > 0:
amount = float(result[0])
print(str(amount))
else:
print('No match found')
except URLError as e:
print(e)
currencyManager(currTo,currFrom,currAmount,currDate)
命令行
不会自动将“us DOURS”“euro”100“02-11-2014”分配给currTo、currFrom、currAmount、currDate。 相反,命令行参数存储在列表sys.argv中。 你需要分析系统argv和/或将其值传递给对currencyManager的调用:
例如,改变
至
sys.argv
中的第一个元素是脚本名。因此sys.argv[1:5]
由脚本名后面的4个参数组成(假设在命令行上输入了4个参数)。您可能需要检查在命令行上传递的参数数量是否正确,以及它们的类型是否正确。The ^{在
*sys.argv[1:5]
unpacks the listsys.argv[1:5]
中的*
并将列表中的项作为参数传递给函数currencyManager
。你知道吗相关问题 更多 >
编程相关推荐