質問するログイン新規登録

Q&A

解決済

1回答

741閲覧

Python3 関数 呼び出し

MouseCat

総合スコア7

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/11 21:38

編集2020/01/11 22:33

0

0

前提・実現したいこと

python3.6.3で関数の勉強をしています。
xplusという関数を定義して、whileで呼び出しのたびにxが1ずつ増加し、100まで繰り返すプログラムを作成しようとしていますが、うまくいきません。
どのように書き直したら良いでしょうか?初歩的な質問で申し訳ありません。

発生している問題・エラーメッセージ

<function xplus at 0x041A8A08> <function xplus at 0x041A8A08> <function xplus at 0x041A8A08> ...以下ループ

該当のソースコード

python3

1def xplus(x): 2 x = x + 1 3 4x = 0 5while(x<100): 6 xplus(x) 7 print(xplus)

関数を定義した上でやりたい処理

python3

1x = 0 2while(x<100): 3 x = x + 1 4 print(x) 5

バージョン

Python 3.6.3
IDLE(Python3.6 32-bit)

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

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

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

guest

回答1

0

ベストアンサー

xplus(x)関数は、xを1増加させる関数ですよね?
ではprint(xplus)ではなくprint(x)を試してみればいいと思います!

投稿2020/01/11 21:43

RyotaroIsoyama

総合スコア183

MouseCat

2020/01/11 22:22

回答ありがとうございます! 今度は0がループするようになってしまいました・・・。
RyotaroIsoyama

2020/01/11 22:32

あ、そうですね。xはグローバル変数なので関数内で値を見ることはできてもいじることはできません。 なので例えば、 def xplus(x): return x+1 としてx+1を返すようにして、 x=0 while(x<100): x = xplus(x) print(x) とすれば求める動き方しそうですね。 見にくくってすみません
MouseCat

2020/01/11 22:39

ありがとうございます!うまくいきました!
RyotaroIsoyama

2020/01/11 22:43

よかったです! お互い勉強がんばりましょう!
MouseCat

2020/01/11 22:44

こちらで同じxを使っていたので、ややこしくなってしまったみたいです。 以下のように書いたら理解しやすくなりました。 def xplus(x): return x + 1 a = 0 while(a < 100): a = xplus(a) print(a)
MouseCat

2020/01/11 22:45

はい!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.25%

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

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

質問する

関連した質問