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

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

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

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

Q&A

解決済

2回答

2443閲覧

pytonで計算の答えが合わない

furusawa

総合スコア40

Python

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

1グッド

1クリップ

投稿2019/02/11 09:40

編集2022/02/07 13:10

前提・実現したいこと

本当に初心は質問で申し訳ないのですが

計算の答えが合いません

python

1 2# coding: utf-8 3import random 4number = random.randint(1, 10) # 匹数 1 ~ 10 5print("体重100キロのスライムが" + str(number) + "匹あらわれた") 6# 合計体重 = 匹数 x 100 7匹数 = str(number) 8total = str(number) * 100 9print("スライムの合計体重は" + str(total) +"キロです") 10
DrqYuto👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

Python

total = str(number) * 100

この部分、ちゃんと意味を意識して書いているでしょうか。
単にnumberを100倍すれば良いのなら、strを噛ませる必要はどこにも無い筈です。

total = number * 100 で充分です。

投稿2019/02/11 09:44

LouiS0616

総合スコア35658

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

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

furusawa

2019/02/11 09:49

すみません理解していませんでした おかげさまでできるようになりました!
furusawa

2019/02/11 09:51

strは文字と数字を混合させる時のみに使えば良いということですね?
LouiS0616

2019/02/11 10:31 編集

数値を十進数の数字列化するとき、ですかね。 数値と数字は全く別物です。英語とアルファベットくらい違う。 数を十進数で扱うのはただ人間の都合であって、コンピュータ内ではそうではありませんので。
furusawa

2019/02/11 10:15

計算で出る数値と表記する数字は内部的には別物という解釈であっていますでしょうか?
LouiS0616

2019/02/11 10:24

内部的にはもちろん、そもそも概念的に別物です。 >>> num = 42 >>> >>> f'{num}' '42' >>> f'{num:b}' # 二進数 '101010' >>> f'{num:o}' # 八進数 '52' >>> f'{num:d}' # 十進数 '42' >>> f'{num:x}' # 十六進数 '2a'
LouiS0616

2019/02/11 14:38 編集

>>> num = 42 >>> type(num) <class 'int'> >>> >>> str_num = str(num) >>> type(str_num) <class 'str'> >>> >>> >>> print(num) 42 >>> print(str_num) 42 >>> >>> num == str_num # 同じように出力されるからと言って、同一視していいわけではない False
LouiS0616

2019/02/11 10:28 編集

>>> 42 * 3 # これは掛け算 126 >>> '42' * 3 # これは、文字列の繰り返し '424242'
LouiS0616

2019/02/11 14:38 編集

コメント整理のため削除
furusawa

2019/02/11 14:32

はじめに理解を深めるご指摘ありがとうございます。 した二つは理解できましたがnumとはなんでしょうか?
LouiS0616

2019/02/11 14:40

内容が散らばってしまったため、少しコメントを整理しました。 ページを更新し、再度ご確認下さい。
furusawa

2019/02/11 14:44

ご配慮ありがとうございます num=numberの略ですね?
LouiS0616

2019/02/11 14:55

説明するうえで変数名は何でも良かったので、numberのnumにしました。 そのときの気分に依ってはメタ構文変数を使ったかもしれません。hogeとかspamとか。 なお、値が42である必然性も特にありません。 10でも100でも良かったのですが、せっかくなので 生命、宇宙、そして万物についての究極の疑問の答え である42を選びました。(元ネタはググってください)
furusawa

2019/02/12 03:53

ググって見ます! ありがとうございました!
guest

0

print("スライムの合計体重は" + str(number * 100) +"キロです")
としたら、想定した出力にあるはずです。

変数に合計体重を代入したいなら,
total = number + 100
でよいです。
そして、
print("スライムの合計体重は" + str(total) +"キロです")
で、表示ができます。

"1" + 2 や 1 +"2" はエラーになります。
文字列と数字は足し算できないからです。

"1" + str(2) は "12" になります。
これは文字列同士の足し算になります。str(2) は 整数 2 を文字列に変換しています。

1 + int("2") は 3 になります。
これは整数同士の足し算になります。 int("2") は 文字列 "2" を 整数に変換しています。

投稿2019/02/11 10:24

katoy

総合スコア22324

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問