If语句(python/html)
我试图计算税收,但每当我试图执行if语句时,它会说“BC”未定义。关于税收的国际单项体育联合会声明已接近尾声。欢迎提供任何帮助。这是我的密码: 导入cgi form=cgi.FieldStorage()If语句(python/html),python,html,Python,Html,我试图计算税收,但每当我试图执行if语句时,它会说“BC”未定义。关于税收的国际单项体育联合会声明已接近尾声。欢迎提供任何帮助。这是我的密码: 导入cgi form=cgi.FieldStorage() #打印HTTP/HTML头文件 打印“”内容类型:文本/html 订单 """ #使用表单数据打印HTML正文 印刷“专业画家” 打印“客户接收” 打印“客户名称:”,表单[“客户名称]。值“” 打印“客户电子邮件地址:”,表单[“customerEmail”]。值“” 打印“客户地址:” 打印
#打印HTTP/HTML头文件
打印“”内容类型:文本/html
订单
"""
#使用表单数据打印HTML正文
印刷“专业画家”
打印“客户接收”
打印“客户名称:”,表单[“客户名称]。值“”
打印“客户电子邮件地址:”,表单[“customerEmail”]。值“”
打印“客户地址:”
打印“街道:”表格[“客户添加”]。值“”
打印“City:”,表单[“customerCity”]。值“”
打印“省:”,表单[“customerProv”]。值“”
打印“邮政编码:”,表单[“customerPostal”]。值“”
打印“付款信息:”
打印“卡片类型:”,表单[“类型1”]。值“”
打印“卡号:XXXX-XXXX-XXXX-”,表格[“four4”]。值“”
打印“到期日期:”,表格[“到期”]。值“”
打印“订购的产品”
q1=整数(形式[“数量”]值)*2
q2=int(形式[“数量2”].值)*1
q3=整数(形式[“数量3”]值)*150
q4=整数(形式[“数量4”]值)*3
q5=int(形式[“数量5”]值)*10
如果form.getvalue(“内部”):
打印“内部喷漆数量:”,表格[“数量”]。值“”
打印“成本:$”,第1季度“.00”
其他:
q1=0
打印“内部喷漆数量:0
成本:$0”
如果form.getvalue(“外部”):
打印“外部喷漆数量:”,表格[“数量2”]。值“”
打印“成本:$”,第二季度“.00”
其他:
q2=0
打印“外部喷漆数量:0
成本:$0”
如果form.getvalue(“压力”):
打印“压力清洗量:”,表格[“量3”]。值“”
打印“成本:$”,第三季度“.00”
其他:
q3=0
打印“压力清洗量:0
成本:$0”
如果form.getvalue(“wood”):
打印“木材饰面数量:”,表格[“数量4”]。值“”
打印“成本:$”,整数(表格[“数量4”].value)*3,“.00”
其他:
q4=0
打印“木屑数量:0
成本:$0”
如果form.getvalue(“spraycan”):
打印“喷雾罐数量:”,表格[“数量5”]。值“”
打印“成本:$”,整数(表格[“数量5”].value)*10,“.00”
其他:
q5=0
打印“喷雾罐数量:0
成本:$0”
如果form.getvalue(“电子邮件”):
打印“电子邮件通知将发送到”,表单[“customerEmail”]。值,”
总计=q1+q2+q3+q4+q5
打印“购买商品的总成本为美元:”,总计
def折扣():
返回浮动(总计*0.15)
disc=折扣()
disc2=0
如果总数>150:
打印“折扣:$”,浮动(光盘),“”
其他:
总计150,格式为[“customerProv”]。值==BC或BC或BC:
打印“税:$”,浮动((总光盘))*0.12“”
elif总计150和表格[“customerProv”]。值==BC或BC或BC或BC和form.getvalue(“giftwrap”):
打印“税:$”,浮动((总光盘)+giftwrp))*0.12“”
elif总计<150且形式为[“customerProv”]。值==BC或BC或BC或BC且形式为.getvalue(“giftwrap”):
打印“税:$”,浮动((总计+giftwrp))*0.12,“
elif总计>150,并形成[“customerProv”]。值!=卑诗省或卑诗省或卑诗省或卑诗省:
打印“税:$”,浮动((总光盘))*0.12“”
elif总计150和表格[“customerProv”]。值!=BC或BC或BC或BC和form.getvalue(“giftwrap”):
打印“税:$”,浮动((总光盘)+giftwrp))*0.12“”
elif总计<150,并形成[“客户批准”]。值!=BC或BC或BC或BC和form.getvalue(“giftwrap”):
打印“税:$”,浮动((总计+giftwrp))*0.12,“
打印“”
您正在引用变量BC
,BC
等等:
if total > 150 and form["customerProv"].value == BC or bc or Bc or bC:
…但你从来没有告诉Python它们的意思!因此Python向您抛出了一个错误。你想用字符串吗
if total > 150 and form["customerProv"].value == "BC" or "bc" or "Bc" or "bC":
不过,这也将失败。这是因为在Python中不能像这样链接或。应分别检查每个值的相等性:
if total > 150 and form["customerProv"].value == "BC" or form["customerProv"].value == "bc" or form["customerProv"].value == "Bc" or form["customerProv"].value == "bC":
如果要将一个值与一组其他值进行比较,另一个选项是以下(更整洁?)代码:
if total > 150 and form["customerProv"].value in {"BC", "bc", "Bc", "bC"}:
…检查值是否在该集合中
在您的特定情况下,最简洁的方法是注意,您正在对同一字符串的一组不同大小写版本进行比较。如果将要比较的字符串转换为大写,则可以非常简单地进行比较:
if total > 150 and form["customerProv"].value.upper() == "BC":
(建议)这仍然不起作用,因为的“BC”或“BC”
总是正确的。是的,在我发布答案后就发现了这一点。。。我这方面的一个不幸疏忽!我一直在编辑我的帖子来修复它:如果总数大于150,我甚至可以使用和form[“customerProv”].value.upper()='BC':
,而不是设置这是真的,而且更整洁!我当时的想法是,这是一个关于链接比较的更一般的问题,不过,在这种情况下,集合可能是最整洁的处理方法。但我会在我的答案中加入这一点,因为这是一种非常巧妙的方式来完成他正在做的事情
if total > 150 and form["customerProv"].value.upper() == "BC":