![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
python でdefの中で変数をreturnしたいのですが、listを使わず複数個の結果をカンマで区切ってreturnすることは可能でしょうか?
こんな感じです⤵︎ (a, b定義済)
def A():
if a == 1:
return a
if b == 1:
return b
print(A())
希望しているアウトプット:
a, b
以下のようなことも試してみましたが、returnではなくprint & アウトプットにNoneがついてしまってダメでした、、
def A():
Alist = []
if a == 1:
Alist.append(a)
if b == 1:
Alist.append(b)
print(*Alist, sep=", ")
print(A())
上記のプログラムのアウトプット:
a, b
None
稚拙な文章ではございますが、ご存知の方よろしくお願いしますm(_ _)m
No.3ベストアンサー
- 回答日時:
あー、ちなみに。
二番目の方、
def A():
Alist = []
if a == 1:
Alist.append(a)
if b == 1:
Alist.append(b)
print(*Alist, sep=", ")
print(A())
で、
a, b
None
が印字されるのは、A()は関数じゃなくって手続き(プロシージャ)になってるから、です。Python流に言うと「A()はNoneを返す関数」だから、ですね。
A():本体内で印字するように指定してますが、何もreturnされていません。従ってNoneが返ります。
つまり、この場合のprint(A())だと、事実上print(None)しろ、って言ってるんで、Pythonは律儀にNoneを印字してるのです。
それだけ、です。
だからやるなら、
def A():
Alist = []
if a == 1:
Alist.append(a)
if b == 1:
Alist.append(b)
return Alist
でしょうね。
No.2
- 回答日時:
うん、ちょっと何やりたいか分かりませんね。
基本的に、Pythonは、returnで複数の値を返す事自体は可能です。
その場合はタプルで返りますね。
>>> def foo():
return 1, 2
>>> foo()
(1, 2)
>>>
でもこのコードだとちとおかしい。
def A():
if a == 1:
return a
if b == 1:
return b
何故なら、returnが意味するのは「関数から脱出します」って事なんで、aが1の時に即刻脱出するんで、if b == 1:以下は実行されません。
多分messyだけど、こういう事がしたいのかしらん。
def A():
if a == 1:
if b == 1:
return a, b
else:
return a
else:
if b == 1:
return b
私の拙い文章から質問を汲み取っていただいてありがとうございます!!!
なぜreturnが一個目しかアウトプットされないかの理由も分からなかったので、大変参考になりました。とてもわかりやすい説明ありがとうございます!泣 (大感謝)
文末の
def A():
if a == 1:
if b == 1:
return a, b
else:
return a
else:
if b == 1:
return b
で解決いたしました!
cametan_42様のご丁寧な回答にただただ感謝です。泣
ベストアンサーに選ばさせていただきます。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 【Python初学者】以下コードについて教えていただきたいです 4 2023/04/19 13:01
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
I2C接続のLCDディスプレイを使う
-
ソケットでのデータ送受信につ...
-
数値かどうかの判定方法
-
Perlで複数の値を返す良い方法...
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
-
セレクトメニューで選んだ値を...
-
VBAでPDFのコピーとリネームを...
-
C言語のflagの使い方が分かりま...
-
メモリをアドレスを直接指定し...
-
講義でわからないのですが以下...
-
FindFirst を複数条件で検索
-
【メモリ不足で落ちる(python)】
-
セレクトボックスから別窓にジ...
-
プルダウンリストの背景色の指定
-
「*:*」って何を意味するのでし...
-
セレクトメニューで2つの項目...
-
<SELECT>タグの折り返し
-
実行時エラー 3020の対策
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
16進の10進変換について
-
【至急!!!】python言語で本を見...
-
pythonで演算子を変数に代入す...
-
数値かどうかの判定方法
-
pythonの*
-
UWSCのSELECT文の記述方法
-
int(input("○○"))の使い方
-
関数「exists」と「defined」の...
-
c言語 16進数の2進数への変換
-
Perlにおける<?phpinfo();?>の...
-
シェルスクリプトで、空白(ス...
-
I2C接続のLCDディスプレイを使う
-
「HSP」でキャラコードを使って...
-
switch文のエラーについて
-
Use of uninitialized value ---
-
変数の中は文字列か数値か調べ...
-
perでメールが送信出来ない場合...
-
画面上再読み込みをさせたいの...
-
awkの正規表現での最左最短マッ...
-
数値英単語変換
おすすめ情報