2012年11月19日月曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の3章(リストと配列)、3.11(練習問題)2を解いてみる。

その他参考書籍

2.

コード(TextWrangler)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

my @names = qw(fred betty barney dino wilma pebbles bamm-bamm);
print "数のリストを(1行に1個ずつ入力\n";
print map{$names[$_-1]."\n"} <STDIN>;

入出力結果(Terminal)

$ ./sample.pl
数のリストを(1行に1個ずつ入力
1
2
4
2
fred
betty
dino
betty
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var names = ["fred","betty","barney","dino","wilma","pebbles","bamm-bamm"];
var numbers = [];
var str, number;
while(true){
  str = prompt("正の整数(1から7)を入力(空文字で終了)","");
  if(/^\s*$/.test(str)) break;
  if(/^[^1-7]$/.test(str)){
    alert("入力値を確認してください");
    continue;
  }
  numbers.push(parseInt(str));
}
var result = "";
for(var i = 0; i < numbers.length; i++){
  result += numbers[i] + ": " + names[numbers[i] - 1] + "\n";
}
$('#pre0').text(result);


pythonの場合。

sample.py

コード(TextWrangler)

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

import re

names = ['fred','betty','barney','dino','wilma','pebbles','bamm-bamm']
numbers = []
pattern = re.compile(r"^\s*$")
pattern_num = re.compile(r"^[^1-7]$")
print("数値(正の整数)を入力(1行に1つずつ、空文字で終了)")
while True:
    str = input()
    if re.match(pattern, str): break
    if re.match(pattern_num, str):
        print("数値を入力してください。")
        continue
    numbers.append(int(str))

for x in numbers:
    print("{0}: {1}".format(x, names[x-1]))

入出力結果(Terminal)

$ ./sample.py
数値(正の整数)を入力(1行に1つずつ、空文字で終了)
1
2
4
2

1: fred
2: betty
4: dino
2: betty
$

0 コメント:

コメントを投稿