Python:有没有一种方法可以打印未知范围内的偶数,并且没有if语句?

哈萨哈尔

我要在Python类中做作业,并收到以下问题:

制作一个从用户那里获得2个数字并打印出这2个数字范围内的所有偶数的程序,您只能使用任意数量的for语句,而不能使用其他循环或if语句。

我了解我需要使用以下代码:

for num in range (x,y+1,2):
    print (num)

但没有任何if声明,我无法检查x插入的值是偶数还是奇数,并且如果用户将数字插入5x,则所有打印的图像都是奇数。

我也尝试将每个数字输入一个元组或数组,但是我仍然无法检查第一个数字是否甚至是开始打印。

def printEvenFor(x,y):
    evenNumbers =[]
    for i in range (x,y+1):
        evenNumbers.append(i)
    print (evenNumbers[::2])

要么

def printEvenFor(x,y):
    for i in range (x,y+1,2):
        print(i,",")

我期望的输出printEvenFor(5,12)6,8,10,12,但它是5,7,9,11

最大7CD

您可以使用下限除法然后乘以x,使x为偶数:

x = (x // 2) * 2

然后,x将四舍五入为前一个偶数整数,如果之前为偶数,则保持不变。

如果要将其舍入为以下偶数整数,则需要执行以下操作:

x = ((x + 1) // 2) * 2

这可以通过使用移位运算符来进一步改善:

x = (x >> 1) << 1         #Alternative 1
x = ((x + 1) >> 1) << 1   #Alternative 2

例子:

#Alternative 1
x = 9
x = (x >> 1) << 1
#x is now 8

#Alternative 2
x = 9
x = ((x + 1) >> 1) << 1
#x is now 10

第二个可能更适合您

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种方法可以缩短此if语句?

有没有一种方法可以打印对象的所有方法?

在firebase android中,有没有一种方法可以获取一定范围内的数据?

Java中有没有一种方法可以在一行范围内创建数组?

有没有一种方法可以打印对象的位表示?

有没有一种方法可以从范围创建非空数组?

有没有一种方法可以只提取Firebase中特定范围内的条目?

有没有一种方法可以根据数组内的标志过滤数组

Python gTTS,有没有一种方法可以改变语音速度

有没有一种方法可以使用ARRAYFORMULA查找列中最近的偶数输入?

有没有一种方法可以计算concat语句?

有没有一种方法可以避免if语句充满检查

有没有一种方法可以在Python的子类定义中调用方法?

有没有一种方法可以解决由于范围引起的名称错误?

有没有一种方法可以在Python中生成带有迭代变量的语句块?

有没有一种方法可以在循环结束时打印?

有没有一种方法可以执行if语句为空值

有没有一种方法可以使用plotly在python中创建范围图?

有没有一种方法可以自动在变量上打印日志调试语句?

有没有一种方法可以将符文打印为字符?

有没有一种方法可以打开多个Word文件进行打印?

Postgres:有没有一种方法可以在INSERT语句之后执行代码?

有没有一种方法可以在本地范围内为单例分配名称?

在bash中,有没有一种方法可以使我的语句简短(if或)?

有没有一种方法可以在Stunnel中定义端口范围?

有没有一种方法可以将ValueAnimator与范围内中间的起点一起使用?

有没有一种方法可以逐字打印$ @?

有没有一种方法可以通过LINQ语句获得行数?

有没有一种方法可以直接存储列表的索引范围?