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

pythonについての質問です。 def S_sa(k=1)

for step in xrange(k) :
if step == 0 :
print 'a'
else
print 'b'
というコードがあって、なぜかprint aが実行されるのはなぜでしょうか?

xrangeのreturnは1ではないのでしょうか?

A 回答 (1件)

> xrangeのreturnは1ではないのでしょうか?



なぜ、そう思うのですか?
どこかにそう書いてありましたか?

http://docs.python.jp/2/library/functions.html#x …

> この関数は range() に非常によく似ていますが、リストの代わりに “xrange オブジェクト” を返します。
> このオブジェクトは不透明なシーケンス型で、対応するリストと同じ値を持ちます

とあるのですから、まず、「1」という整数オブジェクトだ、ということがありえません。
説明通りにrangeのマニュアルを読めば

http://docs.python.jp/2/library/functions.html#r …

range(k) は range(0,k,1) であり、
0 から 0+n*1<0+k*1 まで1ずつ増える整数のリスト(xrangeはそのリストと同等)だとわかります。
    • good
    • 0

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