为什么我的代码中没有输出 3 倍?

所以我正在练习用python编码。如果我需要返回一个数字,我总是使用 return 语句,所以我什么也得不到。但是现在当我只想打印出评论时,它不会返回任何内容。即使我尝试使用 return 语句,它也会返回 none。


def name_tag():

    name = input("Hello, whats your name? : ")

    print(f'Hi {name}, would you like to play a game?')

    print(y_n())


def y_n():

    yes_no = input("Y/N: ")


    if yes_no.lower() == 'y':

        print('Cool, than lets play a game')


    elif yes_no.lower() == 'n':

        print('To bad!')


    else:

        print('Please anwser with [y] or [n]')

        print(y_n())

这是输出


Hello, whats your name? : jop

Hi jop, would you like to play a game?

Y/N: k

Please anwser with [y] or [n]

Y/N: y

Cool, than lets play a game

None

None

None


慕标5832272
浏览 104回答 3
3回答

临摹微笑

print(y_n())打印函数的返回值y_n。该值是隐含None的,因为该函数不返回任何内容。

繁华开满天机

您正在打印 的结果y_n(),请None尝试以下操作:def name_tag():    name = input("Hello, whats your name? : ")    print(f'Hi {name}, would you like to play a game?')    y_n()def y_n():    yes_no = input("Y/N: ")    if yes_no.lower() == 'y':        print('Cool, than lets play a game')    elif yes_no.lower() == 'n':        print('To bad!')    else:        print('Please anwser with [y] or [n]')        y_n()如果您想使用print(y_n()),您可以更改它,以便从以下位置返回字符串y_n():def name_tag():    name = input("Hello, whats your name? : ")    print(f'Hi {name}, would you like to play a game?')    print(y_n())def y_n():    yes_no = input("Y/N: ")    if yes_no.lower() == 'y':        return 'Cool, than lets play a game'    elif yes_no.lower() == 'n':        return 'To bad!'    else:        print('Please anwser with [y] or [n]')        return y_n()

DIEA

您的代码输出None是因为您调用print(y_n())which 打印函数的返回值y_n()is None。您应该做的是不使用调用函数,print()因为输出值已经在函数内部打印。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python