-1

pythonでrandom.shuffleを使ってハンドを処理しようとすると、エラーが発生し続けます。何が問題なのかを理解するのに役立つ人がいます。

# [import statements]
import q1fun
# [constants]

# [rest of program code]
number = input("howmany cards to you want dealt?")
a = q1fun.deal(number)
print (a)

# [import statements]
import random
# [constants]

def deal(x):


    y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
    a = random.shuffle(y(x))


    return(a)

5 トレースバック (最新のコールが最後): ファイル "C:\Users\Eddie\workspace\cp104\durb8250_a16\src\q1.py", line 18, in a = q1fun.deal(number)ファイル "C:\Users\Eddie\workspace\cp104\durb8250_a16\src\q1fun.py"、29 行目、deal a = random.shuffle(y(x)) TypeError: 'list' object is not callable

4

2 に答える 2

1

random.shuffle(y)リストをその場でシャッフルしてyを返しますNone。そう

def deal(n):
    "Return a hand of n cards"
    y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9,
         10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6,
         7, 8, 9, 10, 11, 12, 13]
    random.shuffle(y)
    return y[:n]

ご希望に近いかもしれません。

または省略random.shuffle(y)して使用するだけrandom.sampleです:

return random.sample(y, n)
于 2013-11-13T19:06:08.377 に答える
0

関数呼び出し括弧でリストの要素を参照しようとしています。角かっこを使用します。

function(x)    <-- calls the function with parameter x
list[x]        <-- gets the x-th element of the list

また、入力は文字列を返します。インデックスを参照するために使用する前に、整数に変換する必要があります。いえrandom.shuffle(y[int(x)])

最後に、シャッフル コールが機能しません。最初にシャッフルし(リストを所定の位置にシャッフルします)、次に要素を取得します

random.shuffle(y)
a = y[int(x)]
于 2013-11-13T19:09:01.970 に答える