• 締切済み

python

pythonについての質問です。 def S_sa(k=1) for step in xrange(k) : if step == 0 : print 'a' else print 'b' というコードがあって、なぜかprint aが実行されるのはなぜでしょうか? xrangeのreturnは1ではないのでしょうか?

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> xrangeのreturnは1ではないのでしょうか? なぜ、そう思うのですか? どこかにそう書いてありましたか? http://docs.python.jp/2/library/functions.html#xrange > この関数は range() に非常によく似ていますが、リストの代わりに “xrange オブジェクト” を返します。 > このオブジェクトは不透明なシーケンス型で、対応するリストと同じ値を持ちます とあるのですから、まず、「1」という整数オブジェクトだ、ということがありえません。 説明通りにrangeのマニュアルを読めば http://docs.python.jp/2/library/functions.html#range range(k) は range(0,k,1) であり、 0 から 0+n*1<0+k*1 まで1ずつ増える整数のリスト(xrangeはそのリストと同等)だとわかります。