Программа для интернет-провайдера

Я создал свой собственный класс для извлечения метаданных на основе модифицированной версии streamscraper . Используйте этот jar (streamscraper), этот jar (jsoup) и этот класс для извлечения метаданных. Интерфейс похож на MediaMetadataRetriever:

ShoutCastMetadataRetriever smr = new ShoutCastMetadataRetriever();
smr.setDataSource();
String artist = smr.extractMetadata(ShoutCastMetadataRetriever.METADATA_KEY_ARTIST);
String title = smr.extractMetadata(ShoutCastMetadataRetriever.METADATA_KEY_TITLE);

Я не верю, что метаданные SHOUTcast поддерживают обложку альбома, поэтому вы не сможете ее восстановить.

2
задан Sleepy 6 March 2019 в 23:43
поделиться

3 ответа

Вы можете передать в функцию несколько параметров.

def printBill(bill)

становится:

def printBill(bill,hours):

, и вы называете его с помощью:

printBill(bill,hours)

Вам также нужно будет передать его getSavings таким же образом.

0
ответ дан Nick Vitha 6 March 2019 в 23:43
поделиться

Вам нужно потратить часы на каждую функцию, которая должна ее использовать, также, когда вы ВОЗВРАЩАЕТЕ что-то, ей нужно место для возврата. Итак, вы говорили, что часы были < 10, верните 9.95, но когда вы говорите, что он возвращает, он отправляет код обратно в место, где он был вызван, вы не присваиваете его переменной, поэтому по умолчанию для счета устанавливается $ 1. Вот обновленный код для работы

    #Bill for Package A
def getPackageA(hours):
    if hours < 10:
        return 9.95 #Cost of Package A
    else:
        return (hours-10)*2 + 9.95


#Bill for Package B
def getPackageB(hours):
    if hours < 20:
        return 13.95 #Cost of Package B
    else:
        return (hours - 20) + 13.95


#Bill for Package C
def getPackageC():
    return 19.95 #Cost of Package C


#Print Bill and savings
def printBill(bill, hours):
    if (bill != 0):
        print("Your monthly bill is $", format(bill, '.2f'), sep='')
        getSavings(bill, hours)
        print('\n')


#Checks and display savings if applicable
def getSavings(bill, hours):
    if bill > getPackageA(hours):
        print("If you had package A, you'd save $",\
            format(bill - getPackageA(hours),'.2f'), sep='')
    if bill > getPackageB(hours):
        print("If you had package B, you'd save $",\
            format(bill - getPackageB(hours),'.2f'), sep='')
    if bill > getPackageC():
        print("If you had package C, you'd save $",\
              format(bill - getPackageC(), '.2f'), sep='')


def main():
    bill = 1
    #Asks user to enter choice of package and hours used
    packageChoice = str(input("Enter package purchased (A, B, or C): "))
    hours = int(input("Enter the number of hours used: "))

    if packageChoice in ('a', 'A') :
        bill = getPackageA(hours)
    elif packageChoice.lower() == 'b':
        bill = getPackageB(hours)
    elif packageChoice.upper() == 'C':
        bill = getPackageC()
    else:
        print("Package choice must be A, B, or C.")

    printBill(bill, hours)


main()

Я также отредактировал вашу функцию main (), чтобы показать вам различные способы проверки ответов. Вам также не нужно заключать вещи в скобки в Python в операторах IF.

0
ответ дан Ari Victor 6 March 2019 в 23:43
поделиться

Чтобы ответить на ваш вопрос, вы можете просто сделать:

bill = 1
bill += getPackage()  # call function and add return value to total bill
printBill(bill)
0
ответ дан daaawx 6 March 2019 в 23:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: