首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >None背后的概念是什么?

None背后的概念是什么?
EN

Stack Overflow用户
提问于 2020-04-05 18:47:05
回答 4查看 42关注 0票数 2

当我输入错误的输入,但当我输入正确的输入时,我得不到任何提示。它不会出现。请帮助我解决这个概念。

代码语言:javascript
运行
复制
def order():
    try:
        count = int(input("How many order ? "))
        return count
    except Exception as e:
        print("Kindly enter in numbers")
        print("Example :- 1, 2, 3, 4, 5 etc..")
    finally:
        print("Thanks to choose our service.")
choice = order()
print(choice, " will be ordered soon!!")

输出:

代码语言:javascript
运行
复制
How many order ? asdd
Kindly enter in numbers
Example :- 1, 2, 3, 4, 5 etc..
Thanks to choose our service.
None  will be ordered soon!!
EN

回答 4

Stack Overflow用户

发布于 2020-04-05 18:51:51

Python中的函数总是返回一些东西。如果你没有用return ...显式地指定返回值,你的函数将默认返回None

如果您没有输入有效的输入,您的函数的return语句将不会被执行,因此order()返回None,然后将其输出为字符串'None'

你可以测试返回值:

代码语言:javascript
运行
复制
choice = order()
if choice is not None:
    print(choice, " will be ordered soon!!")

以便在您没有做出有效选择的情况下不会打印出来。

但您可能希望用户在提交有效选择之前重试:

代码语言:javascript
运行
复制
def order():
    while True:
        try:
            count = int(input("How many order ? "))
            return count
        except Exception as e:
            print("Kindly enter in numbers")
            print("Example :- 1, 2, 3, 4, 5 etc..")

choice = order()
print(choice, " will be ordered soon!!")

示例输出:

代码语言:javascript
运行
复制
How many order ? e
Kindly enter in numbers
Example :- 1, 2, 3, 4, 5 etc..
How many order ? r
Kindly enter in numbers
Example :- 1, 2, 3, 4, 5 etc..
How many order ? 4
4  will be ordered soon!!
票数 5
EN

Stack Overflow用户

发布于 2020-04-05 18:51:03

在异常时,调用相同的函数以重试:

代码语言:javascript
运行
复制
def order():
    try:
        count = int(input("How many order ? "))
        return count
    except Exception as e:
        print("Kindly enter in numbers")
        print("Example :- 1, 2, 3, 4, 5 etc..")
        return order()
    finally:
        print("Thanks to choose our service.")
票数 0
EN

Stack Overflow用户

发布于 2020-04-05 18:54:37

如果出现错误(例如,如果提供string作为输入),您的代码将转到没有返回值(None是默认返回值)的except块,这就是为什么您的choice变量将为None

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61041369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档