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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

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

Q&A

解決済

2回答

614閲覧

pythonのvar++とvar=var+1で挙動が異なるのはなぜ

ruei

総合スコア284

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

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

2グッド

1クリップ

投稿2018/10/10 08:47

matoplotlibで下のコードを実行したとき、
cnt++(上の図)とcnt=cnt+1(下の図)で生成されるグラフが全く変わってしまいました。
何が原因なのでしょうか。

++cnt
cnt=cnt+1

import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.animation as animation from PIL import Image import moviepy.editor as edit from mpl_toolkits.axes_grid1 import make_axes_locatable f = open("charge2.txt") # 400行 X=np.array([]) Y=np.array([]) cnt=0.0 for line in f: x=cnt/60 y=float(line) X=np.append(X,[x]) Y=np.append(Y,[y]) ++cnt # cnt=cnt+1 plt.plot(X,Y) plt.savefig("charge2.png") plt.close
LouiS0616, yohhoy👍を押しています

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

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

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

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

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

LouiS0616

2018/10/10 08:54 編集

このコードは本当に実行できるのですか?実行環境を明記してください。 追記:実行自体はできますね。失礼しました。
guest

回答2

0

Pythonにはインクリメント演算は存在しません。
単項演算子 + が複数回適用されているのでエラーが出ないだけです。

Python

1>>> a = 42 2>>> +a 342 4>>> ++a 542 6>>> +++a 742 8>>> ++++a 942

投稿2018/10/10 08:56

編集2018/10/10 08:56
LouiS0616

総合スコア35660

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

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

ruei

2018/10/10 09:04

ありがとうございます!
guest

0

ベストアンサー

pythonにCのようなインクリメント演算子はありません(代わりに累積代入文+=を使ってx += 1のように書くことになっています)。

では++xがなにかというと、単項演算子の+を2つ書いただけとみなされます。同様の単項演算子の-を考えるとわかりやすいでしょう。

python

1>>> x = 1 2>>> +x 31 4>>> ++x 51 6>>> -x 7-1 8>>> --x 91

この演算子自体は何もしないのと同じです。結果、cntが変化しないので、そのような図になります。

参考:
6. 式 (expression) — Python 3.6.5 ドキュメント | 6.6. 単項算術演算とビット単位演算

投稿2018/10/10 08:56

hayataka2049

総合スコア30933

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

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

ruei

2018/10/10 09:04

これでエラーが出ないのヤバ味ありますね・・・。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問