Пользовательский ввод Python 3.4

Я хочу написать небольшой скрипт, чтобы сказать мне, в порядке ли уровень баса с пользовательского ввода.

Я просто изучаю пользовательский ввод, и это то, что у меня есть до сих пор:

def crisp():
    bass = input("Enter bass level on a scale of 1 to 5>>")
    print ("Bass level is at") + bass
    if bass >=4:
       print ("Bass is crisp")    
    elif bass < 4:
       print ("Bass is not so crisp")

person jahrich    schedule 06.02.2015    source источник
comment
В чем проблема? Судя по всему, вам нужно преобразовать bass в int. Ваш первый оператор print также должен иметь все в квадратных скобках.   -  person Holloway    schedule 06.02.2015
comment
В чем вопрос?   -  person Peter Mortensen    schedule 06.02.2015


Ответы (3)


Я действительно не вижу здесь проблемы, но просто простая программа, которая делает это, и только это будет так:

a=1
while a==1:
    try:
        bass = input('Enter Bass Level: ')
        print('Bass level is at ' + str(bass))
        if bass >=4:
            print("Bass is crisp")
        elif bass < 4:
            print('Bass is not so crisp')
        a=0
    except ValueError:
        print('Invalid Entry')
        a=1

Не большая разница с функцией:

def Bass():
    a=1
    while a==0:
        try:
            bass = input('Enter Bass Level: ')
            print('Bass level is at ' + str(bass))
            if int(bass) >=4:
                print("Bass is crisp")
            elif bass < 4:
                print('Bass is not so crisp')
            a=0
    except ValueError:
        print('Invalid Entry')
        a=1
person Ben Morris    schedule 06.02.2015
comment
Ваш код рассчитан на Python 2.x. В Python 3.x raw_input из 2.x является поведением по умолчанию input в 3.x. Учитывая, что в заголовке упоминается 3.4, этот ответ технически неверен, но, возможно, полезен. Для будущих зрителей: используйте raw_input вместо input в коде Python 2.x из соображений безопасности. - person Poik; 06.02.2015
comment
Спасибо за объяснения. Я еще не использовал попытку. Я это проверю. - person jahrich; 06.02.2015
comment
Очень полезно. поскольку я учусь во 2 и использую 3 интерпретатора IDLE. - person jahrich; 06.02.2015
comment
@jahrich этот ответ неточен, во-первых, отступ отключен. Во-вторых, вы не можете поймать SyntaxError таким образом в python-3.x - person A.J. Uppal; 06.02.2015
comment
@ А.Дж. Я исправил SyntaxError на ValueError и исправил басовую переменную. для 3.4. - person Ben Morris; 06.02.2015
comment
@jahrich обратите внимание, что в версии 3.4 печать является функцией и должна использоваться как печать (текст, конечный символ) и не может иметь ничего за пределами круглых скобок, иначе она выдает ошибку. - person Ben Morris; 06.02.2015

Когда вы принимаете input() через встроенную функцию, она принимает ввод в виде строки.

>>> x = input('Input: ')
Input: 1
>>> x
"1"

Вместо этого приведите int() к вашему input():

>>> x = int(input('Input: '))
Input: 1
>>> x
1

В противном случае в вашем коде вы проверяете if "4" == 4:, что никогда не соответствует действительности.

Таким образом, вот ваш отредактированный код:

def crisp():
    bass = int(input("Enter bass level on a scale of 1 to 5>>"))
    print ("Bass level is at") + bass
    if bass >=4:
       print ("Bass is crisp")    
    elif bass < 4:
       print ("Bass is not so crisp")
person A.J. Uppal    schedule 06.02.2015
comment
Если вы используете Python 2.x, не используйте input, всегда используйте raw_input. - person Poik; 06.02.2015
comment
Да, @BenMorris, но в python-2.x я бы предложил использовать raw_input() :) - person A.J. Uppal; 06.02.2015
comment
@Poik правильно, спасибо :) - person A.J. Uppal; 06.02.2015

Преобразовать в целое число:

bass = int(input("Enter bass level on a scale of 1 to 5>>"))
person Malik Brahimi    schedule 06.02.2015
comment
Спасибо, я не определил бас как целое число. :) - person jahrich; 06.02.2015
comment
Обязательно проголосуйте или отметьте как ответ. - person Malik Brahimi; 06.02.2015