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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

4回答

241閲覧

%の意味についてご質問

T.T.

総合スコア14

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/01/28 05:26

前提・実現したいこと

pythonでの%の使い方を知りたいです。

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

プログラミングの練習をするサイトで躓いています。
秒数(S)をデジタル時計の形式で表示するコードに出てくる%の意味が判らずなぜこのコードとなるのか理解できません。

該当のソースコード

s = int(input()) h = s // 3600 m = (s % 3600) // 60 s = s % 60 print("%d:%d:%d"%(h, m, s))

試したこと

ネット検索してみたものの%が検索にヒットせず解決策にたどり着けませんでした。

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

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

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

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

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

otn

2019/01/28 06:04

検索する場合は、「Python 演算子」です。「演算子」という言葉は分かりますか? + - * / = < > & | ^ == 等です。
T.T.

2019/01/28 06:19

ご丁寧にありがとうございます。 %dの方が先に検索にヒットしたので%が演算子であること自体気づきませんでした。 今後は「Python 演算子」での検索にて調べるようにします。
otn

2019/01/28 06:26

演算子と思わなかったという事は、構文かと思ったのでしょうか?であれば、「Python 基本構文」とかですね。
ikadzuchi

2019/01/28 11:39

検索にかからない記号を検索したいときは「python パーセント記号」あたりがよいかと。
guest

回答4

0

ベストアンサー

上2つの%は、割り算の余りを求める演算子です。

print()の中に現れる%は、文字列フォーマット用のものです。C言語にprintfという関数があって、それも%dのような書式文字列を採用していたことから、Pythonでも「書式文字列」と「書式化する演算」の両方に%が使われています。

%dの部分に、後からタプルで指定した整数が入っていきます。

4.7.2. printf 形式の文字列書式化(Python 3.6.5ドキュメント)

投稿2019/01/28 05:31

maisumakun

総合スコア145610

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

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

T.T.

2019/01/28 05:49

ありがとうございます! 同じ「%」の記号が出てきたので特に混乱していたようです。 おかげさまで式の意味を理解することができました。
guest

0

m = (s % 3600)の行のコメント文が意味するものが不明ですが質問に対する回答だけ)
(コメントが//だと思いこんでました。失礼しました。)

%は剰余算を表します。
a % bは「aをbで割った余り」という意味です。

10 % 3は3余り1なので、結果は1になります。

投稿2019/01/28 05:31

編集2019/01/28 05:44
dice142

総合スコア5158

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

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

dice142

2019/01/28 05:32

あ、printの方か。
azuapricot

2019/01/28 05:35

%はあまりだから60になるのかな~と思いつつも 割り算系はさすがにわかるだろうと思ってprint()の方書いちゃいました。 (コメントは間違ってるからもしかしたら知らないかもしれないのである意味正解ではあるかも)
LouiS0616

2019/01/28 05:37

すみません、コメントって何のことでしょう?
dice142

2019/01/28 05:39

コメントの値がミスってたから計算式の方に注目しちゃってprint文にも使ってることに気づいてませんでした。。。 print文の方書き足そうかと思ったのですが回答あるしこのままにしときます。
dice142

2019/01/28 05:40

> LouiS0616様 「m=(s%3600)」の行のコメント文です。 sが3600っぽいのでmが60なのはミスかなと。
LouiS0616

2019/01/28 05:41

Pythonの//は整数除算です。コメント行は#なので。
dice142

2019/01/28 05:43

あ、Pythonは // がコメントじゃなかったですね… 訂正しておきます。。。
LouiS0616

2019/01/28 06:05 編集

質問のコードブロックにPythonが指定されていないので、表示のされ方がさらにややこしくなっている感もありますね。 --- maisumakunさん以外のお三方の回答にマイナスが付いてるのが何とも嘆かわしいです。 誰も間違ったこと書いていないのに...
dice142

2019/01/28 06:04

> 誰も間違ったこと書いていないのに... 私はコメントの件があるのでと思ってましたが、 他のお二方はマイナスになるポイントないのでなぜなんですかね…
T.T.

2019/01/28 06:17

サイトの仕組みを理解しておらずご迷惑をおかけして申し訳ございません。 「+高評価」ボタンを押さないとマイナスになる仕組みなのでしょうか? まずは全員の方の「+高評価」を押しました。評価はプラスに変わっておりますか?
azuapricot

2019/01/28 06:19

あぁ、気にしなくていいですよ質問者さん、 この質問を見ているどこかの誰かが、この回答気に入らんとか、間違ってる、とか言った場合に低評価ぽちーと気軽に押すので!
dice142

2019/01/28 06:20

いえ、高評価ボタンを押さなくてもマイナスになることはないです。 質問者様以外でも評価できる仕組みなので、どこかの誰かが何かしらの理由でマイナス評価を押したのだと思います。 基準は人それぞれなので「マイナス押すな」とは言えないのですが、 質問文に対して間違った回答ではないのでなぜなのだろうかと言う疑問です。 なので、質問者様に対する問いかけではないのでご安心くださいませ。
T.T.

2019/01/28 06:21

あ、そういうことだったのですね。 私としては全て参考になりましたので、このまま「+高評価」にいたします。 この度はありがとうございました!
guest

0

http://programming-study.com/technology/python-print/

後ろにある変数の中身を出力した~いってだけです。

投稿2019/01/28 05:30

azuapricot

総合スコア2341

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

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

0

% は剰余(割った余り)です。

投稿2019/01/28 05:30

hiro-k

総合スコア902

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.40%

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

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

質問する

関連した質問