首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >函数返回none而不是元组

函数返回none而不是元组
EN

Stack Overflow用户
提问于 2019-04-25 10:04:15
回答 2查看 247关注 0票数 0

我使用的是python 2.7。我写了一段代码来生成密码。为此,我使用了random模块来生成多少个不同类型的字符(大写、小写、特殊和数字)来生成给定长度的密码。当a为此编写一个函数时,它应该返回一个元组,但它返回None。为什么会发生这种情况?

我尝试了一种随意的调试方法,将打印语句放在中间并找出错误所在。除了返回None之外,一切都很正常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def passlen(a):
    """Gives length of different characters to be put into passwords"""
    uplen=random.randrange(0, a)
    lwlen=random.randrange(0, a)
    speclen=random.randrange(0, a)
    nmbrlen=random.randrange(0, a)
    if uplen+lwlen+speclen+nmbrlen==a:
        print (uplen, lwlen, speclen, nmbrlen)
        return(uplen, lwlen, speclen, nmbrlen)
    else:
        passlen(a)

x=input("how many characters in the password?")

print(passlen(x))

预期的结果是4元组,但它没有给出任何结果。

EN

回答 2

Stack Overflow用户

发布于 2019-04-29 05:14:41

感谢Kamiccolo的帮助。

该函数应如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def passlen(a):
    """Gives length of different characters to be put into passwords"""
    uplen=int(random.randrange(0, a))
    lwlen=int(random.randrange(0, a))
    speclen=int(random.randrange(0, a))
    nmbrlen=int(random.randrange(0, a))
    bab=(uplen, lwlen, speclen, nmbrlen)
    if uplen+lwlen+speclen+nmbrlen==a:
        return bab
    else:
        return passlen(a)

在这一点上,duplicate thread也帮了我大忙。

票数 0
EN

Stack Overflow用户

发布于 2019-04-29 06:46:20

所以你想要四个随机数加到a上?当然,您可以尝试选择四个随机数,直到找到一个加起来等于a的集合,但对于a的大值来说,这可能需要一段时间(并且您肯定不想递归地执行此操作)。

0a之间选择三个分割点要好得多

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def passlen(a):
    splits = sorted([random.randrange(0,a) for _ in range(3)])
    uplen = splits[0]
    lwlen = splits[1] - uplen
    speclen = splits[2] - uplen - lwlen
    nmbrlen = a - uplen - lwlen - speclen
    return uplen, lwlen, speclen, nmbrlen
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55846696

复制
相关文章
为什么1000 == 1000返回为False,而100 == 100会返回为True?
这是我们今天要讨论的话题,因为我觉得它非常的有趣。 如果你运行如下代码: Integer a = 1000, b = 1000; System.out.println(a == b);//1 Integer c = 100, d = 100; System.out.println(c == d);//2 你会得到以下运行结果: false true 我们知道,如果两个引用指向同一个对象,那么==就成立;反之,如果两个引用指向的不是同一个对象,那么==就不成立,即便两个引用的内容是一样的。因此,结果
顶级程序员
2018/04/26
1.7K0
springcloud 返回的数据为XML 而不是JSON
本人的原因是因为引入了jackson-dataformat-xml依赖导致的,下面查看自己项目是否包含此依赖,如果包含的话,可以去掉。 有的人添加了下面注解后可以解决,不过我这里没有解决。还是依靠上图
qubianzhong
2019/04/01
2.3K0
springcloud 返回的数据为XML 而不是JSON
new_tensor(data, dtype=None, device=None, requires_grad=False) → Tensor
new_tensor(data, dtype=None, device=None, requires_grad=False) → Tensor
狼啸风云
2020/04/26
2K0
为什么 useState 返回的是 array 而不是 object?
这里可以看到 useState 返回的是一个数组,那么为什么是返回数组而不是返回对象呢?我们在自定义 hook 时应该返回什么类型呢?
小鑫
2022/04/26
2.3K0
奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true?
奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true? 在回答这个问题之前,我们先来看看int和Integer的对比,一步步揭开问题的答案。 1. i
互扯程序
2019/06/19
2.3K0
【工作笔记】PathFileExists 返回 FALSE
在参数传递正确,文件确实存在的情况下,PathFileExists偶尔返回FALSE
全栈程序员站长
2022/09/14
5840
电脑拥有GOU却仍返回False
电脑拥有独立显卡,pycharm中torch.cuda.is_available()总是返回false。
算法与编程之美
2023/01/03
5450
电脑拥有GOU却仍返回False
为什么1000==1000返回false,100==100返回true?
这可能是个讨论得较多的话题,但是我觉得它很有趣:为什么1000==1000返回false,100==100返回true?
三哥
2018/12/19
1.2K0
Python 函数为什么会默认返回 None?
Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。
Python猫
2020/08/18
2.2K0
php unserialize 返回false的解决方法
php 提供serialize(序列化) 与unserialize(反序列化)方法。
全栈程序员站长
2022/07/11
1K0
android bindservice方法,Android bindservice方法返回false
我想从另一个类(BaseExpandableListAdapter)的活动中调用一个方法。活动中的方法启动服务并调用bindService(,,)方法。但是,bindService方法总是返回false。我查了其他类似的帖子,但没有一个解决了我的问题。任何评论非常感谢。Android bindservice方法返回false
全栈程序员站长
2022/09/01
1.2K0
Feign配置微服务间调用返回XML而不是Json的解决方案
springcloud中的微服务之间通过网关的api调用时,返回的是xml格式,而不是相应的json串,如果想要返回json格式如何处理呢
在水一方
2022/06/14
1.6K0
Feign配置微服务间调用返回XML而不是Json的解决方案
何时使用MongoDB而不是MySql
MySQL 和 MongoDB 是两个可用于存储和管理数据的数据库管理系统。MySQL 是一个关系数据库系统,以结构化表格格式存储数据。相比之下,MongoDB 以更灵活的格式将数据存储为 JSON 文档。两者都提供性能和可扩展性,但它们为不同的应用场景提供了更好的性能。
wayn
2023/08/09
1K0
何时使用MongoDB而不是MySql
何时使用Kafka而不是RabbitMQ
Kafka 和 RabbitMQ 都是流行的开源消息系统,它们可以在分布式系统中实现数据的可靠传输和处理。Kafka 和 RabbitMQ 有各自的优势和特点,它们适用于不同的场景和需求。本文将比较 Kafka 和 RabbitMQ 的主要区别,并分析何时使用 Kafka 而不是 RabbitMQ。
wayn
2023/06/26
3540
何时使用Kafka而不是RabbitMQ
为什么Python中的None is None is None == True
最近在StackOverflow上看到了一个问题,为什么Python中的None is None is None返回True,看到大家的讨论后对Python中的比较运算有了更深的认识。
杜逸先
2018/06/28
2.3K0
为什么Python中的None is None is None == True
何时使用Elasticsearch而不是MySql
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景
wayn
2023/08/28
3020
何时使用Elasticsearch而不是MySql
Python的is None vs ==None
想要弄清楚is None和==None的区别,首先要清楚==和is的区别。==和is的区别如下:
Tyan
2020/05/26
2.2K0
何时使用Elasticsearch而不是MySql
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景。本文将从以下几个方面对它们进行比较和分析:
wayn
2023/08/09
6900
何时使用Elasticsearch而不是MySql
iis站点设置错误页面返回http状态码为404而不是302或其他
  今天一位客户说网站错误页面返回的状态码是302而不是404,问ytkah要如何处理。这个应该是设置没有正确的原因。我们一步步来排查一下。1、首先打开iis管理器,左侧选择具体的站点,在右侧窗口中点击404错误页,如下图所示
ytkah
2019/09/25
3.3K0
iis站点设置错误页面返回http状态码为404而不是302或其他
点击加载更多

相似问题

使jar在32位jre中运行

34

如何使用jre编译.jar?

30

在java jre上使用单个jar文件运行groovy未编译脚本

222

足以运行jar的JRE版本

11

Java编译JRE问题

65
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文