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

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

ただいまの
回答率

90.99%

  • Python 3.x

    4116questions

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

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 96

Sample_Test

score 89

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

def Sample06(IBM,Cross):
    for i in IBM:
        if i[1]=='J':
            Cross+=11
        elif i[1]=='Q':
            Cross+=12
        elif i[1]=='K':
            Cross+=13
        elif i[1]=='A':
            Cross+=1
        else:
            Cross+=int(i[1])
    return Cross


tst=0
Sample05(2,Warehouse01)
print('user',Warehouse01)
Sample06(Warehouse01,tst)

print(tst)

全体のコードです。

import re

[[l.append(j+str(i)) for i in range(1,14)] for j in ['♠','♥','♦','♣']]
l=[re.sub(r'(\D)1$', r'\1A',l[i]) for i in range(len(l))]
l=[re.sub(r'(\D)11$',r'\1J',l[i]) for i in range(len(l))]
l=[re.sub(r'(\D)12$',r'\1Q',l[i]) for i in range(len(l))]
l=[re.sub(r'(\D)13$',r'\1K',l[i]) for i in range(len(l))]


#print(l)
sougou=0

import copy
deck = copy.deepcopy(l)

# deckを混ぜる
import random
#random.shuffle(deck)


# 倉庫
Warehouse01=[]
Warehouse02=[]



# Warehouseに追加してdeckから引いたカードを削除
def Sample05(z,XYZ):
    for i in range(z):
        card = random.choice(deck)
        XYZ.append(card)
        deck.remove(card)


def Sample06(IBM,Cross):
    for i in IBM:
        if i[1]=='J':
            Cross+=11
        elif i[1]=='Q':
            Cross+=12
        elif i[1]=='K':
            Cross+=13
        elif i[1]=='A':
            Cross+=1
        else:
            Cross+=int(i[1])
    return Cross

tst=0
Sample05(2,Warehouse01)
print('user',Warehouse01)
Sample06(Warehouse01,tst)

print(tst)
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

tst = Sample06(Warehouse01,tst)


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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

def Sample06(IBM,Cross):
    for i in IBM:
        if i[1]=='J':
            Cross[0]+=11
        elif i[1]=='Q':
            Cross[0]+=12
        elif i[1]=='K':
            Cross[0]+=13
        elif i[1]=='A':
            Cross[0]+=1
        else:
            Cross[0]+=int(i[1])

tst=[0]
Sample05(2,Warehouse01)
print('user',Warehouse01)
Sample06(Warehouse01,tst)

print(tst[0])

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    pythonのエラー

    testThreadが見つからないというメッセージが出てきたのですが、どこに問題があるのでしょうか? よろしくお願いします コード #-*- coding utf-8-*-

  • 解決済

    Pythonのmatplotlibの使い方。 二次元配列からの描画について

    Pythonのmatplotlibの使い方で質問です 二次元配列 a[i, j] には1または-1が入っていて a[i, j] = 1 のときはグラフの (i+0.5, j

  • 解決済

    PHPのマジックメソッドのPython版

    PHPのメソッドに未定義な関数の呼び出しやプロパティの設定・取得が行われた時に、PHPから呼び出してくれる(いわゆるコールバックしてくれるマジックメソッドがあります。 #!/

  • 解決済

    pythonで実行時間を求めたい

    実現したいこと 10種類の疑似乱数をバブルソートで実行。 その実行時間をしりたい。 エラーメッセージ t=timeit.Tiimer("Bublesort(Random

  • 解決済

    ファイルの中から特定の文字列の抽出

    ダンプデータの中から、”abcd"という文字を発見したら、”xyz”という文字を見つけるまで、そこの間の文字を抽出し、ファイルに出力したいのですが、どのようなソースコードを書けばよ

  • 解決済

    pythonでmapしたものをリストにしたい

    以下のようなコードがあり、実行すると 以下のようになります sdata = ["[0.2],[0.3]","[0.2]"] tu = sdata[0].replace("[",

  • 解決済

    複数行列への分割について

    Pythonによる複数行列の解析に関する質問です。 4行n列の.txtファイルを読み込んで分割を行いたいと考えています。 txtファイルは下記のような内容です。 531 1 1

  • 解決済

    python3 トランプを引いたらデッキから削除したい

    デッキからユーザーに引いたカードを移して、 ユーザー手札から、存在するカードをデッキから削除したい。 問題 削除するカードがが有りませんと、エラーが出てしまいます。 どうし

同じタグがついた質問を見る

  • Python 3.x

    4116questions

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