【发布时间】:2012-02-14 21:45:37
【问题描述】:
您好,我正在编写一个即将到期的简单代码。我正在使用 Wing IDE 4.1.3-1,运行程序代码时不断收到此消息
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape (, line 4)
这是我的程序:
#=====================================================================
# Program: Calculating Sales
# Programmer: Viet-Anh Tran
# Date: 2-14-2012
# July 1, 2011 - Revised for Python 3
# Abstract: This program processes highest sales, lowest sales,
# and averages the total numnber of sales. Each
# salesperson will be asked enter the amount they sold
# and the price of each sale.
#=====================================================================
def main():
#create variable to control loop
keep_going = 'y'
#process each salperson's sales
while keep_going == 'y' or keep_going == 'Y':
#use a function to process sales
show_sales()
keep_going = input("would you like to calculate another salesperson's" +
"sales? (enter y or Y as yes to continue) ")
#define show_sales
def show_sales():
#ask for name of salesperson
name = input("What is the salesperson's name? ")
#ask for first sales amount
print('Enter', name, "'s first sale amount: ")
first_sale = float(input())
#when assigning a value for first sale make sure its bewtween 1-25000
while first_sale < 1 or first_sale > 25000:
#prompt error message if it does not meet within range
print('ERROR: First sale amount must fall in the range of $1-$25,000.')
#ask user again for CORRECT amount
print('Please enter', name, "'s correct first sale amount:")
first_sale = float(input())
#assign all total highest and lowest sales to first sale
total_sale = first_sale
highest_sale = first_sale
lowest_sale = first_sale
#ask for the total number of sales
print('Are there any more sales? If so, type in the total number of sales:')
number_sales = int(input())
#create a loop
for sale in range(2, number_sales + 1):
print('What is', name, "'s next sales amount?")
sales_amount = float(input())
#again make sure that it is within range and ask the correct amount again
while sales_amount < 1 or first_sale > 25000:
print('ERROR: Sale amount must fall in the range of $1-$25,000.')
print('Please enter', name, "'s correct sale amount:")
sales_amount = float(input())
#accumulate the total sales
total_sales += sales_amount
#this assigns the lowest and highest value to the correct variable
if sales_amount > highest_sale:
highest_sale = sales_amount
if sales_amount < lowest_sale:
lowest_sale = sales_amount
#calculate average and print highest, lowest, and average
average_sales = total_sales / number_sales
print(name, "'s highest sale: $", format(highest_sale, ',.2f'), sep='')
print(name, "'s lowest sale: $", format(lowest_sale, ',.2f'), sep='')
print(name, "'s sale on average: $", format(average_sale, ',.2f'), sep='')
【问题讨论】:
-
这可能不是您的 SyntaxError 的原因,但请不要使用浮点数进行货币计算 - 这并不可靠。
-
那是确切的错误信息吗?它对应于哪个源代码行?你会怎么做才能看到这个错误信息?
-
好的,这是完整的错误:Traceback(最近一次调用最后一次):文件“
”,第 4 行,在 语法错误:(unicode 错误)'unicodeescape'编解码器不能解码位置 2-4 中的字节:截断 \UXXXXXXXX 转义( ,第 4 行)[评估 TranVPR5.py] -
这里有一些作品。您先分配给
total_sale,然后使用total_sales,最后您尝试打印之前未定义的average_sale,但没有编码问题。 -
你以一种几乎不可读的方式混合了 "" 和 '',例如print('What is', name, "'s next sales amount?").您可以使用 3x 引号 (""") 终止多行字符串。
标签: python python-3.x syntax-error wing-ide