![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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ランキング
-
16進の10進変換について
-
pythonで演算子を変数に代入す...
-
「HSP」でキャラコードを使って...
-
UWSCのSELECT文の記述方法
-
switch文のエラーについて
-
関数「exists」と「defined」の...
-
Adafruit LIS3DH 3軸加速度セン...
-
javaのパッケージ構成で各パッ...
-
SHA1ハッシュの生成結果が異な...
-
至急、[python初心者] listを使...
-
数値を受け取り、その除数を出...
-
Perl 条件一致なし 合計値 0表示
-
if( strcmp( 引数, 引数 )=== 0
-
Lispの問題
-
PerlCGIでクエリの検索結果が途...
-
変数の中の数値を年月日付きに...
-
パイソンのクラスについて
-
ランダム文字列
-
動的ハッシュを作って取り出し...
-
Perlをヒアドキュメント内で記...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
16進の10進変換について
-
パイソンのクラスについて
-
Pythonでターミナルに文字を出...
-
文字のカラーとフォントの指定...
-
シェルスクリプトで、空白(ス...
-
I2C接続のLCDディスプレイを使う
-
【至急!!!】python言語で本を見...
-
数値かどうかの判定方法
-
awkの正規表現での最左最短マッ...
-
Pythonでコンソールをクリアす...
-
int(input("○○"))の使い方
-
UWSCのSELECT文の記述方法
-
数値英単語変換
-
pythonで演算子を変数に代入す...
-
C言語
-
switch文のエラーについて
-
10進数→2進数の出力について
-
pythonを使ったプログラミング...
-
c言語 16進数の2進数への変換
-
Pythonでプログラミング プログ...
おすすめ情報