Perlのハッシュでキーの有無を調べる方法

March 19,2019 12:03 AM
Category:[Perl]
Tag:[Perl]
Permalink

Perlのハッシュでキーの有無を調べる方法を紹介します。

1.問題点

Perlで下記のようなハッシュを作成しました。

my $hash;
 
$hash->{orange} = 1;
$hash->{grape} = 1;
$hash->{apple} = 1;

このハッシュに"apple"というキーが存在するか調べたいのですが、方法がわかりません。

ということで、ハッシュにキーが存在するか調べる方法を紹介します。

2.ハッシュにキーが存在するか調べる

ハッシュにキーが存在するか調べるには、exists関数を使用します。

#!/usr/bin/perl
 
use strict;
 
my $hash;
$hash->{orange} = 1;
$hash->{grape} = 1;
$hash->{apple} = 1;
 
if ( exists $hash->{apple} ) {
    print "exist";
} else {
    print "no exist";
}

"apple"はキーに存在するので、実行結果は、

exist

となります。

if文に記述したハッシュキーを、存在しない任意の文字列に変更してみます。

#!/usr/bin/perl
 
use strict;
 
my $hash;
$hash->{orange} = 1;
$hash->{grape} = 1;
$hash->{apple} = 1;
 
if ( exists $hash->{abc} ) {
    print "exist";
} else {
    print "no exist";
}

"abc"はキーに存在しないので、実行結果は、

no exist

となります。

Comments [0] | Trackbacks [0]

Pythonのシングルクォーテーションとダブルクォーテーションの違い

March 13,2019 12:03 AM
Category:[Python]
Tag:[Python]
Permalink

Pythonのシングルクォーテーションとダブルクォーテーションの違いについて調べてみました。

1.はじめに

2.シングルクォーテーションとダブルクォーテーションの違い

シングルクォーテーションとダブルクォーテーションの違いは特にありません。

PHPなどでは変数を展開する場合にダブルクォーテーションで括る必要がありますが、Pythonはそのような仕様はないようです。

PHPの場合

$str = 'World';
echo "Hello $str";

またPythonでは下記の考慮が必要です。

シングルクォーテーション:文字列にシングルクォーテーションが含まれる場合、エスケープが必要

str = '\'Hello World\''

ダブルクォーテーション:文字列にダブルクォーテーションが含まれる場合、エスケープが必要

str = "\"Hello World\""

言い換えると、逆のパターンであればエスケープは不要です。

str = "'Hello World'"

または

str = '"Hello World"'
Comments [0] | Trackbacks [0]

Pythonで改行せずに出力する方法

March 12,2019 12:03 AM
Category:[Python]
Tag:[Python]
Permalink

Pythonで改行せずに出力する方法を紹介します。

1.問題点

Pythonで下記のスクリプトを書きました。

test.py

print "Hello World!"
print "Hello World!"

このスクリプトを実行させたところ

$ python test.py
Hello World
Hello World

という風に改行が含まれてしまいます。

改行せずに出力する方法が分かりません。

ということで、Pythonで改行せずに出力する方法を紹介します。

改行せずに出力する方法は2つあります。

2.改行せずに出力する(その1)

改行せずに出力する1つめの方法は、1行目のprint文の末尾にカンマを付与することです。

test.py

print "Hello World!",
print "Hello World!"

これを

$ python test.py

と実行すれば、

Hello World Hello World

が出力されます。

3.改行せずに出力する(その2)

改行せずに出力する1つめの方法は、sys.stdout.writeを用いることです。

2項の方法では文字列の間に空白が含まれてしまいます。

この空白も除去したい場合、sys.stdout.writeを用います。

test.py

import sys
 
sys.stdout.write('Hello World')
sys.stdout.write('Hello World')

これを

$ python test.py

と実行すれば、

Hello WorldHello World

が出力されます。

なお、最後の行に改行を含めたい場合、

test.py

import sys
 
sys.stdout.write('Hello World')
sys.stdout.write('Hello World\n')

とすればよいでしょう。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages