gpt4 book ai didi

python - 分配前引用的局部变量。可以在函数中分配全局变量吗?

转载 作者:行者123 更新时间:2023-12-03 08:20:04 38 4
gpt4 key购买 nike

我收到错误消息:赋值之前引用了局部变量'import_tax'。我在5分钟前就可以使用它了,但无法弄清楚该如何做或如何解决。尝试获取代码以根据是否满足某些条件来计算税额,即。豁免或进口等

我想我对全局变量的分配感到困惑。比如我是否应该在函数之前分配import_tax和sales_tax = 0或类似的东西?但这将返回所有税款= 0,即使应将其添加到税款中。这是我的代码:

exempt_items = ['book', 'food', 'chocolate', 'medicine' ]

item_dict = {}

def main():
add_item = input("Add item? Y/N: ")
while add_item.capitalize() == 'Y':
quantity = input("How many? ")
item_to_add = input("Item: ")
original_price = float(input("Price: "))
imported = False
exempt = False
if 'import' in item_to_add:
imported = True
for i in range(0, len(item_to_add.split())): # search string see if exempt or not
item_to_add = item_to_add.rstrip('s') # remove plurals
if item_to_add.split()[i] in exempt_items:
exempt = True
if imported == True:
import_tax = original_price*0.05 # add 5% on imported goods
print("Imported", imported)
if exempt == False:
sales_tax = original_price*0.1 # add 10% if not exempt add to total sales tax
print("Exempt", exempt)
print("IT:",import_tax, "ST", sales_tax)
total_tax = sales_tax + import_tax
final_price = round((original_price + total_tax) * float(quantity), 2)
item_to_add = quantity + ' ' + item_to_add
item = {item_to_add: final_price}
item_dict.update(item)
print("Final Price", final_price)
add_item = input("Add item? Y/N ")
print('-------------------')
for key, val in item_dict.items():
print (key, ':', val)
print('-------------------')
print("Sales Taxes:",round(total_tax, 2))
print("Total:",round(sum(item_dict.values()) , 2))
print('-------------------')


if __name__ == '__main__':
main()

因此,例如输入10的“进口巧克力”应返回:
1进口巧克力:10.50
营业税:0.50
合计:10.50

最佳答案

您应该在设置它们的if语句之前将import_taxsales_tax声明为0。这是因为如果importedFalse,那么您将不会为其分配值,并且会得到引用错误。

关于python - 分配前引用的局部变量。可以在函数中分配全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57060709/

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