Python:エラーを直す方法を知りたい(TypeError: 'function' object is not iterable)
Q&A
Python:エラーを直す方法を知りたい
超初心者です。とある本を参照しながら、でコードを書いています。
にもかかわらず以下のエラーが発生してしまい、直し方がわからず困っております。
成果物はコマンドプロンプト上でブラックジャックゲームができるというものです。
発生している問題・エラー
Traceback (most recent call last):
File XXXXX, line 80, in <module>
main()
File XXXXX, line 64, in main
print_player_hand(player_hand)
File XXXXX, line 22, in print_player_hand
for card in print_player_hand:
TypeError: 'function' object is not iterable
該当するソースコード
import random
RANK , SUIT = 0 , 1
def get_point(hand):
result = 0
ace_flag = False
for card in hand:
if card[RANK] == 1:
ace_flag = True
if card[RANK] > 10:
num = 10
else:
num =card[RANK]
result = result + num
if ace_flag and result <= 11:
result += 10
return result
#print_player_hand関数
def print_player_hand(player_hand):
print("プレイヤー(",get_point(player_hand),"):")
for card in print_player_hand:
print("[",card[SUIT],card[RANK],"]")
print()
#print_dealer_hand関数
def print_dealer_hand(dealer_hand,uncovered):
if uncovered:
print("ディーラー(",get_point(dealer_hand),"):")
else:
print("ディーラー(??):")
flag = True
for card in dealer_hand:
if flag or uncovered:
print("[",caard[SUIT],card[RANK],"]")
flag = False
else:
print("{**}")
print()
def make_deck():
suits = ["S","H","D","C"] #記号
ranks = range(1,14) #数字
deck = [(x,y) for x in ranks for y in suits]
random.shuffle(deck)
return(deck)
def main():
turn = 1
player_money = 100
while(player_money > 0):
print("ターン:",turn)
print("所持金:",player_money)
player_hand = [] #プレイヤーの手札を格納するリスト
dealer_hand = [] #ディーラーの手札を格納するリスト
deck = make_deck()
# print(deck)
for i in range(2):
player_hand.append(deck.pop())
dealer_hand.append(deck.pop())
#print(player_hand)
print_player_hand(player_hand)
#print_(dealer_hand)
print_dealer_hand(dealer_hand,False)
print(player_hand)
print(get_point(player_hand))
print(dealer_hand)
print(get_point(dealer_hand))
turn += 1
input("次のターンへ")
print("ゲームオーバー")
if __name__ == "__main__":
main()
自分で試したこと
手元のテキストを確認して該当の行を再度書き直したのですが、改善しませんでした。
皆様へ
単純なことだと思うのですが、素人の私には解決方法がわらからず困っております。
関数や変数が多く結局どこまで立ち返るのかも、まだピンときていないです。
解決方法と、このようなエラーが発生したときの確認の手順などご教示いただけると幸いです。
どうぞよろしくお願いいたします。
0 likes