2017-04-18 21 views
1

我編寫了一個小程序,當我運行它時,我得到一個無。這裏舉一個例子:我得到一個無,每行

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。 我一直在尋找另一種運行良好的代碼,但我還沒有看到這個問題。 謝謝:)

+0

謝謝大家,現在工作正常:) – prossellob

回答

6

input()需要一個參數並在輸入前打印出來。

print()函數啓動後,您看不到任何內容。在python中,如果你的函數沒有返回任何東西並且完成了,它默認返回None。例如:

print(print()) 

輸出:

 #new line 
None 

要解決你的代碼只是做:

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

input會打印一條消息給你。不要將實際的print函數傳遞給它。

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

print函數的返回值是在None的來源。

4

print()input()函數內部返回None。希望這可以幫助!

2

考慮這個例子:

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

是一種等價於:

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

所以,如果你print(g(1,2))這將執行內部功能的作用,同時也將輸出其返回值,None在這種情況下

通常,如果你在另一個函數調用中放置函數調用,你會得到None,如果函數n不返回任何東西。例如,function(function())輸出None

所以input(print())print(print())。小心一點。

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()) 
相關問題