繁体   English   中英

Python:检查元组中的每个值是否在/等于0到3之间?

[英]Python: Check is each value is between/equal to 0 to 3 in the tuple?

我需要以某种方式进行更改,以便可以验证每个数字等于0还是小于或等于3。

def printPile(g):
    pile = g
    for i in range(len(pile)):
        a = (pile[0])
        b = (pile[1])
        c = (pile[2])
    print(a)
    print(b)
    print(c)

我的印象是我应该这样做,这可以吗?:

def isStablePile(g):
    pile = g
    for x in range(len(pile)):
        if 0<=x<=3:
            print("True")
        else:
            print("False")

isStablePile([[0,1,2],[1,2,3],[2,3,0]])将是g的输入

如果只想打印每个元素一次,则选项卡关闭。 改为这样做:

def printPile(g):
    pile = g
    for i in range(len(pile)):
        a = (pile[0])
        b = (pile[1])
        c = (pile[2])
    print(a)
    print(b)
    print(c)

您过于复杂了。 您需要做的就是:

g = ('1','2','3')
print('\n'.join(g))

或带有功能和示例:

def printPile(g):
    print('\n'.join(g))

g = ('1','2','3')
printPile(g)

退货

1
2
3

我将如何纠正您的示例?

def printPile(g):
    for i in range(len(g)):
        print(g[i])

要么:

def printPile(g):
    for i in g:
        print(i)

或者,您可以让程序检查这些值是否在正确的范围内。

piles = [[0, 1, 2], [1, 2, 3], [2, 3, 0]]
are_piles_stable = all(0 <= pile <= 3 for pile in sum(piles, []))

print(are_piles_stable) # prints True

说明:

首先, sum(piles, []) [[0, 1, 2], ...][0, 1, 2, 1, 2, 3, 2, 3, 0]

然后,对上述列表中的所有元素进行all检查,以确保0 <= pile <= 3True

您不必努力争取这样的短代码。 但这旨在表明您过于复杂了。 另外,为什么可以在计算机可以为您打印所有单独的值并在屏幕上进行分析之后自己进行分析?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM