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

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

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

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

Q&A

解決済

2回答

953閲覧

inputのエラーについて

horuotty

総合スコア1

Python

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

0グッド

0クリップ

投稿2020/10/24 00:29

前提・実現したいこと

 今現在インド式算数をPythonで表現しようとしているんですが、こちらのコードを入力して値が200くらいまでのものだったら問題なくいけるんですが、300以上のものになると急に間違い扱いになり先に進むことができません。数値が大きくなるとエラーが発生するということがなぜなのかが分からない状態です。input周りがおかしいのかなとも思ったのですが……
もしよろしければご回答いただけますと幸いです。

該当のソースコード

import random
num1 = random.randint(1,9)
num2 = 10 - num1
num3 = random.randint(1,9)
print(num1,num2,num3)

hoge = 10num3 + 1num1
hage = 10num3 + 1num2
print(hoge)
print(hage)
print(hoge, "*", hage)
print('①十の桁について左×(右+1)とする②一の位同士をかける')

hege = hoge * hage
print(hege)
print('答えは?')
while True:
e =int(input('>> '))
if e is hege:
print('正解!')
break
else:
print('やり直し')
continue

python

試したこと

int(input(>> ))の()内を(>> )などとすると(半角スペースふたつ)全ての答えが間違いと認識されることがわかった

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

y_waiwai

2020/10/24 00:31

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答2

0

ベストアンサー

単純に

diff

1- if e is hege: 2+ if e == hege:

ってだけの話でしょうねぇ。

投稿2020/10/24 00:41

gentaro

総合スコア8947

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

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

horuotty

2020/10/24 00:44

ありがとうございます!できました! しかしなんでこれで200までだったらエラーなしで300以上だったらエラー扱いになるかがわかりません! ちょっとまた勉強してみようと思います……
horuotty

2020/10/24 00:52

あー……まさにドンピシャな回答でした(笑) いやあまさにこれですね!感動しました! 本当に勉強になりました!丁寧にありがとうございました!
gentaro

2020/10/24 00:53

それはよかった。 ただ、コメント欄で指摘されているとおり、コードを載せる時はマークダウンをちゃんと使ってください。 Pythonはインデントに意味があるんで、今の質問文のようにインデントが崩れているとコードを読む側に無駄に負担をかけます。
horuotty

2020/10/24 00:57

わかりました!ありがとうございます! コピペしてみたんですけどインデントが大きく崩れてますね……
gentaro

2020/10/24 00:59

質問の投稿前にプレビューも見れるし、投稿後に確認することもできる筈です。 そういうところをちゃんとやろうとせず労力を惜しんでると、所詮ロクに調べもせず質問してるんだろうな、と受け取られて、回答もらえる機会が減ります。
horuotty

2020/10/24 01:01

わかりました!今後はよく注意しながら投稿しようと思います! ありがとうございます!
guest

0

int(input(>> ))の()内を(>> )などとすると(半角スペースふたつ)全ての答えが間違いと認識されることがわかった

とのことですが、これをしたときとしないときの、e の値を見てみましょう。
どうなってるでしょうか

投稿2020/10/24 00:33

y_waiwai

総合スコア88042

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

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

gentaro

2020/10/24 00:51

質問文に > て値が200くらいまでのものだったら問題なくいけるんですが、300以上のものになると急に間違い扱いになり と書いてあるとおりじゃないでしょうか。 そもそも回答になってないので、コメント欄で質問するべき内容だと思いますが。(間違えた?)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問