ValueError: недопустимый литерал для int () с основанием 10: '' при запросе ввода

1

Написание примерной программы для класса. Продолжайте получать эту ошибку:

ValueError: invalid literal for int() with base 10: ''

в строке 1.

Вот блок, содержащий ошибку. Программа работает вполне нормально, но тестирование программного обеспечения для школы не позволяет это сделать. Что я делаю неправильно?

"""
HouseSign.py - This program calculates prices for custom house signs.
"""

# Declare and initialize variables here.
    # Charge for this sign.
    # Number of characters.
    # Color of characters.
    # Type of wood.
charge = 0
numChars = int(input("How many letters do you want? "))
color = input("What color letters do you want? ")
woodType = input("What type of wood do you want? ")

if numChars < 5:
    charge = charge + 0
else:
    charge = charge + 0
if numChars >= 6:
    charge = (numChars - 5 ) * 4
else:
    charge = charge + 0

if color=="gold":
    charge = charge + 15
else:
    charge = charge + 0
if woodType=="oak":
    charge = charge + 20
else:
    charge = charge + 0

charge = charge + 35  
# Write assignment and if statements here as appropriate.

# Output Charge for this sign.
print("The charge for this sign is $" + str(charge) + ".")
Теги:
python-3.x

1 ответ

0

Как уже упоминалось в комментариях, вы, вероятно, введете без какой-либо ценности:

попробуй это:

while True:
    try:
       numChars = int(input("How many letters do you want? "))
       break
    except:
       print("Oops, make sure you're entering a valid value")
while True:
    try:
       color = input("What color letters do you want? ")
       break
    except:
       print("Oops, make sure you're entering a valid value")
while True:
    try:
       woodType = input("What type of wood do you want? ")
       break
    except:
       print("Oops, make sure you're entering a valid value")

Это просто: он "пытается" запускать код, но если он получает ошибку, он снова попросит ввод и распечатает все, что есть, за исключением, из-за цикла while. Он ломается каждый раз, когда он делает правильную вещь. Удачи!

EDIT:

BTW, рассмотрим использование charge += 2 вместо charge = charge + 2. Это просто ярлык, но делает код чище.

  • 0
    Отлично, это работает. Спасибо всем за ваше время и вклад!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню