【问题标题】:Python3 - Invalid character in identifier (within formula)Python3 - 标识符中的无效字符(在公式内)
【发布时间】:2014-04-11 02:09:49
【问题描述】:

第二个左括号在标识符中返回无效字符。该程序预计会打印出员工的月薪。我检查了我的缩进,它看起来很好,并在这里和那里删除了括号来替换。

#Input hoursWorked
#Input hourPay
#Ask “Consultancy income? (Leave blank if none)”
#   If value:
#       Input consultFee
#       monthlySalary = ((hourPay - (hourPay * 0.1)) * hoursWorked) + (consultFee – (consultFee * 0.2))
#   Elif no value:
#       monthlySalary = hoursWorked * hourPay
#print (“The monthly wage is $”,monthlySalary)

hoursWorked = input ("Hours worked: ")
hourPay = input ("Hour pay: $")

consultFee = input ("Consultant fee? (Leave blank if none): $")
if consultFee is '':
    monthlySalary = hourPay * 0.1
elif consultFee is not '':
    monthlySalary = ((hourPay - (hourPay * 0.1)) * hoursWorked) + (consultFee – (consultFee * 0.2))

print ("The monthly salary is: $",(int(monthlySalary)))

【问题讨论】:

  • 顺便说一句,使用 == 来测试等效性 (e.g. consultFree == '') 而不是 isis 测试身份,所以 '' is not False'' == False
  • 第二个左括号哎呀:(consultFee – ( ConsultFee * 0.2))
  • @AdamSmith 我在实现后将输入更改为 int(input("Hurr")) ,但这仍然对标识符中的无效字符没有帮助:/
  • 我重新输入了monthlySalary 行,错误消失了。
  • 你的文本编辑器是什么?它可能会将 - 转换为 m-dashes。

标签: python formula identifier


【解决方案1】:

您在该位置使用的减号不是常规减号(连字符减号)而是短划线。在同一行的前面,您有一个常规减号。对我来说很奇怪,您将两者都放在同一个文件中。您需要使用面向编程的文本编辑器,或者至少面向纯文本、无格式文本。

【讨论】:

  • 我在使用通用编程文本编辑器时遇到了同样的问题。问题源于粘贴来自维基百科的数字
【解决方案2】:

啊哈!这是一个棘手的错误。

>>> original = "–" # the second minus sign
>>> new = "-" # a regular minus sign
>>> ord(original)
8211
>>> ord(new)
45
>>> print(original == new)
False

我的猜测是,无论您使用什么文本编辑器,都会自动将减号 (-) 替换为 n 破折号 ()。这几乎是难以察觉的不同!我也会因为这个错误而自责多年。

【讨论】:

    猜你喜欢
    • 2017-06-10
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多