スギボー blog

プログラミングの学習を始めました。主にアウトプットの場として活用していきます。その他生きていて感じたこと、学びになったことも発信していきます。

Ruby初心者がPythonを勉強してみた

pythonを少し勉強してみたので分かったことを発信していきます

 

★ファイル名

語尾に .py を必ず付けてファイルを作ります。

 

★出力方法

rubyでは puts" ○○○" みたいな感じでしたが、pythonでは print("○○○") という出力方法になります。

print("ラーメン美味しい")
# → ラーメン美味しい

 

あと、最初の1行目に

# coding=utf-8

を記述しないと、ターミナルでエラーを起こしてしまったので忘れずに。

 

★ランダムで数値を出したい時

数値をランダムで出したい時は、

import random
aaa = random.randint(10, 29) # 10 ~ 29 までの数値をランダムに
bbb = random.random() # 0 ~ 1 までの数値をランダムに

print(aaa)
# → 22
print(bbb)
# → 0.570946784363

みたいな感じになります。

 

まず、import random と記述します。

そうすると random.randint(10, 29) や、 random.random()と記述すれば

好きな数値を出すことができます。

 

★変数を代入

変数を使って代入したい時は次のようになります。 

ccc = "カレー"
ddd = 3
print(ccc + "を" + str(ddd) + "杯食べた")

 + を使って合体させることができます。

文字列はそのまま変数を記述すればいいのですが、数値は数を表す文字に変換する必要があります。

ですので str を使って文字に変換してあげます。

 

 

今回は以上にします。

何か気になることがあればまた発信していきます。

 

 

 

 

 

 

 

 

 

 

 

 

Ruby(基礎文法)メソッドについて

今回は学習していて「よく使うな〜」と感じたメソッドを紹介します。

 

メソッドとは

プログラミングにおける何らかの処理をまとめたものです。

例えばVSコードに記述したメソッドをターミナルに表示させたりできます。

 

★putsメソッド

Rubyに用意された、ターミナルに値を出力するメソッドです。

putsに続けて値を記述すると、その値をターミナルに出力します。

 

例えばVSコードに次のように記述すると・・・

f:id:super_ouzi:20210407220359p:plain

 

このようにターミナルに表示されます。

f:id:super_ouzi:20210407220427p:plain

 

 

★getsメソッド

Rubyに用意された、ターミナルに値が入力できるようになるメソッドです。

ターミナルで入力された値は文字列としてプログラムに渡されます。

getsをVSコードに記述すると、記述した行を読み込んだ段階で入力機能が起動し、

ターミナル画面は入力待ちになります。

 

f:id:super_ouzi:20210407222042p:plain

f:id:super_ouzi:20210407222035p:plain

こんな感じでターミナルは入力待ちになります。

 

 

f:id:super_ouzi:20210407223731p:plain

今回は「こんばんは」と入力してみました。

キーボードから値を入力してエンターキーを押すと、getsメソッドは入力した字をプロ

グラムに返します。

 

 

★to_iメソッド

文字列が持つメソッド。文字列数値に変換します 。

f:id:super_ouzi:20210407225349p:plain

 

★to_sメソッド

数値が持つメソッド。数値文字列に変換します。

f:id:super_ouzi:20210407225410p:plain

 

 

今回は以上です。

メソッドはまだまだたくさんあるので大事だなと思ったものは、

自分なりに解説してみたいと思います。

 

 

 


 

第二回チキチキ!! 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の関係になります。

 

 

今回は以上になります。

何か間違っていたり、アイデアがあれば遠慮なく教えください!