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

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

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

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

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

Q&A

5回答

1734閲覧

エラーの解決、nの出力。

cf.meteo

総合スコア1

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

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

0グッド

0クリップ

投稿2021/06/17 11:27

編集2021/06/17 13:45

前提・実現したいこと

nの出力

発生している問題

数字を入力しても何も起きない(エラーメッセージすら書かれない)

### 該当のソースコード `n=input()   f=2   while f*f<n: while n%f<1: print(f) n=n/f   f=f+1   if(n!=1):   print(n) ```ここに言語名を入力 python ###エラーコード 実行した後にenter を押すと次のようにエラーが出ました。 Traceback (most recent call last): File "tyuukan4.py", line 1, in <module> n=input() File "<string>", line 0 ^ 調べたこと 様々なことを行い今の状態にたどり着きました。修正箇所を教えていただけると幸いです。 ### 補足情報(FW/ツールのバージョンなど) 疑似コードがこれです。 n を入力する f=2 while f の自乗が n を超えない { while n が f で割り切れる { f を出力 n を f で割る } f を 1 増やす } if n が 1 に等しくない n を出力

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

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

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

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

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

y_waiwai

2021/06/17 11:31

エラーが出るならエラーメッセージを提示しよう
cf.meteo

2021/06/17 11:34

ご指摘ありがとうございます。ただいま修正しました。
y_waiwai

2021/06/17 11:36

?エラーは出ないってことかな?
BeatStar

2021/06/17 11:38

コードは "<code>"または"<コード>" を押して出てくるやつの中に書きましょう。 インデントが無視されて読みづらいです。(というかPythonはインデントがモノを言う言語では?)
cf.meteo

2021/06/17 11:38

エラー文は出なく、反応がない状態です。
meg_

2021/06/17 12:20

コードは「コードの挿入」で記入してください。 > 数字を入力しても何も起きない 何の数字を入力されましたか?
cf.meteo

2021/06/17 13:06

このような数字を打ちました 1234456732425436456675767 このように適当に打ったのですが反応しません
退会済みユーザー

退会済みユーザー

2021/06/17 13:27

osはWindowsですか?
退会済みユーザー

退会済みユーザー

2021/06/17 13:28

あとpythonはどのようにインストールしましたか?
meg_

2021/06/17 13:37

質問のコードを実行すると「IndentationError」が出るので、適当に修正して実行したところ「TypeError」が出ました。 > 数字を入力しても何も起きない(エラーメッセージすら書かれない) とのことなので、実際に実行したコードを掲載いただけないでしょうか?
cf.meteo

2021/06/17 13:46

今掲載しました。申し訳ございません。
guest

回答5

0

違うかもしれませんが「f=f+1」のインデントが間違っていませんか。
nに仮に25を入れると、n%f=>25%2=>1となるのでwhile n%f<1:以下が実行されません。
f=f+1が「while n%f<1」のループの中にあると、fもnも全く変化しないので「while ff<n:」のループだけが永遠に回り続け、表面上何も表示されない、エラーすら表示されない状態になっているのではないでしょうか。
多分「while f
f<n:」の次の行にprint(n)を入れたらnが延々出力されると思います。

擬似コードに基づいてインデントを入れるとこうなると思います。

python

1 n=input() 2 f=2 3 4 while f*f<n: 5 while n%f<1: 6 print(f) 7 n=n/f 8 f=f+1 9 if(n != 1): 10 print(n)

投稿2021/06/18 08:25

pia

総合スコア14

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

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

0

追記、修正の依頼でosが何か尋ねたのですが教えていただけなかったので少しエスパー回答します。

Windowsでパスの追加が上手くいってないのでは?
Windowsはパスが設定できてないとストアアプリ用のpythonを使おうとしておかしなことになります。
公式のpythonをインストールしているならもう一度インストールし直して「パスを追加する」みたいなとこにチェックを入れてpythonのパスを追加してみてください。

投稿2021/06/17 14:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2021/06/17 14:05

そもそもpythonをインストールしていないって可能性もありますね。 であればpythonの公式サイトからインストールしましょう
cf.meteo

2021/06/17 14:42

返信しなくて申し訳ございません。Macです。
退会済みユーザー

退会済みユーザー

2021/06/17 14:55

最低でもosの情報は載せましょうね。
退会済みユーザー

退会済みユーザー

2021/06/17 14:58 編集

もう一度聞きますがpythonはどのようにインストールしましたか? それともインストールしていませんか?
cf.meteo

2021/06/18 04:07

下の質問のように Python 2.7.16 と出てきました。
退会済みユーザー

退会済みユーザー

2021/06/18 05:52

> 下の質問のように 回答のコメントだとわかりにくいので質問に追記・修正してください。(情報が分散していて分かりにくい) Macにはもとから2系のpythonが入っていますが、「Python 2.7.16と出てきました」ということは Macに元から入っているpythonを使っていて自分ではインストールしていないということでしょうか?
退会済みユーザー

退会済みユーザー

2021/06/18 05:57

macに元から入っているpythonはかなり古いバージョンなので 通常は新しいバージョンのpythonをインストールして使います。 BeatStarさんが既に回答していますが、新しいpython用のプログラムを古いpythonで実行しているのが問題なのでは
guest

0

python

1n=input() 2print(type(n))

上記コードを実行すると
変数nは<str>型なので

python

1n=int(input()) 2print(type(n))

上記コードのように入力値をキャストする必要があります.
そのため,

python

1while f*f<n:

のところでエラーが出るはずです.

投稿2021/06/17 13:23

NR4200

総合スコア41

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

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

0

nには文字列が入っていて、fは整数ですから、エラーが出るはずです。

どうやって、プログラムを実行していますか。
実行方法に問題があるはずですので、それを示してください。

投稿2021/06/17 12:22

ppaul

総合スコア24668

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

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

cf.meteo

2021/06/17 13:07

python ファイル名.pyと実行しました
ppaul

2021/06/17 13:39

python -V を実行してみてください。 もしも Python という文字が出てくるようでしたら、Pythonがインストールされていないか、またはPATHが設定されていません。 その場合はPythonをインストールしてください。 もしも、Python 3.9.0 のような文字が表示されるようでしたら、それを教えてください。
cf.meteo

2021/06/17 14:45

Python 2.7.16 こう出てきました。返信遅くなって申し訳ございません。
ppaul

2021/06/18 11:12 編集

現在のコードでは、 `n=input() の先頭にバッククォートが入っていますが、本当にこれでエラーメッセージが出ないのですか。 こちらで実験すると、 >>> `n=input() File "<stdin>", line 1 `n=input() ^ SyntaxError: invalid syntax となっています。
guest

0

(修正中...)
(『エラーメッセージぐらいは読みましょう』と書いたが、後出しで『エラーメッセージ無し』と書かれたため、修正の上、様子見)


エラーメッセージは質問にあるだけですか?

もしそうなら、もしかしたらこれが原因かも知れません。

つまり、Python3を使うべきなのに、Python2を使っているとか。

情報が曖昧なのでわかりませんが。

投稿2021/06/17 11:36

編集2021/06/17 15:28
BeatStar

総合スコア4962

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

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

BeatStar

2021/06/17 15:31

『Python input file string line 0』で検索したら出てきたやつですが。
cf.meteo

2021/06/18 04:08

他のPythonファイルは実行できたので、Pithon自体は問題ないかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問