なりなり日記

Appleと折りたたみ自転車(BROMPTON / Tern Vektron S10 / BESV PSF1)の情報を中心に発信中!

9/30から東海道・山陽新幹線のチケットがネットで買ってSuicaで使えるようになる!

こんにちは、なりなりです(^ ^)

正直、やっとかよというサービスですけどね。

http://jr-central.co.jp/ex/#s1http://jr-central.co.jp/ex/#s1

これに伴って、現在、年会費が必要なサービスとして提供されているEX予約は消滅する(スマートEXに統合される)ようです。


スマートフォンでの登録方法 | スマートEXとは | スマートEX

何故かモバイルSuicaに関する言及が無いのですが、こちら、「スマートフォンでの登録方法」の「交通系ICカード情報入力」によると

登録済の交通系ICカードを別の会員が登録することはできません。エクスプレス予約会員で登録しているモバイルSuicaとの重複登録もできません。

と書かれており、モバイルSuicaでも使えそうな雰囲気です。

流石に使えると思いたいですが、登録も9/30からということです。


JR東日本も、とっとと対応よろしく!

【Python入門】オブジェクト・クラス・インスタンス

こんにちは、なりなりです(^ ^)

僕が初めてオブジェクト指向のプログラミング言語に触れたのはC++でしたが、オブジェクトの説明を見ると、「世の中の物は全てオブジェクトであり...」など、何か話が難しそうだし、出てくる言葉に馴染みが無いために逃亡したくなりがちです。

でも、そうすると後々困るし、いうほど難しくないし、クラスは作らないにしても使わないことはあり得ないので、Pythonのオブジェクト(Object)について、簡単にまとめておきます。


5分で絶対に分かるオブジェクト指向:5分で絶対に分かる(1/6 ページ) - ITmedia エンタープライズ
オブジェクトについて、この説明は分かりやすいかも。


Pythonのオブジェクトの作りは下記の様になっており、C++と大差ありません(スマホの場合、横表示にすると見やすい)。

オブジェクト(Object)
|ークラス(Class)  : オブジェクトの宣言
|  |ープロパティ(Property)    クラスのメンバー変数
|  |  |ークラス変数     クラス共通で存在
|  |  |ーインスタンス変数  インスタンスごとに存在
|  |ーコンストラクタ(Constructor) メンバー変数の初期化
|  |ーメソッド(Method)      クラスのメンバー関数
|
|ーインスタンス(Instance) : オブジェクトの例(実体)

クラスはオブジェクトの定義であり、その実体をインスタンスと呼びます。

クラスについては、クラスと聞いて誰もが思い浮かぶ、学校のクラスをイメージすればいいです。

クラスのメンバーには名前、性別、年齢などの特性(Property)と変数が有り、プロパティにはクラスの人数といったクラス全体で共通のクラス変数と個々のメンバーの変数であるインスタンス変数が有ります。

インスタンス変数が不定とならないようにコンストラクタで初期化するのが通例であり、特性を知る手段(Method)が有ります(名簿を見るとか)。


簡単なクラスの宣言例が下記です。

class MyClass:             #クラス名の先頭は大文字が慣習
 """クラスの説明"""
 number = 40              #クラス変数の初期化

 def __init__(self):      #コンストラクタ関数名は決められている
   self.name = ""         #インスタンス変数の初期化
   #self.gender = ""      #追加予定のインスタンス変数
   #self.age = ""         #追加予定のインスタンス変数

 def getName(self):       #インスタンス変数を表示するメソッド
   return self.name

 def setName(self, name): #インスタンス変数を変更するメソッド
   self.name = name

モジュールの冒頭、クラスの冒頭、関数の先頭に三重クォート """...""" で記述したコメントは、ドキュメントストリング と呼ばれ、モジュールオブジェクト、クラスオブジェクト、関数オブジェクトの__doc__アトリビュートで参照できて、例えば

 >>> print(MyClass.__doc__)
 'クラスの説明'

 といった具合。

定義したクラスの使い方としては、

taro = MyClass()           #taroをインスタンスとして生成

taro.setName("Yamada Taro") #taroの名前を"Yamada Taro"に設定
print(taro.getName())       #taroの名前を出力

といった具合。

こうして整理してみると、それ程難しくありませんよね。


今回で、Pythonの文法的なお勉強はお仕舞いにして、プログラミングの過程で知らないことが出てきたら、都度勉強します。

プログラミングは、あまり根を詰めて文法の勉強すると途中で嫌になりますから(英語の勉強に似てる)、ざっくり理解したら、興味の有るプログラムを実際に組んでみるのが一番です。

逆に、仕事上でも、プライベートでも構いませんが、作ってみたいプログラムが思い浮かばない人は、プログラミングを習得するのは難しいです。


僕の場合は、取り敢えず

  • とっかかりとして、iPhoneの標準タイマーに無い、秒数の指定出来るタイマー
  • iPhone同士のBluetoothトランシーバ(奥さんとのサイクリングで使いたい)
  • 川崎市のテニスコートの空きを調べるプログラム(ホームページがアホで使いにくいから。Java Scriptでもやってみる)
  • 仕事で使うプログラムのとっかかりとして、FIRフィルタ係数計算プログラム
  • FIRフィルタ係数プログラムで使いたい固定小数点クラス
  • 仕事で使い出したマイコン(PSoC)と通信するプログラム(合わせてPSoCの勉強も)
  • PSoC 4Lの評価ボードとiPhoneでBLE通信するPythonistaプログラム

などを作る予定です。

久しぶりにプログラムに触れて、ちょっと楽しくなってます。ソフトはハードより敷居が低いのが良いです(^-^)

AirMac Expressを購入しました!

こんにちは、なりなりです(^ ^)

我が家のWi-FiルーターはAppleのTime Capsuleなのですが、先週あたりからオレンジLEDが点灯することが増えて、家でWi-Fiが繋がらない頻度が急に上がりました。

Time Capsuleは購入後8年ほど経っているため、そろそろ寿命か?と思ったのですが、せっかく買ったものの、やは購入後8年MacBookが調子悪くなることは一度も無く、バックアップ機能の必要性を感じなくなっていたため

AirMac Expressを購入しました。


こちらパッケージ。よく分からないと思いますが、とてもコンパクトです。


本体に同梱されているのは、簡単な取説と電源ケーブルのみですが、大きさが分かるようにiPhone 5を置いてみました。


正面にはLEDのみ


背面にはETHERが2ポートとUSB、ACコネクタのみです。

ETHERはWAN側で1つ必須なので、LAN接続は1ポートのみとなります。


Time Capsuleと比較するとコンパクトさがよく分かりますね。


PCレスで、iPhoneから新しいAirMac Expressを検出して設定できます。


特に悩むことは無いはずですよ(^-^)


ただ…問題が解決しません。

切り分けていったところ、なんと、マンションの回線から宅内に引き込んだところにある、玄関に置いておるルーターが壊れかけていたようです。

ルーターを買ってきて交換したら解決しました(⌒-⌒; )


結局、AirMac Expressは要らなかったのですが、元々、ベッドルームのWi-Fiの入りが悪かったので、ベッドルームに置いて使うことにしました。

MacBookのバッテリーもいまだ健在ですし、Apple製品は多少割高ですが丈夫ですよね。

【Python入門】リテラル・変数・コメントアウト

こんにちは、なりなりです(^ ^)

今回はPythonの文法の基礎として、リテラル、変数、コメントアウトについて勉強しましょう!

リテラルとは

リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことです。

じゃあ、定数と呼べばいいじゃないかという話は置いときます(⌒-⌒; )

数値リテラル

数値リテラルは

  • 真理値(True, False)
  • 整数
  • 浮動小数点数
  • 複素数

の4種類とシンプル。文系の人は複素数も必要無いでしょう。

10進数の整数は説明不要ですよね。

これも文系の人には馴染みが薄いかもしれませんが、Pythonでは2進数(bynary)、8進数(Octal)、16進数(hexadecimal)の表記が素直で、それぞれ数値の前に"0b"、"0o"、"0x"を付ければOKです。

また、10進数をそれぞれに変換して文字列として返す関数、bin()、oct()、hex()も有り、これらを使って10進数の12を変換すると、

>>> bin(12)
'0b1100'
>>> oct(12)
'0o14'
>>> hex(12)
'0xc'
>>> 0xc
12

となります。

単純にoctaやhexaを入力してやるとdec(10進)に変換してくれます。

>>> bin(-1)
'-0b1'

負の数を2進数表現すると、ハードウェアのエンジニア的には残念な表示になります。

LSIなどで演算する場合は、通常は固定小数点型で、符号付き整数は2の補数で表します。

この場合、-1は4ビットの整数なら0bF、8ビットなら0bFFになるんです。

と言うわけで、そのうち固定小数点型を自分の手で作ることになりそうです。

Pythonも演算子のオーバーロードが出来るようなので、過去にC++で作った固定小数点型をPython化すると思います。

文字列リテラル

"文字列"
'文字列'

として表し、'(シングルクオーテーション)と"(ダブルクオーテーション)の区別は有りません。

CやExcelでは半角1文字は'で囲む「文字」、全角又は半角2文字以上は"で囲む「文字列」で慣れているので、気持ち悪く感じる人は多い気がします。

要するに、Pythonには文字列しかなく、文字というリテラルが無いのです。

変数

変数宣言

Pythonには昔のBASICよろしく、変数宣言がありません。これには、C言語やJAVAをはじめとした言語を知っている大半のプログラマーが違和感を覚えるでしょう。

その変数の型は、最初に入力された値で決まるのですから。僕も変数宣言は有った方が良いように感じます。

変数の型

Pythonに標準で用意されている型、組込み型には

  • 真理値型
  • 整数型
  • 浮動小数点型
  • 複素数型
  • 文字列型
  • リスト型
  • 辞書型

などが有ります。

文字列型まではリテラルと同じで、定数が変数になっただけ。

リストによく似たものにタプルという聞きなれないものも有りますが、リストと違って

  • 一度定義された要素を変更出来ない
  • 各要素の型は別々(数値と文字列とか)で構わない

といった特徴が有ります。

変更出来ないので、いわゆる変数とは一線を画しますね。僕には使い所が想像出来ません。

リスト型

リスト型はC言語などでいう配列型で、要素として真理値型〜文字列型を指定出来ます。

>>> list=['リンゴ','バナナ','キウイ']
>>> list
['リンゴ', 'バナナ', 'キウイ']
>>> list[0]
'リンゴ'

リスト型の初期化と要素の表示例です。

辞書(ディクショナリ)型

リスト型に似ていますが、これは先に例を見た方が分かりやすいでしょう。

>>> dic={'リンゴ':100,'バナナ':200,'キウイ':300}
>>> dic
{'リンゴ': 100, 'キウイ': 300, 'バナナ': 200}
>>> dic['キウイ']
300

辞書型という名前の通り要素をキーで指定するのがリスト型と異なるところです。

辞書型の初期化は中括弧を使うところもリスト型との違いです。

中括弧はiPhoneだと入力に困りますが、Pythonistaが追加表示してくれる括弧の長押しで表れます。

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220


僕はあまり使いませんが、データベースなどを扱うには辞書型は便利でしょうね。

コメントアウト

apple = 100  #リンゴの価格

#の後ろがコメントになります。

Cでの//と同じですね。コメントアウト出来るのは一行だけです。


Python公式のコメントアウト方法はこれだけですが、テクニックとして

'''(シングルクオーテーション3つ)と'''の間、又は、"""(ダブルクオーテーション)と"""の間の複数行をコメントアウト出来るようです。

但し、'''と'''、'''"と"""のインデントが合っていないとエラーとなります。


今日はここまで(^-^)

文法の勉強は早くも飽きてきたのですが、最後に次回、オブジェクト思考型言語として重要な、オブジェクトやクラスについて書いて終わろうと思います。

マクセル(maxell)のEMSトレーニングギア「もてケア4極タイプ」でトレーニング開始!

こんにちは、なりなりです(^ ^)

マクセル(maxell)のEMSトレーニングギア「もてケア4極タイプ」を購入しました! - なりなり日記

購入した、maxellのEMSギア「もてケア4極タイプ」が届きました(^-^)


パッケージ表面


こちら裏面

  • お腹まわり
  • 腰まわり
  • 太もも

に使えるようです。

太腿にも使ってみようかな。太腿の強化は、テニスは勿論、トレランにもサイクリングにも重要ですから。

太腿は、朝のパワーアンクルを着けての24F階段上りでも鍛えていますけど。


付属品は

  • 簡単な取説
  • 本体
  • 保管シート(厚紙の台紙)
  • ゲルパッド
  • USBマイクロケーブル
  • ACアダプタ

です。


本体裏面のアップ


ゲルパッドのブルーのシートを剥がします。これはスッと剥がれます。


4個貼ったら


反対面の透明シートを剥がしますが、ブルーと違って貼り付きが強いので、ゲルパッドが外れない様に慎重に剥がします。


保管シートに乗せたら、USBケーブルを挿してしばし充電。LEDが消えたら充電完了です。

充電には1時間ほどかかるそうですが、実際に空になってから充電したところ40分ほどでした。

それでも、日々の使い方で何日で充電が必要になるかを見定めて、切れる前に充電した方が良さそうです。

満充電時の動作回数は

  • レベル1 : 30回
  • レベル5 : 20回
  • レベル15 : 10回

本体上面には

  • 電源ボタン
  • 強弱ボタン
  • マイクロUSBコネクタ

が有るだけのシンプルな作りです。


こちら、トレーニング開始前の僕のお腹です。

元々痩せていますし、歳の割にはお腹ポッコリでもありませんが、薄っすら割れ程度の弱々しい腹筋ですね。


摘めるのはこの程度。

サイクリングやトレランをするには、特に腹筋不足とは感じませんが、テニスでスピンサーブを打つには貧弱に感じています。

因みに、僕の本日の体組計とメジャーでの測定結果(帰宅後夕飯前)は

  • 体重 58.6kg
  • 身長169cm
  • ウェスト 75.5cm
  • 体脂肪率 18.3%
  • 体幹皮下脂肪率 10.7%
  • 体幹骨格筋率 27%

でした。

体脂肪率が思いのほか多いんですよねぇ、ジジイの証か(⌒-⌒; )


トレーニングは簡単


  • 電源ボタンを押すとレベル1でスタート
  • +ボタンを押してレベル調整
  • 自動的に15ステップのトレーニングが20分行われて電源オフ

です。

TVでも見ながらぼやっとしているうちに終了です。


注意点は様々有りますが

  • 同じ部位での使用は1日2回まで
  • 20分以上の連続使用をしない
  • 週に2日は休む

などが、トレーニングでの注意事項になります。


僕 レベル7(8だと少し痛かった)
奥さん レベル4

でスタートしました。痛く無い範囲で始めた方が良いでしょうね。不快なほどの刺激は避けるようにと注意書きがあります。

設定するレベルは、トレーニング強度は勿論、お腹の脂肪の厚さにも大きく依存すると思います。

脂肪が厚いと電気が腹筋に伝わりにくいですから。

うちの奥さんはお腹出しNGということなので、腹筋が出来る回数で効果を確認していきます。

僕も合わせて記録していきます。

二人とも、もてケア以外での腹筋トレーニングはしません。腹筋トレーニングは嫌いなので(⌒-⌒; )

本日、無理の無い範囲で腹筋が出来た回数

僕 25回
奥さん 20回

意外と出来た奥さんに対して、大差の無い僕でした(⌒-⌒; )


さて、今後、どうなっていくでしょう!?

トレーニングの効果は1月程度では出ないので、報告は2〜3ヶ月毎になると思います。

ナイキ(NIKE)のメンズテニスパンツ コート フレックス エースを購入!

こんにちは、なりなりです(^ ^)

今週末のテニストーナメント予選に向けて、テニスパンツを購入しました。

今まで、アンダーアーマーの短パンを履いていたのですが、土曜日の予選初日(R1はシード、R2とR3が有り)に勝ち残ると日曜日も2試合(R4とR5)が有るため、2枚目を用意しておこうかと。

初戦敗退かもしれないので初日に履きますけど(⌒-⌒; )


左右のデザインです。


通気性向上のために小さな穴が開いています。


裏返してみると、ウェスト調整用のバンジーコードとポケットが見えます。普通の短パンの作りです。


因みに、先週のマスターズ1000の出場選手は、自分のモデルを持っているフェデラー、ナダル以外のナイキ契約選手は皆、こちら、ナイキコート フレックスを着用していました。


写真からするとポケットがパンツの外側に縫い付けてあるようです。デザインが好みじゃありませんでしたが、実はボールが取り出しやすいのかも。

普通のポケットだと、セカンドサーブの時にボールを取りすと、ポケットがでろーんと外に出てしまいやすいですから。

UNIQLOのパンツは特に酷くて使いにくいです。


購入したのはJPのSサイズで、タグを見ると、ウェスト75cm、身長160-170cmとなっています。

NIKE.comのサイズチャートでは、ウェスト74.5~79.5cm、ヒップ88.5~93.5cmとなっています。

僕の場合、ウェスト76cmなのでピッタリ(^-^)


アンダーアーマーのS/Mサイズの短パンとの比較がこちら。

ナイキコートの方が短く細い。


最新のUNIQLOのドライパンツ Mサイズと比べると太くて短い。

因みに、UNIQLOのパンツは僕には緩くて、ドローコードをかなり締め上げる必要ありです。

【Python入門】インタラクティブモードで関数電卓として使う

こんにちは、なりなりです(^ ^)

Pythonはプログラミング言語ですが、プログラムを組むのは敷居が高いという人にもお勧めです(^-^)

僕が通信系のハードウェアエンジニアということもありますが、Pythonはインタプリタで、かつ、インタラクティブモードを備えるため、プログラミングに興味が無くても、関数電卓としてとても便利です。

技術系の人はWindows PCやスマホの標準電卓では機能的に足りず、PCではExcelを使ったりするでしょうが、Pythonの方が便利です。

専門的な計算にはMATLABを使う人もいるでしょうが、あれは30万円ほどしますよね。

Pythonは基本的にフリーのオープンソースですから、NumPyという無料の拡張モジュールを使えば、行列演算までこなしてしまいます。

Simulinkまで使わないなら、Pythonで事足りるかもしれませんよ(^-^)


関数電卓としての簡単な使用例を

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

iOSアプリのPythonista 3で動かしながらご紹介します。

インタラクティブモードは実行画面と同じで

ファイル表示モードから左スワイプ


するとプログラミングモードに切り替わるので、もう一度左スワイプ


これで、実行、インタラクティブモードに切り替わります。


ここで、数学関数ライブラリmathや複素関数ライブラリcmathをモジュールとして使えるようにするには

import math
import cmath

としてやればいいです。


一番下のウィンドウに入力すると


入力式は「>>>」の右、実行結果は下の行に現れますが、このやり方だとmath.log10()といった感じで、少々入力が面倒…こんな時は

>>> from math import *
>>> log10(100)
2.0

の様にしてやると、モジュール名を指定する必要が無くなって便利です。

mathライブラリはC言語のライブラリを使用するので、三角関数、双曲線関数、指数関数、対数関数、べき乗関数、誤差関数など、理数系の計算の大半を網羅しています。

>>> from cmath import *
>>> a=10+5j
>>> a
(10+5j)
>>> b=4+3j
>>> a+b
(14+8j)
>>> a*b
(25+50j)
>>> cos(a+b)
(203.80397430636788-1476.4792883345817j

複素数の計算もこの通り普通に出来ますから、フーリエ変換なども簡単に出来ます。

因みに、数学では虚数をiで表し、工学ではjで表す習慣ですが、Pythonではjで表します。


iPhoneなどでは各種関数電卓を入手出来ますか、PCでの計算が面倒だとお感じの方はお試しください(^-^)

マクセル(maxell)のEMSトレーニングギア「もてケア4極タイプ」を購入しました!

こんにちは、なりなりです(^ ^)

僕は大好きなトレラン、サイクリング、テニスのために

  • 通勤時にパワーアンクルを装着して職場の24階まで階段で上がる
  • 毎晩TVを見ながら腕と脚のストレッチ、両手を使ってアイソトメリック トレーニング
  • お風呂に入る前に腕立て伏せ

などをして、体を結構鍛えているのですが、

  • 昔から腹筋は苦手
  • トレーニングが苦手で体力の無い奥さんに少し運動させたい

という理由から、EMSトレーニングギアを試してみることにしました。

EMSトレーニングギアは通販で様々販売されていますが、どれも販売元がよく分からず怪しげ…と思っていたら、たまたま行ったビックカメラで良さげなものを見つけました。

maxellの「もてケア」とは

もてケア EMS運動器 - マクセル

それが、maxellの「もてケア」です。maxellが健康器具分野に進出しているとは知りませんでした。

もてケアには


腹筋、太腿、腰に使える4極タイプ


二の腕、脇腹、お尻に使える2極タイプ


ウェストとヒップに使える6極タイプの3タイプが有ります。


サポート諸々考えて、maxellオンラインから購入しました。

maxellオンラインは楽天、Amazon双方に有り、僕は楽天ポイントが有ったので楽天にしましたが

Amazonでは6極、2極共に割引価格で販売されており、Amazonプライム対象にもなっています。


まずは基本の4極タイプが14,904円(税込、送料無料)で、交換用ゲルパッドが2セットで4,212円(税込、送料無料)です。

さて、これが高い買い物かどうかは、効果次第ですね。

ビックカメラには4極の実物が有ったのでお腹に貼ってみましたが、結構協力で、最大レベルにしなくても腹筋がよじれるほど効きました。

勿論、お腹の脂肪が厚いほど、効きは弱くなると思いますが(⌒-⌒; )

物が届き次第、実機紹介をして、あとは定期的な効果レビューを行う予定です(^-^)

SIX PADも悩みました

対抗馬としては、今、楽天などで一番人気で、クリスチアーノ ロナウドで一躍有名になったSIX PADも調べてみましたが、どうにも割高に感じて二の足を踏んでしまいました(⌒-⌒; )


シックスパッド アブズフィット2(Abs Fit 2) 腹筋を鍛える | SIXPAD公式サイト

こちら、正規代理店MTGの公式オンラインショップ


こちらは、MTGのAmazon店



こちらは、MTGの楽天店

買うなら、何れかのMTG公式ショップが良いでしょう。

abs fit 2はボタン電池式だったabs fitをUSBケーブルを使った充電式にしたりした改善品なので、今更旧品のabs fitを買うことはないでしょうね。

また、腕や脚を同時に鍛えられるbody fitなどたのお得なセット販売も有りますが、効果も定かでは無いので、まずは単品購入でしょう。

そもそも、僕の場合は手足は別途鍛えているため、abs fit 2以外は必要無いです。

ただ、abs fit 2単体でも27,864円(税込、送料無料)と、庶民にはなかなか高価です。

更に、体と密着させるためのゲルパッドが1〜2ヶ月ごとに交換が必要で、定期的に購入する割引プランでも3,283円(税込、送料無料)ですから、2ヶ月ごとの交換としても年間19,698円となり、ランニングコストもバカになりません。

ランニングコストがこれだけかかるのですから、本体価格はせめて1万円台に抑えて欲しかった。

インクジェットプリンターの様なビジネスモデルが可能なはずですからね。

悩んでいましたが、もてケアを見つけた時点で、敢えてSIX PADを購入する気は無くなりました。

【Python入門】if文、for文、while文、関数でのインデントが特徴的

こんにちは、なりなりです(^_^)

f:id:narinarissu:20170802190006p:plain

C/C++でのプログラミングはそこそこ出来るけど、Pythonは初心者という立場でPythonに関するチップスを、マイペースでまとめていきます(^-^)

Pythonの特徴は変数宣言が無いことの他、様々ありますが、他のプログラミング言語では全く見られない特徴は、インデントが文法になっていることでしょう。

if 文の場合

条件判断文であるif文は、Cであれば

if (a > b) {
    printf("aはbより大きい¥n");
} else if (a > c) {
    printf("aはb以下だがcより大きい¥n")
} else {
    printf("aはb、c以¥n")
}

といった書き方をします(上記例では中括弧は必須ではありません)が、printf()の行のインデントは、人間が見やすいように入れているだけであって、コンパイラは認識していません。

つまり、Cのというか、大抵のプログラミング言語のインデントは記述マナーであって文法では有りません。

しかし、これがPythonの場合だと

if a > b :
    print("aはbより大きい")
elif a > c :
    print("aはb以下だがcより大きい")
else :
    print("aはb、c以下")

となり、print()文のインデントは文法であり、しないとインタプリタがエラーを返してきます。

if文とelifやelseの間の文はインデントで識別されるため、if文の実行分(この場合print()文)が何行になろうとも、Cの様な中括弧は使いません。

if行の末尾の':'や、'else if'を'elif'と大胆に略しているもの特徴的ですね。

これらの規則の結果、Cのプログラムの様にプログラマーの個性によって、いろいろな書き方がされることが無くなります。

尚、Pythonでは文字列を囲む''(クオーテーション)と""(ダブルクオーテーション)は全く同じ扱いですが、CやExcellでは、文字は''文字列は""で囲むので、合わせた方が違和感がないです。

for文の場合

for文も中々個性的です。

Cなら

for(i = 0; i < a; i++){
    実行分1;
    実行分2;
}

と記述しますが、Pythonになると

for i in range(a):
    実行分1
    実行分2

となります。

range関数が見慣れませんよね。

それに、inってどういうこと?

実はinの後ろはlist、Cなどでの配列です。

range()はrange([start,]stop[,step])という書き方が出来て、startとstepは省略可能です。

range()はstartからstopより小さい最大整数までをstep刻みでリスト(配列)化したオブジェクトを返しますから、上の例のrange(5)は[0,1,2,3,4]というリストを返します。

for i in range(5)で、リストの頭から順に最後までiに代入してループを繰り返します。

inの後ろはリストならOKなので、文字列のリストなどでもfor文が組めますから、

b = ["1st","2nd","3rd","4th"]

for i in b:
	print(i)

と言った記述が可能です。

while文の場合

上のfor文をwhile文で書くと

i = 0
while i < a:
    実行分1
    実行分2
    i += 1

となります。

Cと違ってi++という記法はサポートされていません。

関数の場合

例えば、x + yを返す関数なら

def add(x, y):
    ans = x + y
    return ans

これだけです。

引数xとyを使ってansを計算します。

ansはadd関数内のローカル変数となり、「return 値」で関数が値を返します。値を返さないならreturn文は不要です。

>>> def add(x, y):
...   ans = x + y
...   return ans
...   
>>> add(2,3)
5

実行結果がこちら。

つまらない例ですが、これが分かれば大抵の関数が作れます。簡単ですね(^-^)

関数には無名関数というものもあり、同じものをキーワードlambdaを使ってラムダ式で表すと

lambda x, y : x + y

となります。まさに名前の無い関数ですが、これ自体がオブジェクトとなっており

>>> (lambda x, y : x + y)(2,3)
5
>>> add2 = lambda x, y : x + y
>>> add2(2,3)
5

こういった使い方が出来ます。

これの何が良いかピンと来ないのですが、プログラミングを続けていくと出くわすのでしょう。


プログラミングの基本構文である、if文、for文、while文、関数だけとっても、なかなか面白いですね、Pythonは(^-^)

関連するエントリー

www.narinarissu.net

www.narinarissu.net

2017年10月にwilsonのテニスラケットPRO STAFFのカウンターベイル搭載モデル登場!

こんにちは、なりなりです(^ ^)


Wilsonは10月には、以前ご紹介したPRO STAFF RF85に合わせて、2本のPRO STAFFを発売します。

1本目はPRO STAFF 97CV。
こちらは現在も販売していますPRO STAFF 97に、疲れを軽減する素材Countervail(カウンターベイル)を配合したモデルです。

Countervailと言えば、錦織選手から4年ほど前に
「疲れないラケットなんて出来ないですよね(笑)?」
とリクエストされたのがきっかけで採用となった素材。

振動衝撃減衰性能が高いので、筋肉の疲労を軽減できる…

つまり筋肉疲労を少なくし、ファイナルセットでも"疲れないというパワー"を発揮できるというラケットなんです…

でも正直、一般プレーヤーに取っては「疲れないパワー」という恩恵よりは、「マイルドな打球感」として体感頂くことが多いと思います。

そうなんです!

ここ最近よく耳にする"柔らかい打球感"を持ったPRO STAFFなんです。

現行のPRO STAFF 97と打ち比べると、より雑味のない、繊細な、極上なフィーリングを感じて頂けると思います。


2本目はPRO STAFF 97L CV。
こちらは新企画のPRO STAFF。
近しいモデルと言えばPRO STAFF 97LS。

それにCountervail(カウンターベイル)を配合し、ストリングスパターンをノーマルに仕上げたラケット。

こちらも"柔らかい打球感"をもったPRO STAFFです。

フェデラーのPRO STAFF RF97が340g。

先に紹介したPRO STAFF 97CV (PRO STAFF 97)が315g。

このPRO STAFF 97L CV (PRO STAFF 97LS)が290g。少しだけ軽めのPRO STAFFという位置づけとなります。

BURN、BLADE、ULTRAの3モデルに搭載済みのCOUNTERVAIL(カウンターベイル)が、遂にPRO STAFFにも搭載されるとのことです。

まずは定番のPRO STAFF 97CVとライトモデルのPRO STAFF 97L CVの2本に搭載されるそうです。

楽しみですね(^-^)