Python转换器-我卡住了
我在做一个货币转换器。转换器需要一个最小范围和最大范围,如果currecy的值高于或低于这些范围,转换器将要求您更改范围以能够转换货币。例如,如果用户将范围设置为最小范围3和最大范围7之间,则仅当货币值介于3和7之间时,他才能进行转换 将有几个货币类型的转换器,这就是为什么我使用第二个范围函数和输入文本等变量 大部分似乎都能工作,因为range函数似乎能提取最小范围、最大范围和答案值等。但我找不到方法将其返回到货币转换。我尝试将范围内的值更改为零,然后再尝试为它们、列表、循环和所有内容设置新值。尝试在范围内更改货币值后,Currency_convert仍显示相同的货币值。我如何将答案发送回currency_convert?我必须在范围内回答吗 你知道我做错了什么,该怎么做吗 这是脚本的一部分看起来像atm:Python转换器-我卡住了,python,converter,Python,Converter,我在做一个货币转换器。转换器需要一个最小范围和最大范围,如果currecy的值高于或低于这些范围,转换器将要求您更改范围以能够转换货币。例如,如果用户将范围设置为最小范围3和最大范围7之间,则仅当货币值介于3和7之间时,他才能进行转换 将有几个货币类型的转换器,这就是为什么我使用第二个范围函数和输入文本等变量 大部分似乎都能工作,因为range函数似乎能提取最小范围、最大范围和答案值等。但我找不到方法将其返回到货币转换。我尝试将范围内的值更改为零,然后再尝试为它们、列表、循环和所有内容设置新值。
def range(min_range, max_range, answer, inputtext):
if answer > min_range and answer < max_range:
return
else:
answer = 0
min_range = input("Set a min range for conversion: ")
max_range = input("Set a max range for conversion: ")
answer = input(inputtext)
Return answer (?)
def currency_convert():
min_range = input("min range: ")
max_range = input("max range: ")
inputtext = "How many dollars to convert: "
answer = input(inputtext)
range(min_range, max_range, answer, inputtext)
sek = answer * 3
print("%d is the same as" % (sek))
您应该返回所有必需的项目,我猜是min_range、max_range和answer,因为它们是在range函数中更改的项目,然后在currency_convert函数中接受它们。范例-
def newrange(min_range, max_range, answer, inputtext):
if answer > min_range and answer < max_range:
return min_range, max_range, answer
else:
answer = 0
min_range = input("Set a min range for conversion: ")
max_range = input("Set a max range for conversion: ")
answer = input(inputtext)
return min_range, max_range, answer
def currency_convert():
min_range = input("min range: ")
max_range = input("max range: ")
inputtext = "How many dollars to convert: "
answer = input(inputtext)
min_range, max_range, answer = newrange(min_range, max_range, answer, inputtext)
sek = answer * 3
print("%d is the same as" % (sek))
我还建议不要将函数或变量命名为范围,因为这会掩盖内置函数范围。首先给出一个简单的答案。呼叫应为应答=调整范围最小范围、最大范围、应答、输入文本。正如Sharon Dwilif K所说,调用函数范围是不好的,因为它会影响内置函数。那么函数中的最后一条语句就是return-answer 不过,听起来使用类可能会有所帮助。下面是一个使用类的完整工作示例:
class CurrencyConverter:
"""Convert currency within a certain range."""
RATES = {'USD_SEK': 3,
'USD_INR': 60}
def __init__(self, currency_from, currency_to):
self.currency_from = currency_from
self.currency_to = currency_to
self.min_range = 0
self.max_range = 0
self.amount_from = 0
def ask_range(self):
self.min_range = int(input("Set a min range for conversion: "))
self.max_range = int(input("Set a max range for conversion: "))
def calculate_amount_to(self):
self.ask_amount_from()
self.adjust_range()
rate_key = '%s_%s' % (self.currency_from, self.currency_to)
return self.amount_from * self.RATES[rate_key]
def ask_amount_from(self):
self.amount_from = int(
input("How many %s to convert: " % self.currency_from))
def adjust_range(self):
"""Makes sure the self.amount_from is within the range."""
if not self.min_range <= self.amount_from <= self.max_range:
self.ask_range()
self.ask_amount_from()
if __name__ == "__main__":
converter = CurrencyConverter('USD', 'SEK')
converter.ask_range()
sek = converter.calculate_amount_to()
print("%d is the result in SEK." % sek)
sek = converter.calculate_amount_to()
print("%d is another result in SEK." % sek)
converter = CurrencyConverter('USD', 'INR')
converter.ask_range()
inr = converter.calculate_amount_to()
print("%d is rupees." % sek)
太棒了,它能工作。非常感谢。只有一件事,Return应该是Return小r,否则你会得到错误。1+给你。谢谢你的贡献。