Моя функция возвращает новую строку с «Нет» - PullRequest
1 голос
/ 18 июня 2020

Это мой код:

def pomo_code_apply():
    if success_name==1:
        print(" "*79,'-$3.00')
    if success_name==3:
        print(" "*78, '-$10.00')
    if success_name==2:
        print(" "*79, '-$7.00')
    else:
        print()

, и это для вызова функции

        if success==1:
            print('   Promotion Code',pomo_code_apply())

, однако для моего вывода я получаю это (для этого, например, let success_name == 1 )

                                                                               -$3.00

   Promotion Code None

, но я хочу, чтобы это было так:

Promotion Code                                                             -$3.00

Я не знаю, почему появилась новая строка для -3 и почему pomo_code_apply() возвращает и none, и -3

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

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

Код:

success_name = 1
def pomo_code_apply(success_name):
    if success_name==1:
        a =  " "*79 + '-$3.00'
        return a
    if success_name==3:
        a = " "*78 + '-$10.00'
        return a
    if success_name==2:
        a = " "*79 + '-$7.00'
        return a
    else:
        return

print('Promotion Code {}'.format(pomo_code_apply(success_name)))

Вывод:

Promotion Code                                                                                -$3.00
1 голос
/ 18 июня 2020

Все функции возвращают что-то . Если вы не укажете, что возвращать, по умолчанию будет указано None. Вы печатаете все, что возвращает promo_code_apply(), а поскольку вы не указываете, что он возвращает, он печатает None. Таким образом, ваш вариант - либо исключить Promo_code_apply () из вызова print (), например:

if success == 1:
        print('   Promotion Code', end='')
        pomo_code_apply()

, либо указать, что возвращает pomo_code_apply (), например:

def promo_code_apply():
    if success_name==1:
        return "{}-$3.00".format(" "*79)
    if success_name==2:
        return "{}-$7.00".format(" "*79)
    if success_name==3:
        return "{}-$10.00".format(" "*79)
    else:
        return ""

Но если вы идете по этому пути, вы можете удалить форматирование из promo_code_apply() и вставить его позже:


def pomo_code_apply():
    if success_name==1:
        return "-$3.00"
    if success_name==2:
        return "-$7.00"
    if success_name==3:
        return "-$10.00"
    else:
        return ""

if success == 1:
        print("   Promotion Code {}{}".format(" "*79, promo_code_apply()))
...