何もかもが初心者ですが

プログラミングもアウトプットもブログも初心者ですが、初心者なりに成長するためにブログを書こうと思います

11/14~11/20 学習時間

※この日記は人に見せるものではなく、1週間の学習時間の記録としてつけていくものである。

再度、プログラミング関係の勉強がしたくて、侍に入塾した。

 

週25時間の勉強時間の確保が難しく、振り返りのために再度、1週間に一度日記をつけていこうと思う。

 

目標学習時間:25時間

11/14~11/20 学習時間 → 24時間 目標未達成

原因

11/14 に友達と1日遊んだため

11/17 に遊びに行ってしまったため

 

学習目標:HTML完成+Javascript着手

結果:未達成

原因

XDを使った画像作成に手間取った

HTMLの構成考えに時間がかかった

CSSの作用が思ったようにいかなかった←これが一番

 

来週の目標:週25時間

学習目標:HTML完成+Javascript着手

 

今週学習した内容として

XDのリードグリッドを使って似た画像を作成する方法

CSSで斜め線を利用する方法

 → transform: skew(X軸 ,Y軸); 斜め

 →overflow: hidden; 親要素に設定してはみ出た部分は見えなくする

 

javascript

 遊びながら(悪戯的なものを作りながら)学んでいきたい

 

ポートフォリオ

 技術を詰め込んだ遊び心系と真面目系、2種類作って自身の力量を紹介していきたい→それに必要なのは、

 WEBデザインの構造の理解

 HTML、CSSJavascriptの知識

 

 

本日は以上

PHPもやってみよう 9月2日

関数

関数とは

あるまとまった処理を行い、値を返すもの
Rubyでいうところのメソッド

# 文字数を数える
puts "PHP".length # =>3 

# 代入した場合
a ="PHP"
puts a.length # =>3 
// 文字数を数える
echo strlen("PHP"); //=>3

# 代入した場合
$a ="PHP";
echo strlen($a); # =>3 

私から見た違い
Rubyは対象にメソッドをくっつける形
PHPは対象を関数の引数にする

関数の作り方 => function 関数名(){ 処理 }

  • 引数なしの場合
function test(){
echo "Hello,world";
}

test(); //=>Hello,world

 ↓ Rubyメソッド(引数なし)を作る場合

def test
  puts "Hello,world"
end

test #=>Hello,world
  • 引数ありの場合
function test($test1,$test2){
  echo $test1*$test2;
}

// ↓わかりやすくしてみた
// function test($test1,$test2){
                          ↓   ↓
//           echo $test1 * $test2;

//  }

test(2,3); //=>6

 ↓ Rubyメソッド(引数あり)を作る場合

def test(test1,test2)
  puts test1*test2
end

#↓わかりやすくしてみた
# def test(test1,test2)
#           ↓      ↓
#   puts test1 * test2

# end

test(2,3)

return(戻り値)

関数によって返された値のことを「戻り値」という

function test($test1,$test2){
  return $test1*$test2;
}

$get = test(2,3)
echo $get //=>6

 ↓ Rubyの場合

def test(test1,test2)
  test1*test2
end

a = test(2,3)
puts a

私から見た違い
PHPRubyも処理内容を上に記述、実際の処理は下
Rubyの場合は、戻り値がメソッド内の最後の部分(endの前)に記述されていれば、returnを書かなくても戻り値になるが、PHPはreturnが必要

参考  PHP | プログラミングの入門なら基礎から学べるProgate[プロゲート]

Cherry本勉強中 9月1日

メソッド 定義

デフォルト値付き引数

メソッドを呼び出す際、引数の数は基本同じでないとエラーになる
<例>

def fruit_cake(fruit)
  if fruit == "いちご"
    "#{fruit}パフェ"
  else
    "チョコパフェ"
  end
end

puts fruit_cake #=>`fruit_cake': wrong number of arguments (given 0, expected 1) (ArgumentError)(引数少ない)
puts fruit_cake("みかん") #=>チョコパフェ(引数一緒)
puts fruit_cake("いちご") #=>いちごパフェ(引数一緒)
puts fruit_cake("みかん","いちご") #=>`fruit_cake': wrong number of arguments (given 2, expected 1) (ArgumentError)(引数多い)

引数少ない場合のエラー解消方法の一つ => デフォルト値付き引数

def メソッド(引数1= デフォルト値1,引数2=デフォルト値2)
  必要な処理
end

引数にデフォルト値を付けると、引数の数が少なくても、デフォルト値がそこを補填してくれる

def fruit_cake(fruit = "いちご")
  if fruit == "いちご"
    "#{fruit}パフェ"
  else
    "チョコパフェ"
  end
end

puts fruit_cake  #=>いちごパフェ(引数がなかったからデフォルト値で補填されている)
puts fruit_cake("みかん") #=>チョコパフェ
puts fruit_cake("いちご") #=>いちごパフェ
  • 引数のデフォルト値は使うとなったときに、必ず全ての引数に付ける必要はない
def number(a,b,c = 0,d = 0)
  "one=#{a},second=#{b},third=#{c},fourth=#{d}"
end

puts number(1,2) #=> one=1,second=2,third=0,fourth=0
puts number(1,2,3) #=> one=1,second=2,third=3,fourth=0
puts number(1,2,3,4) #=> one=1,second=2,third=3,fourth=4
  • 引数はメソッドの戻り値にすることも可能
require "date"

def argument(day=Date.today,day_message = message)
  "本日は#{day}。今日一日メッセージは#{day_message}"
end

def message
  "洗濯日和"
end

puts argument

Date.todayはrequire "date"をした状態でないとエラーが出るので注意

末尾が「?」のメソッド

例えば

valid? #=>バリデーションを通りますか?(通る=>true/通らない=>false)
include? ("abc")#=>引数の文字を含んでいますか?(含んでいる=>true/含んでない=>false)
nil? #=>nilですか?(nil =>true/nilじゃない=>false)

「?」で終わるメソッドは「〜〜ですか?」の質問メソッドで、その通りであるならtrue/その通りでないならfalseを返す

末尾が「!」のメソッド(注意が必要なメソッド)

使用する時は注意が必要なメソッド
例えば

a = "abc"

puts a.upcase #=> ABC
puts a #=>abc(ここに注目!)

puts a.upcase! #=> ABC
puts a #=> ABC(ここに注目!)

upcase!の場合はupcaseとは違い、元のデータまで大文字にしてしまった(こういう元のデータまで変えてしまうメソッドを破壊的メソッドという
「!」の場合、破壊的メソッドだから「!」が付くわけではない。
あくまで末尾「!」メソッドは使用する時は注意が必要なメソッドなだけであり、使用する際は注意しよう。

参考 「プロを目指す人のためのRuby入門」

PHPもやってみよう 8月31日

繰り返し処理

for文

for ($i = 1;$i<= 100;$i++){
  echo $i;
}

$i = 1; //初期値
$i<= 100; //ループの条件(この場合は100以下)
$i++ //変数の更新
echo $i; //繰り返す処理
for ($i = 1;$i<= 100;$i++){
  echo $i.<br>;
}

echo $i.<br>; //これをしないと数字が改行してくれない
//例
1
2
3
4...

while文

rubyのwhile文と似たような形

Rubyの場合

s = 1
while s <= 100 do
  puts s
  s +=1
end 

PHPの場合

$s = 1
while ($s <= 100){
  echo $s;
  $s++;
}

条件が2つあるときは、while文内にif文に入れてやることもある

break文

ループを強制的に中断する命令文

for ($i = 1;$i<= 100;$i++){
  if ($i >5){
    break; //$iが6になった時点で終了
}
  echo $i;
}

// 12345まで表示される

continue文

breakは完全にそのループを終わらせてしまうが、continueは条件があったものをスキップさせてそのままループを続ける

for ($i = 1;$i<= 100;$i++){
  if ($i %5==0){
    continue; //$iが5の倍数のみループを終了し、次のループへ(つまりスキップする)
}
  echo $i;
}

//5の倍数の数字だけ表示されない

foreach文

Rubyのeach文に似たもの

Rubyの場合

cities= ["新宿","池袋","渋谷"]

cities.each do |city|
  puts city
end

PHPの場合

$cities = array("新宿","池袋","渋谷");
foreach($cities as $city){
  echo $city;
}

連想配列の場合

$cities = array(
"新宿"=>"歌舞伎町",
"池袋"=>"サンシャイン",
"渋谷"=>"109"
);
foreach($cities as $key =>$value){
  echo $key.":".$value."";
}

//$keyは"新宿","池袋","渋谷"
//$valueは"歌舞伎町","サンシャイン","109"

参考  PHP | プログラミングの入門なら基礎から学べるProgate[プロゲート]

Cherry本勉強中 8月31日

真偽値と条件分岐

&& ||

-Rubyは左から順に式を評価する
左から評価していって、式全体が真か偽かを判断する(判断できたところでストップ)

puts ""
puts 4 && 5 && 6
puts ""
puts 4 && nil && 6
puts ""
puts 4 && false && 6
puts ""
puts nil && 5 && 6

puts ""
puts nil || false
puts ""
puts false || nil
puts ""
puts nil || false || 4 || 5
①
6
②

③
false
④

⑤
false
⑥

⑦
4

わかったこと
&&は偽が出るまで式を評価し続け、||は真が出るまで式を評価し続ける
出ない場合は、最後に評価したものを表示する

コンソールには、falseは表示されるが、nilの場合は「nil」と表示されず、空白で表示される

&&と||の使い方

上でのことを利用した活用方法

# A、B、C の順に検索し、最初に見つかったグループ(nil又はfalse以外の値)を変数に格納する
group =find_group("A") || find_group("B") || find_group("C") 

# 正常なユーザーであれば、メールを送信する
user.valid? && send_email_to(user)

if文以外でも使用できることを改めて知りました。

優先順位が低いand/or/not

  • 似たような働き
    and => &&
    or => ||
    not => !
    注意点
    似たような働きをするが、and/or/notは&&/||/!よりも優先順位が低い
優先順位 高い
!
&&
||
not
and or
優先順位 低い

注意点
rbファイルで確かめた結果、andもorも聞かない、cherry本に書いているように表示されませんね

t1 = true
t2 = true
f1 = false

puts t1 || t2 && f1 # t1 || (t2 && f1)
puts t1 or t2 and f1 # (t1 or t2) and f1

puts t1 || (t2 && f1)
puts (t1 or t2) and f1

puts true and false
puts true && false
true
true
true
true
true
false

cherry本を見ると、&&だけだと優先順位の兼ね合いで括る場所が異なるため、andを使用することがあると書いてありますが、同様に&&と()を使用すれば同じ処理ができるということだったので、私はそっちでやっていこうと思います。
基本、and/or/notは制御フローで使用するとのことです。

unless文

if文の否定版「〜ではないなら」=>falseであれば表示する
elseにはtrueだった場合を記述する
elsifはunless文にはない

case文

case文は「case when else」を使用する

country = "italy"

# if文
greeting = 
  if country == "japan"
    "こんにちは"
  elsif country == "us"
    "Hello"
  elsif country == "italy"
    "ciao"
  end

puts greeting 

# case文
greeting = 
  case country #case 対象のオブジェクトや式
  when "japan" #when 値1
    "こんにちは" # 値1だった場合の処理
  when "us" #when 値2
    "Hello" # 値2だった場合の処理
  when "italy" #when 値3
    "ciao" # 値3だった場合の処理
  else
    "???"
  end

puts greeting 

case文は条件(when)のところに複数条件をつけることが可能

country = "日本"

greeting = 
  case country
  when "japan" ,"日本" #when 値1-1,値1-2
    "こんにちは" # 値1-1又は値1-2だった場合の処理
  when "us" ,"アメリカ"
    "Hello" 
  when "italy" ,"イタリア"
    "ciao" # 値3だった場合の処理
  else
    "???"
  end

puts greeting 
# 日本と表示される

?を使った条件分岐

式? trueの処理 : falseの処理

if文と比べると

#if文
n = 11
if n>10
  puts "10より上"
else
  puts "10より下"
end

# ?を使った条件分岐
puts n > 10 ? "10より上": "10より下"

参考 「プロを目指す人のためのRuby入門」

PHPもやってみよう 8月27日

配列について

a = ["カレーライス","オムライス","ハヤシライス"]

puts a[0]
# カレーライスが表示される
$a = array("カレーライス","オムライス","ハヤシライス");

echo [0];
// カレーライスが表示される

arrayの意味はそのまま「配列」 Rubyの方が配列は簡単なんだなぁ...

配列の追加・上書き

a = ["カレーライス","オムライス","ハヤシライス"]

# 追加の場合
a << "カツカレー"
puts a

# 上書きの場合
a[0] = "カツカレー"
puts a
# 追加の場合
カレーライス
オムライス
ハヤシライス
カツカレー

#上書きの場合
カツカレー
オムライス
ハヤシライス
$a = array("カレーライス","オムライス","ハヤシライス");

//追加の場合
$a[]="カツカレー";
echo $a[3];
// カツカレー

//上書きの場合
$a[0] = "カツカレー";
echo $a[0];
// カツカレー

$a[]これで配列の末尾を表すらしい...

連想配列

私は今、Rubyのハッシュが連想配列ということを知りました。←
- Rubyの場合

#どちらも連想配列

b = {"fruit"=> "果物","juice"=> "飲み物"}
puts b["fruit"]

b = {fruit: "果物",juice: "飲み物"}
puts b[:fruit]
果物
果物
$b = array(
        "fruit"=> "果物",
        "juice"=> "飲み物"
        );
echo $b["fruit"];
// 果物 と表示される

ハッシュもarrayでまとめてしまうんだなぁ...

progateで配列がひと段落したので、この記事もここまでにします

参考  PHP | プログラミングの入門なら基礎から学べるProgate[プロゲート]

Cherry本勉強中 8月26日

フォーマットを指定して文字列作成

  • sprintfメソッド
    指定されたフォーマットの文字列を作成することができます
puts sprintf('%0.3f',1.5)
puts sprintf('%0.4f',1.5)
puts sprintf('%0.5f',1.5)

下記のように表示される

1.500
1.5000
1.50000

オブジェクトを複数渡すことも可能

puts sprintf('%0.3f+%0.4f',1.5,1.2)

下記のように表示される

1.500+1.2000

知らなかった文字列作成方法

cherry本の現在勉強しているページに載っている文字列作成が知らなかった方法なので、載せます
- 配列を連結して一つの文字列にする

[11,22,33].join
# 112233 と表示される
"hello"*5
# hellohellohellohellohello と表示される

数値

一言に数値と言っても、クラスが4つもあるので、その数値にあったメソッドを使用する必要がある

   |ー整数(integer)
数値ー|ー実数、小数(float)
   |ー有理数(rational)
   |ー複素数(complex)

参考 「プロを目指す人のためのRuby入門」