2012年11月27日火曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIII部(ステートメント)まとめ演習(プログラムを書き直すのソート)4を解いてみる。

その他参考書籍

4.

コード(TextWrangler)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

L = [1, 2, 4, 8, 16, 32, 64]
X = 5

found = i = 0
while not found and i < len(L):
    if 2 ** X == L[i]:
        found = 1
    else:
        i = i + 1
    
if found:
    print("at index", str(i))
else:
    print(str(X), "not found")

print("a")
i = 0
while i < len(L):
    if 2 ** X == L[i]:
        print("at index", str(i))
        break
    i += 1
else:
    print(str(X), "not found")

print("b")
for x in L:
    if 2 ** X == x:
        print("at index", L.index(x))
        break
else:
    print(str(X), "not found")

print("c")
if 2 ** X in L:
    print("at index", L.index( 2 ** X))
else:
    print(str(X), "not found")

L = []
print("d")
for x in range(9):
    L.append(2 ** x)

if 2 ** X in L:
    print("at index", L.index(2 ** X))
else:
    print(str(X), "not found")

入出力結果(Terminal)

$ ./sample.py
at index 5
a
at index 5
b
at index 5
c
at index 5
d
at index 5
$

ちなみにJavaScriptの場合。

コード(TextWrangler)


var result = "a\n";
var L = [1, 2, 4, 8, 16, 32, 64];
var X = 5
var found = i = 0;
while(!found && i < L.length){
  if(Math.pow(2, X) === L[i]){
    found = 1;
  } else {
    i++;
  }
}
if(found){
  result += "at index " + i + "\n";
} else {
  result += X + " not found\n";
}
result += "b\n";
label:{
  while(i < L.length){
    if(Math.pow(2, X) === L[i]){
      result += "at index " + L.indexOf(Math.pow(2, X)) + "\n";
      break label;
    }
    i++;
  }
  result += X + " not found\n"; 
}
result += "c\n";
loop1:{
  for(var prop in L){
    if(L[prop] === Math.pow(2, X)){
      result += "at index " + L.indexOf(Math.pow(2,X)) + "\n";
      break loop1;
    }
  }
  result += X + " not found\n";
}
result += "d\n";
L = [];
for(var i = 0; i <= 8; i++){
  L.push(Math.pow(2, i));
}
loop2:{
  for(var prop in L){
    if(L[prop] === Math.pow(2, X)){
      result += "at index " + L.indexOf(Math.pow(2,X)) + "\n";
      break loop2;
    }
  }
  result += X + " not found\n";
}
$('#pre0').text(result);








						

0 コメント:

コメントを投稿