python - 从数到无穷大的 if 语句
问题描述
我正在编写一个代码,它接受一个字符串,然后将其拆分为字符,然后根据列表长度做一些事情。问题是我不知道怎么写:
如果长度(以字符为单位)= 1, 4, 7, 10...(最多'infinity')执行 x 代码
如果长度(以字符为单位)= 2, 5, 8, 11...(最多'infinity')执行 y 代码
如果长度(以字符为单位)= 3, 6, 9, 12...(最多'infinity')执行 x 代码
我的意思是无穷大或者是一个足够大的数字,没有人能写出来
我一直在使用 python 并且了解循环/if 语句是如何工作的,但是我从来不需要提供像这样的条件,其中条件本身包含一系列特定数字,直到无穷大。一种解决方案是编写三个包含大量数字的列表,但我想知道是否有一种更简单、更省心的方法。
decoded 是分配给输入的变量(在代码上更进一步)它的数学表达式将是,对于第一个语句,1 + 3n
,对于第二个,,2 +3n
对于第三个,3 +3n
是n
一个介于 0 和无穷大之间的实数
decodedl = list(decoded)
if len(decodel) == 1 #rest of the stament here
#execute x chunk of code
if len(decodel) == 2 #rest of the stament here
#execute y chunk of code
if len(decodel) == 3 #rest of the stament here
#execute z chunk of code
预期结果如下:
如果我输入,例如:'Hello how are you',那么代码应该执行代码块 y,因为生成的列表的长度是 17:但是现在它不会像列表的长度那样做任何事情不是 1、2 也不是 3。
解决方案
这是一个需要解决的逻辑难题。无需检查所有数字的成员资格,只需观察您所说的模式(1 + 3n、2 + 3n 和 3+ 3n)并从中构建您的逻辑。能被 3 整除的数的余数为 0。
if decodel: #make sure you eliminate empty string case
if len(decodel)%3 == 1: #1 + 3n
pass
elif len(decodel)%3 == 2: #2 + 3n
pass
else: #3n
pass
推荐阅读
- javascript - 如何使用js删除旧的html并附加新的
- java - 如何在功能 Web 框架中使用 swagger
- python - 当必须由函数返回时,Python 解释器 3.7.1 不打印 None 值
- c++ - Eclipse CDT 中的 ZeroMQ
- sql - sql留下电子邮件直到@符号
- bash - terraform tpl 中的本地 bash 变量
- python - Python 单套接字接受多种不同的协议
- ruby-on-rails - Rails 5 使用strongbox gem时如何验证加密字段?
- flutter - 通知浮动弹出菜单
- python - 如何在 PIL 的 putpixel 中使用灰度颜色?