Я получаю SyntaxError: (ошибка Unicode) 'Unicodeescape' кодек - PullRequest
0 голосов
/ 15 февраля 2012

Привет, я делаю простой код, который скоро должен быть. Я использую Wing IDE 4.1.3-1 и получаю это сообщение, когда запускаю код моей программы

SyntaxError: (ошибка Юникода) кодек unicodeescape не может декодировать байты в позиции 2-4: усеченный \ UXXXXXXXX escape (, строка 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='')

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

File "<string>" показывает, что ваша программа проходит через exec, скорее всего, передается там с помощью байтовой строки.Так что это, вероятно, упущение в IDE.

Причиной ошибки могут быть специальные символы где-то в вашем имени.В любом случае Python 3 должен с этим справиться, но Wing IDE, похоже, пытается сделать код совместимым с Python 2 ... и терпит неудачу.

Конечно, это в основном предположение, но вы должны рассмотреть возможность запуска своего сценария в команделиния, без какой-либо IDE.Я сделал, и это сработало.

0 голосов
/ 15 февраля 2012

Это ошибка в Wing 4.1.3, которую можно исправить с помощью «Проверить наличие обновлений» в меню «Справка».

...