Also habe ich Deuces heruntergeladen, Code für Poker-Hand-Bewertungen, und ursprünglich dachte ich, es war in Python 2, weil alle Druckanweisungen keine Klammern hatten. Ich habe all das repariert, und alles scheint zu funktionieren, außer diesem letzten Teil. Hier ist der Code für sie:Bit-Operatoren von Deuces
def get_lexographically_next_bit_sequence(self, bits):
"""
Bit hack from here:
http://www-graphics.stanford.edu/~seander/bithacks.html#NextBitPermutation
Generator even does this in poker order rank
so no need to sort when done! Perfect.
"""
t = (bits | (bits - 1)) + 1
next = t | ((((t & -t)/(bits & -bits)) >> 1) - 1)
yield next
while True:
t = (next | (next - 1)) + 1
next = t | ((((t & -t)/(next & -next)) >> 1) - 1)
yield next
Ich sah online und fand, dass sie Bitoperatoren sind, aber ich verstehe nicht, warum Python sie doesnt zu erkennen. Muss ich etwas importieren, oder sind die Betreiber nicht in Python verwendet 3
File "/Volumes/PROJECTS/deuces/All_poker.py", line 709, in get_lexographically_next_bit_sequence
next = t | ((((t and -t)/(bits and -bits)) // 2) - 1)
Typeerror: nicht unterstützte Operandtyp (e) für |: ‚schweben‘ und ‚schweben‘
Dies ist der Fehler, den ich Es ist der letzte Teil der Lookup-Klasse erhalten und der Code kann bei https://github.com/vitamins/deuces/tree/8222a6505979886171b8a0c581ef667f13c5d165
finden
wenn ich schreibe
board = [ Card.new('Ah'), Card.new('Kd'), ('Jc') ]
hand = [ Card.new('Qs'),Card.new('Th')]
evaluator=Evaluator()
Auf der letzten Zeile des Codes bekomme ich den Fehler. Der ganze Code kann in der Verbindung
Können Sie uns sagen, warum Fehler Sie bekommen? Auf den ersten Blick sehe ich nichts falsch mit dem Code, den Sie gepostet haben. –
Sie haben ein Problem nicht erklärt. Mit was können wir Ihnen konkret helfen? –
Ich wette, die Quelle Ihres Fehlers ist der semantische Unterschied zwischen '/' in Python 2 und 3. In Python 2 ist '/' Floor Division, in Python 3 hingegen ist es eine Division und wird wahrscheinlich einen 'float' zurückgeben ', die' TypeError 'mit bitweisen Operatoren auslösen. –