Кажущийся пробел в конце строки

#python

#python

Вопрос:

привет, итак, я отправляю свой код через веб-сайт code homework, который использует моя школа, и по какой-то причине он говорит, что что-то не так с моим интервалом в строке с суммой денег в нем, как вы можете видеть на скриншоте ниже, результат слева является ожидаемым, а тот, что справа, — это то, что я получаю. Что не так с моим кодом, который это делает? Также в конце каждого из моих выходных данных также выводится ‘None’.? почему?

Комментарии:

1. Also at the end of each of my outputs it also prints 'None'.? why? Не вижу этого на вашем прикрепленном изображении, указывая на тот факт, что загрузка изображений вместо фактического фрагмента кода не рекомендуется, поскольку это затрудняет пользователям его понимание / отладку.

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

3. Нет необходимости возвращать print, когда вы уже печатаете в основном вызове

4. PS. вам не нужно, чтобы все это пространство занимало дополнительные строки.

Ответ №1:

Одна из проблем заключается в том, что ваша функция thank_donor возвращает функцию print, а затем вы снова вызываете функцию print для ЭТОГО. Вы хотите, чтобы функция возвращала просто строку, которую затем можно распечатать.

Ответ №2:

 def thank_donor(first_name, last_name, amount, donor_status):
    """prints thank you note with variables in"""


    last = last_name.upper() 
    first = first_name.capitalize() 



    print(
        "----------------------------------------"  
        "n"  

        "Note to donor:", last   ",", first  

        "n"   

        "----------------------------------------"  
        "n"   

        "Dear", first   ","   
  

Здесь не используйте «,» в конце «{:.2f}».format(amount) потому что это приводит к пробелу, вместо этого используйте » «.

         "n"   
        "Thank you for your donation of", "$"    "{:.2f}".format(amount)  
        "n"  
        "to our album campaign."  

        "n"   

        "This makes you a", donor_status, "member." 
        "n"   

        "ROCK ON,"  
        "n"    
        "Blink 992"   

        "n"   


        "========================================")
  

Не используйте функцию print несколько раз, как в самой функции, так и при вызове функции.

 thank_donor("joe", "bloggs", 100, "Bronze")
  

Ответ №3:

 def thank_donor(first_name, last_name, amount, donor_status):
    """prints thank you note with variables in"""

    last = last_name.upper() 
    first = first_name.capitalize()         
    return print(
        "----------------------------------------"  
        "n"  
        "Note to donor:", last   ",", first  
        "n"   
        "----------------------------------------"  
        "n"   
        "Dear", first   ","   
        "n"   
        "Thank you for your donation of", "$"    "{:.2f}".format(amount),
        "n"  
        "to our album campaign."  
        "n"   
        "This makes you a", donor_status, "member." 
         "n"   
        "ROCK ON,"  
        "n"    
        "Blink 992"   
        "n"   
        "========================================")

thank_donor("joe", "bloggs", 100, "Bronze")
  

Попробуйте этот код. Проблема в том, что вы печатаете none в конце. Это происходит потому, что вы возвращаете print функцию в другую print функцию, т.е. print(print(#something#) . Просто удалите любой из этих print операторов.