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

红玫瑰23

我不明白,我试图算出此列表中的2,如下所示:

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

它工作得很好,并且将2列在列表中的次数显示给我2。但是,当我将其放入一个不起作用的情况下:

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在列表中是两倍,而我希望它不止于此!那么为什么它不返回那个呢?

马丁·彼得斯(Martijn Pieters)

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

您可能想传递后者,否则您的功能将无法正常工作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

Python中的静态方法不起作用

来自分类Dev

python中的硒:click()在方法中不起作用

来自分类Dev

在python中调用时balance()方法不起作用

来自分类Dev

Python补丁:在类中调用嵌套方法不起作用

来自分类Dev

Python补丁:在类中调用嵌套方法不起作用

来自分类Dev

unicode 方法在 Python3 中不起作用

来自分类Dev

为什么'dict(Count(list))在Windows的python中不起作用?

来自分类Dev

Python Pandas的“填充”方法不起作用

来自分类Dev

子进程在Python中不起作用

来自分类Dev

A *搜索在python中不起作用

来自分类Dev

python中的相交列表不起作用

来自分类Dev

代理配置在Python中不起作用

来自分类Dev

For循环在python函数中不起作用

来自分类Dev

unoconv在python中不起作用

来自分类Dev

打印在Python 3.3中不起作用?

来自分类Dev

(“”)打印在python中不起作用

来自分类Dev

'for char in word:'在Python中不起作用

来自分类Dev

python中的GET请求不起作用

来自分类Dev

函数在python中不起作用

来自分类Dev

Primality Test在Python中不起作用

来自分类Dev

Python中的“ Communicate”不起作用

来自分类Dev

阻止过程在Python中不起作用

来自分类Dev

在Python中反转整数不起作用

来自分类Dev

“ for”循环在python 3.6中不起作用

来自分类Dev

JQ命令在python中不起作用

来自分类Dev

For 循环在 python 3 中不起作用

来自分类Dev

python 导入在脚本中不起作用

来自分类Dev

我的 if 语句在 python 中不起作用