• ベストアンサー

python3 for文について

m=3 for i in range(m) i = input() とやった場合に0~2にinputの中身が格納されているんじゃないのでしょうか、print(1)などをやってもエラーが出てしまいます

質問者が選んだベストアンサー

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1525/2219)
回答No.1

i = input()は、input()の結果を変数iに格納します。 3回分のinput()の結果を格納しておきたいのなら、リストなどのデータ構造を使ってください。 m=3 l=[] for i in range(m): l.append(input()) print(l[2]) ↑3回目のinput()の結果だけをprint()しています

str235
質問者

お礼

ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • python3

    def walk(): for i in range(hor): if i == hor_now: print("*", end="") for h in range(var - 1): print("〇",end ="") print() else: for h in range(var): print("〇",end ="") print() print(walk) 普通に出力することはできるんですが、defでユーザー定義関数にすると<function walk at 0x000001541505B9D0>こうなってしまいます、なぜでしょうか?

  • pythonで制作中のプログラムのエラー修繕と速度向上を行いたいのですが...

    こんにちは。いつもお世話になっております。 今回、file("filename.txt", "r")で読み込んだ多次元配列の中から、数字の合計が一番大きくなる長方形を探し出して合計をprintするプログラムを作っています。なんだか分かりにくい説明ですみません...。 例えば、 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 が読み込まれた配列だとしたら、左下の 9 2 -4 1 -1 8 を含む長方形内の数字の合計(9+2-4+1-1+8)が、この配列内の数字の合計の最大になります。この最大合計値を含む長方形を見つけ出して合計をprintさせたいのです。 自力で書いたものは以下です↓ myFile = file("matrix.txt", "r") row = 0 for line in myFile: line = line.rstrip() nums = line,split(" ") dim = len(nums) for col in range(dim): matrix[row][col] = int(nums(col))←ここでエラーが出てしまいました   row = row+1 myFile.close() sumMatrix = [[0 for j in range(dim)] for i in range(dim)] for m in range(dim): for n in range(dim): mySum = 0 for p in range(m+1): for q in range(n+1): mySum = mySum = matrix[p][q] sumMatrix[m][n] = mySum for i in range(dim): for j in range(dim): print sumMatrix[i][j], 8行目のエラーを解消させたいのと、このプログラムで配列が大きいものになると、とても遅くなってしまうようなので、もっと早いものにしたいのですが... ご回答、よろしくお願いします。

  • Pythonにおける空要素での2次元配列作成の方法

    現在、Pythonにおける空要素の2次元配列の作成(初期化)について、 初歩的な事柄でありながらも引っかかっています。 list1 = [] print(list1) #[] list2 = [[]for i in range(5)] print(list2) #[[], [], [], [], []] list3 = [[0 for i in range(5)] for j in range(3)] print(list3) #[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] list4 = [["" for i in range(5)] for j in range(3)] print(list4) #[['', '', '', '', ''], ['', '', '', '', ''], ['', '', '', '', '']] 各種解説サイトを探して、list3やlist4の形での作成方法は見つけたのですが、 list1やlist2のように、完全な空要素(null?)での方法は見当たらず、 自分でも手探りで試してみたのですが、うまくいきませんでした。 今欲している、 #[[], [], [], [], []], [[], [], [], [], []], [[], [], [], [], []] という出力を得るためには、どのように作成したらよろしいでしょうか。

  • Python: TypeError

    Pythonでテキストファイルから数字を読み込む時に、スペースで区切られたデータをパラメータセットとして配列の中に格納したいのですが、その際にチェック事項があってFor LoopにTryを挟んでいます。この状態でどうしても下記のエラーが出るのですが、どのようにすれば良いのでしょうか? 宜しくお願い致します。 TypeError: argument 2 to map() must support iteration --- def ReadOutput1(): f = open('C:/Users/.../output1.txt','rb') output = [] for line in f: ls = line.split(' ') for i in range(4, 8)): try: modelParams[i-4] = map(add, float(ls[i])) except ValueError: (...) return output

  • for文が全然ループしていない

     下のようなfor文を作って回してみましたが、チェックのために一番最後に書いたPRINT文で「0」が表示され、その下に下線表示だけです。  一体どこが悪いのでしょうか。全く分かりません。  また「$i==9」を「$i=<9」と書いていましたら、エラー表示になりました、何が原因でしょうか。  エディター(TeraPad)の認識に原因があるのでしょうか。  文法のエラー表示は出ていません。  9*9の表を表示させるだけの簡単なコードなのですが。 <html><head><title>make_matrix_html</title></head> <body> <table border="1"> <?php for($i=1;$i==9;$i++){ print ("<tr><br />"); for($j=1;$j==9;$j++){ print ("<td>".($i*$j)."</td>"); } print ("</tr>"); } print ($i*$j); ?> </table></body></html>

    • ベストアンサー
    • PHP
  • python超初心者です(3時間目)。pythonで以下のようなランダ

    python超初心者です(3時間目)。pythonで以下のようなランダム数列を生成させるにはどうしたらいいのでしょうか? 最終結果のイメージ(16進数8桁の数列x20行): 0 : c39a29eb 1 : b26cc9bb 2 : 4c494e47 ... 19: 93c85836 以下のようにコードを組んでみたのですが、 > tmp = ws.join(list) > TypeError: sequence item 0: expected string, int found のようなエラーが出てしまいます。どうやら数字を連結しようとしてるのでダメなのかな?と思っています。 ======================================== #! /usr/bin/python import random list = [] ws = "" for i in range (20): print i, ":", for j in range(8): list.append(random.randint(0,15)) tmp = ws.join(list) print tmp list = [] tmp = "" ======================================== ※ printでは必ずスペースが入ってしまうので、それを嫌う場合配列に入れて、要素を連結させなくてはならない、とwebにあったので、その方向で試してみました。 ※ また、ここではあくまでrandom を使用し、一文字(0,1,2,...E,F)づつ出力させたいと思っています。 なお、perlでは以下のように書くことができたのですが... ======================================== #! /usr/bin/perl for($i=0; $i<20; $i++){ printf ("%-02s: ", $i); for($j=0; $j<8; $j++){ printf("%x", int(rand(15)) ); } print "\n"; } ======================================== ※ んー第二言語としてpythonを学習してみていますが道のり険しそうです(やっぱrubyにしようか)... 宜しくお願い致します。

  • プログラミング(Python)について

    「整数 a_1, a_2, a_3, a_4, a_5 が半角スペース区切りで与えられるので、改行区切りにして 5 行で出力してください。」というPythonの問題です。なぜmapを用いた場合は、for i in range(1000)ではなくて、for a_i in aにしなければならないのか分かりません。 そもそもa_iの意味も分かりません... 調べてもよく分かりませんでした。

  • for文の組み合わせ方 [2]

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=2460708 の関連質問になります。 最初に前回コメントいただけた方にお礼申し上げます。 前回お伺いした方法で、 $sql="SELECT ID,ITEMNAME FROM ITEM ORDER BY ID"; $msql="SELECT SHOPID,SHOPNAME,ITEMNAME,IF(L.ITEM=A.ITEMID,'○','') FROM (SELECT I.ID AS ITEMID,S.ID AS SHOPID,SHOPNAME,ITEMNAME FROM ITEM I, SHOP S) AS A LEFT OUTER JOIN LINK L ON L.ITEM = A.ITEMID AND A.SHOPID = L.SHOP ORDER BY SHOPID,ITEMID"; でデータを取得し、 下記で行列に店名と商品を表示する事ができました。 $in = mysql_query($sql,$db) $in2 = mysql_query($msql,$db) $ln = mysql_num_rows($in); $ln2 = mysql_num_rows($in2); print("<TABLE border=1>"); print("<TR>"); print("<TD>"); print("</TD>"); for($i=0;$i<$ln;$i++) { $lw = mysql_fetch_row($in); print("<TD>".$lw[1]."</TD>"); } print("</TR>"); print("<TR>"); for($i=0;$i<$ln2;$i++) { $lw2 = mysql_fetch_row($in2); print("<TD>".$lw2[1]."</TD>"); //○を付ける処理 //print("<TD>".$lw2[3]."</TD>"); print("</TR>"); } print("</TABLE>"); ただ「SHOPIDが変わったら改行」という処理方法がわからずの状態になっています。 IF文で○じゃなければ<TD></TD>を埋め込む?などと思いやってみましたが やり方がおかしいのかうまくいっていません。 値の比較方法と、それをどのように組み込めばいいかコメントお願いします。 ※併せてですが、この後このPHPで作成された表をCSVに出力したいのですが、可能でしょうか?

    • ベストアンサー
    • PHP
  • pythonのfor文のエラーについて

    現在pythonでwebスクレイピングの勉強をしている者です。 質問があるのですが、 from selenium import webdriver browser=webdriver.Chrome() browser.get("https://movie.jorudan.co.jp/cinema/") #クラスからリンクを抜き出してクリックさせる。 siwake=[] elems=browser.find_elements_by_class_name("item-body") for i in elems:  elem=i.find_element_by_tag_name("a")  elem.click() #クラスのジャンルからaタグのテキストを抜き出して前のページに戻る。  elem=browser.find_element_by_class_name("genre")  elem=elem.find_element_by_tag_name("a").text  browser.back()   #抜き出した情報をsiwakeの空のリストに追加する。  siwake.append(elem) 上記のコードで映画のジャンルの一つ目を抜き取りたいのですが、for文を回すとエラーが出てしまいます。 エラーとしては、 elems=browser.find_elements_by_class_name("item-body") for i in elems: ……→elem=i.find_element_by_tag_name("a") 上の一文がエラーとして出てきます。 また、一番下にはMessage:stale element reference: element is not attached to the page document という表記が出てきます。   どなたか原因が解る方がいらっしゃいましたらご教示して頂けると幸いです。 参考HPはhttps://movie.jorudan.co.jp/cinema/です。 よろしくお願い致します。

  • ForEach...文でRows(1)を指定エラー

    For Each element In group ...Next ステート文で、group に Rows(1) を指定し、セルのValueプロパティを取得しようとするとエラー「型が一致しない」が出る。指定した範囲内の1行目のセルの値を確認しようと以下のマクロを作り、実行するとエラーが出る。その理由をどなたか教えてください。 Sub testA() Dim r0 As Range Dim r1 As Range Dim cr As Range Dim i As Integer Dim result as Boolean Set r0 = Worksheets("Sheet1”).Range("B4:D5") Set r1 = r0.Rows(1) For Each cr In r1 Debug.Print cr.Value ‘*** (0) エラー発生 Next cr ‘*** 以下はうまくいく。 For Each cr In r1 Debug.Print cr.row ‘*** (1) Debug.Print cr.Column ‘*** (2) Next cr result = TypeOf r1 Is Range  ‘*** (3) Debug.Print result ‘*** True ‘*** 確認したいことをFor Each … Next を使わないで, ‘*** セルを相対位置で指定すればうまくいく。 For i = 1 to r1.Columns.count Debug.Print r1.Cells(1, i).row Debug.Print r1.Cells(1, i).Column Debug.Print r1.Cells(1, i).Value ‘*** エラーなし Next i End Sub よく分からないのは(1)(2)(3) なのに なぜ Value プロパティ取得で(0)「型が一致しない(実行時エラー’13’)」になるところです。環境はExcel 2013, Windows 10です。 よろしくお願いします。