代码打印回预期结果,但随后添加无。我不明白为什么。 Python 3

时间:2017-05-20 09:50:00

标签: python python-3.x

代码:

def isPhoneNumber(text):
    if len(text) == 12:
     print('is 12 characters long')

print(isPhoneNumber('415-555-1011'))

预期结果:

  

长度为12个字符

结果:

  

长度为12个字符

     

3 个答案:

答案 0 :(得分:1)

您正在打印函数返回的结果。

在python中,如果函数没有is 12 characters long语句,则默认返回return。因此,当您在None函数内调用函数时,您会看到函数内执行的print函数的输出,然后是结果 - print

答案 1 :(得分:0)

要么:

#include <iostream>  // cout
#include <string>   // string
#include <sstream> // string stream
using namespace std;

int main()
{
     string testString = "Hello how are you.";

     istringstream iss(testString); // note istringstream NOT sstringstream

     char c; // this will read the delima (space in this case)
     string firstWord;

     iss>>firstWord>>c; // read the first word and end after the first ' '

    cout << "The first word in \"" << testString << "\" is \"" << firstWord << "\""<<endl;

    cout << "The rest of the words is \"" <<testString.substr(firstWord.length()+1) << "\""<<endl;
    return 0;
}

或者:

def isPhoneNumber(text):
    if len(text) == 12:
        print('is 12 characters long')

isPhoneNumber('415-555-1011')

在您的代码中,def isPhoneNumber(text): if len(text) == 12: return 'is 12 characters long' print(isPhoneNumber('415-555-1011')) 方法打印了字符串,但没有返回任何内容。不包含isPhoneNumber语句的方法的返回值是return,因此最后一行中的print语句在打印方法中的print语句之后打印None None

答案 2 :(得分:0)

您对代码底部的print的调用将导致isPhoneNumer调用print(这会产生您期望的行),然后打印调用该函数的结果(由于您没有指定返回值,是None)。