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

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

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

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

Q&A

解決済

1回答

2019閲覧

文字が表示されないです

cand

総合スコア65

Python

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

0グッド

0クリップ

投稿2018/04/22 06:03

pygameモジュールを使っています。
ウィンドウを半分に分割して、左側に関数のグラフを、右側に関数の値を表示したいのですが、
描画処理をwhile文に入れてみたり色々したのですが、どうしても右側に何も表示されません。

python

1import sys 2import pygame 3from pygame.locals import QUIT 4pygame.init() 5window=pygame.display.set_mode((800,300)) 6pygame.display.set_caption("関数のグラフ") 7fpsclock=pygame.time.Clock() 8 9 10func=input("f(x)=x") 11q=input("倍率=") 12 13def main(): 14 while True: 15 a = 400 16 b = 300 17 for event in pygame.event.get(): 18 if event.type==QUIT: 19 pygame.quit() 20 sys.exit() 21 22 window.fill((0,0,0)) 23 24 pygame.draw.line(window,(255,255,255),(0,b/2),(a,b/2)) 25 pygame.draw.line(window,(255,255,255),(a/2,0),(a/2,b)) 26 27 x=0 28 pointlist=[] 29 30 while x<=a: 31 x+=int(q) 32 xpos=x-(a/2) 33 ypos=eval('xpos'+func) 34 y=(b/2-ypos/int(q)) 35 pointlist.append((x,y)) 36 if x==a: 37 break 38 pygame.draw.aalines(window,(255,255,255),False,pointlist) 39 40 pygame.display.update() 41 fpsclock.tick(3) 42 sysfont=pygame.font.sysFont(None,10) 43 message=sysfont.render("f("+str(pointlist[0])+")="+str(pointlist[1])) 44 message_rect=message.get.rect() 45 for fontpos in range(0,301,5): 46 message_rect.topleft = (201, fontpos) 47 48 while fontpos==300: 49 window.blit(message, message_rect) 50 if fontpos==300: 51 break 52 53if __name__=='__main__': 54 main()

どこがおかしいのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

sysfont=pygame.font.sysFont(None,10)

以降のインデントが一段浅く、while True:のループ対象になっていません。
そのため、pygame.display.update()が呼び出されません。

投稿2018/04/22 06:54

umyu

総合スコア5846

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

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

cand

2018/04/22 06:59

本当ですね。ありがとうございます。
umyu

2018/04/22 07:04 編集

>k.keigoさんへ 以下の行のようにそもそも論として、ループ内で行う必要がないものもループで行っているきがします。 sysfont=pygame.font.sysFont(None,10) 計算する部分を関数化したり、事前に計算しておくといいかもです。
cand

2018/04/22 07:13

それを使っておりますが…
umyu

2018/04/22 07:45 編集

>k.keigoさんへ 黄色でsysfont=pygame.font.sysFont(None,10)の行にハイライト表示でThe code Unreachableと表示されるはずですが。直訳すると「到達不能コード」 このコードは絶対に実行されません
umyu

2018/04/22 07:48

あと過去の質問でクローズしていないのを見受けられましたので、問題が解決したら、BAを付けてクローズすることをオススメします。
cand

2018/04/22 08:17

ありがとございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問