質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

254閲覧

python3 関数内の数値を関数外に返したい

Untitled_Sample

総合スコア192

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/01/24 04:09

関数Sample06のCrossがtstに代入されずに困っています。

python

1 2def Sample06(IBM,Cross): 3 for i in IBM: 4 if i[1]=='J': 5 Cross+=11 6 elif i[1]=='Q': 7 Cross+=12 8 elif i[1]=='K': 9 Cross+=13 10 elif i[1]=='A': 11 Cross+=1 12 else: 13 Cross+=int(i[1]) 14 return Cross 15 16 17tst=0 18Sample05(2,Warehouse01) 19print('user',Warehouse01) 20Sample06(Warehouse01,tst) 21 22print(tst)

全体のコードです。

python

1 2 3import re 4 5[[l.append(j+str(i)) for i in range(1,14)] for j in ['♠','♥','♦','♣']] 6l=[re.sub(r'(\D)1$', r'\1A',l[i]) for i in range(len(l))] 7l=[re.sub(r'(\D)11$',r'\1J',l[i]) for i in range(len(l))] 8l=[re.sub(r'(\D)12$',r'\1Q',l[i]) for i in range(len(l))] 9l=[re.sub(r'(\D)13$',r'\1K',l[i]) for i in range(len(l))] 10 11 12#print(l) 13sougou=0 14 15import copy 16deck = copy.deepcopy(l) 17 18# deckを混ぜる 19import random 20#random.shuffle(deck) 21 22 23# 倉庫 24Warehouse01=[] 25Warehouse02=[] 26 27 28 29# Warehouseに追加してdeckから引いたカードを削除 30def Sample05(z,XYZ): 31 for i in range(z): 32 card = random.choice(deck) 33 XYZ.append(card) 34 deck.remove(card) 35 36 37def Sample06(IBM,Cross): 38 for i in IBM: 39 if i[1]=='J': 40 Cross+=11 41 elif i[1]=='Q': 42 Cross+=12 43 elif i[1]=='K': 44 Cross+=13 45 elif i[1]=='A': 46 Cross+=1 47 else: 48 Cross+=int(i[1]) 49 return Cross 50 51tst=0 52Sample05(2,Warehouse01) 53print('user',Warehouse01) 54Sample06(Warehouse01,tst) 55 56print(tst)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

python

1tst = Sample06(Warehouse01,tst)

とすれば受け取れるのではないでしょうか

投稿2018/01/24 04:21

uskey512

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

immutable云々の話ですね。
return文で受け取ることを強くおすすめしますが、以下のようなトリックを使って結果を得ることもできます。

python

1def Sample06(IBM,Cross): 2 for i in IBM: 3 if i[1]=='J': 4 Cross[0]+=11 5 elif i[1]=='Q': 6 Cross[0]+=12 7 elif i[1]=='K': 8 Cross[0]+=13 9 elif i[1]=='A': 10 Cross[0]+=1 11 else: 12 Cross[0]+=int(i[1]) 13 14tst=[0] 15Sample05(2,Warehouse01) 16print('user',Warehouse01) 17Sample06(Warehouse01,tst) 18 19print(tst[0])

投稿2018/01/24 04:32

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問