gpt4 book ai didi

Python - 名称错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:55 24 4
gpt4 key购买 nike

我有以下代码使用 3 个字符串 'us dollars','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)

最佳答案

命令行

python currencyManager.py "us dollars" "euro" 100 "02-11-2014"

不会自动将 "us dollars""euro"100 "02-11-2014"分配给 currTo,currFrom,currAmount,currDate。相反,命令行参数存储在列表中,sys.argv .您需要解析 sys.argv 和/或将其值传递给对 currencyManager 的调用:

例如,改变

currencyManager(currTo,currFrom,currAmount,currDate)

import sys
currencyManager(*sys.argv[1:5])

sys.argv 中的第一个元素是脚本名称。因此 sys.argv[1:5] 由脚本名称后的接下来的 4 个参数组成(假设在命令行中输入了 4 个参数。)您可能需要检查参数数量是否正确在命令行上传递并且它们是正确的类型。 The argparse module可以在这里为您提供帮助。

*sys.argv[1:5]中的* unpacks the list sys.argv[1:5] 并将列表中的项目作为参数传递给函数 currencyManager

关于Python - 名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26700240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com