gpt4 book ai didi

python - 'if' 中的计数方法不起作用 - python

转载 作者:行者123 更新时间:2023-11-28 21:54:45 25 4
gpt4 key购买 nike

我不明白,我正在尝试计算此列表中的 2,当它像这样时:

hand=['D2', 'H5', 'S2', 'SK', 'CJ', 'H7', 'CQ', 'H9', 'D10', 'CK']
f=''.join(hand)
count2=f.count('2')
print count2

它工作得很好,它打印 me 2 作为 2 在列表中的次数。但是当我把它放在 if 它不起作用时:

def same_rank(hand, n):
if hand.count('2')>n:
print hand.count('2')
else:
print 'bite me'



hand=['D2', 'H5', 'S2', 'SK', 'CJ', 'H7', 'CQ', 'H9', 'D10', 'CK']
f=''.join(hand)
n=raw_input('Give n ')
print same_rank(hand,n)

如果用户给出 n=1,那么它应该打印 2,因为数字 2 在列表中出现了两次,我希望它不止一个!那么为什么它不返回呢?

最佳答案

raw_input() 返回一个字符串;字符串总是在数字之后排序,所以 2 > '1' 总是 False:

>>> 2 > '1'
False

首先将您的输入转换为整数:

n = int(raw_input('Give n '))

如果你使用的是 Python 3,你会得到一个异常:

>>> 2 > '1'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() > str()

因为 Python 3 已经取消了为任意类型指定相对顺序。

接下来,你不传入f,你传入的是hand,列表:

>>> hand.count('2')
0
>>> f
'D2H5S2SKCJH7CQH9D10CK'
>>> f.count('2')
2

您可能想传入后者,否则您的函数将不起作用。

关于python - 'if' 中的计数方法不起作用 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23696679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com