Ruby初心者がPythonを勉強してみた
pythonを少し勉強してみたので分かったことを発信していきます
★ファイル名
語尾に .py を必ず付けてファイルを作ります。
★出力方法
rubyでは puts" ○○○" みたいな感じでしたが、pythonでは print("○○○") という出力方法になります。
あと、最初の1行目に
を記述しないと、ターミナルでエラーを起こしてしまったので忘れずに。
★ランダムで数値を出したい時
数値をランダムで出したい時は、
みたいな感じになります。
まず、import random と記述します。
そうすると random.randint(10, 29) や、 random.random()と記述すれば
好きな数値を出すことができます。
★変数を代入
変数を使って代入したい時は次のようになります。
+ を使って合体させることができます。
文字列はそのまま変数を記述すればいいのですが、数値は数を表す文字に変換する必要があります。
ですので str を使って文字に変換してあげます。
今回は以上にします。
何か気になることがあればまた発信していきます。
Ruby(基礎文法)メソッドについて
今回は学習していて「よく使うな〜」と感じたメソッドを紹介します。
メソッドとは
プログラミングにおける何らかの処理をまとめたものです。
例えばVSコードに記述したメソッドをターミナルに表示させたりできます。
★putsメソッド
Rubyに用意された、ターミナルに値を出力するメソッドです。
putsに続けて値を記述すると、その値をターミナルに出力します。
例えばVSコードに次のように記述すると・・・
このようにターミナルに表示されます。
★getsメソッド
Rubyに用意された、ターミナルに値が入力できるようになるメソッドです。
ターミナルで入力された値は文字列としてプログラムに渡されます。
getsをVSコードに記述すると、記述した行を読み込んだ段階で入力機能が起動し、
ターミナル画面は入力待ちになります。
こんな感じでターミナルは入力待ちになります。
今回は「こんばんは」と入力してみました。
キーボードから値を入力してエンターキーを押すと、getsメソッドは入力した字をプロ
グラムに返します。
★to_iメソッド
文字列が持つメソッド。文字列を数値に変換します 。
★to_sメソッド
数値が持つメソッド。数値を文字列に変換します。
今回は以上です。
メソッドはまだまだたくさんあるので大事だなと思ったものは、
自分なりに解説してみたいと思います。
第二回チキチキ!! Ruby on Rails Timeクラス
今回はTimeクラスの使い方について一文ずつ解説していきます。
now = Time.new
Time.newで現在の西暦、日付、時刻を取得できます。
今回は変数nowに現在の西暦、日付、時刻を代入しています。
※出力例
now.year, now.month, now.day
2行目にいきます。
それぞれ現在の年、月、日を取得しています。
例えば年だけ出力したい時は画像のようにします。
week[now.wday]
3、4行目は一緒に解説します。
now.wdayでは現在の曜日を取得することができます。
しかしnow.wdayだけだと数字だけしか出力されません。
これは日曜日=0 〜 土曜日=6が出力されるようになっているからです。
例えば本日が水曜日だとしてnow.dayと入力してみます。
そうすると水曜=3なのでターミナルでは3が出力されます。
曜日と数字が紐付いていることはわかったかと思います。
しかし数字の出力だけでは現在が何曜日かわかりにくいです。
そこで3行目のweek配列の出番となります。
先ほど同じように本日が水曜日だとすると3が取得できます。
week[now.wday]とすることでweek配列の3番目、
つまり"水"を取得できることになります。
よってターミナルでは'水曜日です'と出力することができます。
第一回チキチキ!! Ruby on Rails アソシエーション
アソシエーションとは、テーブル同士の関連付けのこと
アソシエーションの定義には has_manyメソッドとbelongs_toメソッドを使います
has_manyメソッド
TwitterなどのSNSでは1人のユーザー(user)はたくさん投稿(tweet)できるかと思います。
つまり、1人のユーザーは複数の投稿を持っていることになります。
この関連付けをするため、userと他のモデルとの間に「1対多」のつながりがあることを示すのがhas_manyメソッドです。
belongs_toメソッド
1つの投稿は、1人のユーザーが投稿したものです。
つまり1つの投稿を複数人が投稿できないため、投稿は必ず1人のユーザーに所属します。
Tweetモデルと他のモデル(User)との間に「1対1」のつながりがあることを示すのがbelongs_toメソッドです。
もう少し噛み砕いていきます。学校の授業を例にしてみましょう。
例えば先生1人は複数人の生徒に授業を行います。
先生
↙️ ↓ ↘️
生徒1 生徒2 生徒3
1 対 多
(先生) (生徒)
先生の視点からはhas_manyの関係になります。
今度は生徒の視点から見てみましょう。
生徒1 生徒2 生徒3
↘️ ↓ ↙️
先生
1 対 1
(生徒1)(先生)
当然ですが、生徒1は先生の話しか聞いていません。
他の生徒と話していたら怒られてしまいますからね(笑)
よって、生徒視点からはbelongs_toの関係になります。
今回は以上になります。
何か間違っていたり、アイデアがあれば遠慮なく教えください!