相关疑难解决方法(0)

函数返回None没有return语句

我刚刚学习(正在学习)函数参数如何在Python中工作,我开始尝试使用它没有明显的原因,当这个:

def jiskya(x, y):
    if x > y:
        print y
    else:
        print x

print(jiskya(2, 3))
Run Code Online (Sandbox Code Playgroud)

给出了输出:

>>>
2
None
Run Code Online (Sandbox Code Playgroud)

None来自哪里?还有,这是什么?

python function

38
推荐指数
3
解决办法
6万
查看次数

Python:我的函数在完成我想要的之后返回"None"

这是我的计划

def reverse(letters):
    backwards = ""
    i = len(letters) - 1
    while i >= 0:
        backwards = backwards + letters[i]
        i = i - 1
    print (backwards)

print (reverse("hello"))
Run Code Online (Sandbox Code Playgroud)

它有效,打印出"olleh"但之后,它在新行上打印"None".我问这是为什么.显然程序是反转一个单词,代码工作,没有函数它不打印任何,所以我不知道为什么它在函数中.这是在另一个更大的程序中使用,所以我需要它作为一个函数,因为它是为了学校,我不允许简单地使用.reverse()函数.所以我真的需要修复这些代码而不是大的修改,如果可能的话.

python

8
推荐指数
1
解决办法
4138
查看次数

执行函数后,Python脚本会返回意外的"无"

规格:Ubuntu 13.04 Python 3.3.1

背景:Python初学者; 搜索了这个问题但我找到的答案更多的是"什么"而不是"为什么";

我打算做什么:创建一个功能,从用户输入测试分数输入,并根据年级比例/曲线输出字母等级; 这是代码:

score = input("Please enter test score: ")
score = int(score)

def letter_grade(score):
    if 90 <= score <= 100:
        print ("A")
    elif 80 <= score <= 89:
        print ("B")
    elif 70 <= score <= 79:
        print("C")
    elif 60 <= score <= 69:
        print("D")
    elif score < 60:
        print("F")

print (letter_grade(score))
Run Code Online (Sandbox Code Playgroud)

这在执行时返回: None (letter_grade(score) print (letter_grade(score))

"无"并非意图.而且我发现,如果我使用None而不是None,则"无"不再出现.

我能找到的最接近的答案说"像python中的函数返回None,除非明确指示不这样做".但我确实在最后一行调用了一个函数,所以我在这里有点困惑.

所以我想我的问题是:是什么导致了"无"的消失?我确信这是非常基本的东西,但我无法找到解释"幕后"机制的任何答案.所以,如果有人能对此有所了解,我将不胜感激.谢谢!

python printing syntax python-3.x nonetype

3
推荐指数
1
解决办法
9422
查看次数

标签 统计

python ×3

function ×1

nonetype ×1

printing ×1

python-3.x ×1

syntax ×1