2017-08-13 131 views
1

我得到一個無以下代碼的輸出,我不知道它爲什麼是? 有人可以解釋我爲什麼是這樣以及它如何修復? 這裏的代碼,爲什麼它在輸出中顯示None None

def randomQuestions(): 
     q1 = 1 
     q2 = 2 
     for i in range(1): 
      if random.randint(1,2)==1: 
       a1=int(input(print("Please Enter a Number that is not prime: ",end=""))) 
       if a1>1: 
        for i in range (2,a1): 
         if (a1%i)==0: 
          print("Correct",a1,"is Not a prime number") 
          break 
        else: 
         print("Incorrect",a1,"is a Prime number") 
       else: 
        print("Incorrect",a1,"is a Prime number") 
      else: 
       a2=int(input(print("Please Enter a Number that is positive: ",end=""))) 
       if a2>0: 
        print("Correct",a2,"is Positive") 
       elif a2==0: 
        print(a2,'Is neither Positive Nor Negative') 
       else: 
        print('Incorrect',a2,'is Not Positive') 
    randomQuestions() 

這是輸出;

Please Enter a Number that is not prime: None 

回答

2

input功能已經打印輸入消息,所以你不需要打印功能。它顯示None,因爲print函數返回None。更改

int(input(print("Please Enter a Number that is positive: "))) 

int(input("Please Enter a Number that is positive: ")) 

做就是另一個輸入,以及。

如果你想成爲一個新的行中輸入的輸入,也可以做

int(input("Please Enter a Number that is positive: \n")) 
+0

@ayban欣賞你的答案:)但現在它給出了以下錯誤; TypeError:input()不帶關鍵字參數 –

+0

確實如此,您還需要刪除'end =「」'。 – ayhan

+0

@ayban它的工作原理:)現在我明白我犯的錯誤是什麼。在此先感謝:) –

0

請刪除打印語句。

def randomQuestions(): 
      q1 = 1 
      q2 = 2 
      for i in range(1): 
       if random.randint(1,2)==1: 
        a1=int(input("Please Enter a Number that is not prime: ")) 

        if a1>1: 
         for i in range (2,a1): 
          if (a1%i)==0: 
           print("Correct",a1,"is Not a prime number") 
           break 
         else: 
          print("Incorrect",a1,"is a Prime number") 
        else: 
         print("Incorrect",a1,"is a Prime number") 
       else: 
        a2=int(input("Please Enter a Number that is positive: ")) 

        if a2>0: 
         print("Correct",a2,"is Positive") 
        elif a2==0: 
         print(a2,'Is neither Positive Nor Negative') 
        else: 
         print('Incorrect',a2,'is Not Positive') 
+0

修復它:)在此先感謝:) –

0

無需爲您的輸入使用打印包裝。

https://docs.python.org/3/library/functions.html#input

此外,它可能不是一個壞主意,這樣做,然後再繼續NoneType檢查,但下面的代碼應該讓你的工作。

import random 


def randomQuestions(): 
    q1 = 1 
    q2 = 2 

    for i in range(1): 
     if random.randint(1,2) == 1: 
      a1 = int(input("Please Enter a Number that is not prime: ")) 
      if a1 > 1: 
       for i in range (2, a1): 
        if (a1 % i) == 0: 
         print("Correct", a1, "is Not a prime number") 
         break 
       else: 
        print("Incorrect", a1, "is a Prime number") 
      else: 
       print("Incorrect", a1, "is a Prime number") 
     else: 
      a2 = int(input("Please Enter a Number that is positive: ")) 
      if a2 > 0: 
       print("Correct", a2, "is Positive") 
      elif a2 == 0: 
       print(a2, 'Is neither Positive Nor Negative') 
      else: 
       print('Incorrect', a2, 'is Not Positive') 

if __name__ == '__main__': 
    randomQuestions()