每一行我都得到一个无

时间:2017-04-18 15:27:14

标签: python python-3.x

我正在编写一个小程序,当我运行它时,我得到一个无。这是一个例子:

    print('Welcome to CTFTOOL')
    print('Created by P.R.B.')
    print('Choose your option:')
    inp1 = input(print('''
    1)Auto Caesar Chiper.
    2)Binary-Decimal & Decimal-Binary.'''))

在第四次打印后,我得到一个无,这与每个要求输入的打印件一起。

    if inp1 == '1':
        text1 = input(print('Input the text you want to decode:\n'))
        autocaesarchiper(text1)

在autocaesarchipher()函数运行之前,我得到另一个None。 我一直在寻找另一个运行良好的代码,但我还没有看到问题。 谢谢:))

5 个答案:

答案 0 :(得分:6)

在获取输入之前,

input()会进行争论并将其打印出来。

print()函数触发后,您看到的是无。在python中如果你的函数没有返回任何东西并且完成它默认返回None。例如:

print(print())

输出:

     #new line
None

要修复代码,请执行以下操作:

text1 = input('Input the text you want to decode:\n')

答案 1 :(得分:5)

input会为您打印一条消息。不要将实际的print函数传递给它。

inp1 = input('''
    1)Auto Caesar Chiper.
    2)Binary-Decimal & Decimal-Binary.''')

print函数的返回值是None的来源。

答案 2 :(得分:4)

print()函数中的input()正在返回None。希望这可以帮助!

答案 3 :(得分:2)

考虑这个例子:

def g(a,b):
 print(a+b)

相当于:

def g(a,b):
 print(a+b)
 return None

所以如果你调用print(g(1,2))这将执行内部函数的操作,但在这种情况下也将输出其返回值None

通常,如果在另一个函数调用中放置一个函数调用,则会得到None,如果该函数没有返回任何内容。例如,function(function())输出None

input(print())print(print())也是如此。小心。

答案 4 :(得分:0)

def test():
    print('Welcome to CTFTOOL')
    print('Created by P.R.B.')
    print('Choose your option:')
    inp1 = input('Choose one: \n (1)Auto Caesar Chiper. \n 2)Binary-Decimal & Decimal-Binary.')
    if inp1 == 1:
        text1 = input('Input the text you want to decode:\n')
        autocaesarchiper(text1)
print(test())