アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミングについての質問です。
inputで数値を入力し、その入力した数値の分だけ(おはよう)の文字を出力したいのですが、どうしてもうまくいきません。下記の①~③までの文章は固定で、これ以降どのようにしたらうまくいくのでしょうか。(forを使って繰り返し処理を行いたいです)
①i = 0
②i= input('何個のおはようを表示しますか:')
③print(f'i= {i}')

自分は
for z in range (i):
print("おはよう")
このように打ち込んだのですかうまくいきませんでした。
③以降どうすればよろしいのでしょうか。
お力添えよろしくお願いいたします。

A 回答 (3件)

> ③以降どうすればよろしいのでしょうか。



③まで無駄。
特に①のようにPythonでiを0で初期化する必要なんざない。
C言語なんかで良く行われるテだが、Pythonに持ってくれば単なる悪習だ。
宿題だとすれば、出題者はPythonを何も分かってない、かあるいは何も考えてないかのどっちか、だ。

Pythonだと一行で済む。

[print('おはよう') for z in range(int(input('何個のおはようを表示しますか:')))]

これで題意としては十分だ。
    • good
    • 0

>for z in range (i):



ここで止まるはず。i は文字列だが、range関数はintしか受け付けない。

しかし、どううまくゆかなかったか、エラーメッセージくらいは
質問に載せるのが礼儀だと思う。
回答者に余計な負担をかけます。
    • good
    • 0

このサイトにアップするとインデントが崩れるので、下記にアップしました。


https://ideone.com/8pSXOP

入力した値のiは、文字列型なので、数値型に変換する必要があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!