Progate無料版をやってみる【Python I】


前回に引き続きProgate無料レッスンをやっていこうと思います。

今回はPythonになります。

未経験です。
インタープリタ言語。
JavaScriptみたいなノリでやればいいのかな?w

Python I

公式レッスン

環境構築

Progateにインストール手順がありました。
→ https://prog-8.com/docs/python-env-win

インストール後はVSCodeで書いて、実行していきたいと思います。
参考にさせていただきました。
VS CodeでPython環境を整える

レッスンに戻ります。

文字列

・お決まりの文字列出力
 Pythonでは

print

を使用するらしい。

print('Hello World')

数値・計算してみよう

・いつもの・・・+ - * / %

変数・変数を使ってみよう・変数の値を更新してみよう・文字列の連結

・いつものやつ・・・。

文字列連結は

'{}_{}_{}'.format(1,2,3) # 1_2_3

が主流なんですかね?

**【コメントで指摘いただきました。】**
今はこのように書けるそうです。

a, b, c = 2020,3,20
print(f'今日は{a}{b}{c}日です')

VSCodeの結果

** **

データ型

・文字と数値の連結には型変換が必要。
 Rubyもそうでしたねたしか・・・?
 C#やjavaは勝手に文字になるんですけどねぇ

str(数値)で文字列
int(文字列)で数値

条件分岐

・うーん。==とイコールを2重にするけど、:を使用したり、{}ブロックがなくてわかりにくい・・・。すこし冗長になったり、ifが多くなった場合にわかりづらくなるのではないか・・・。

真偽値・比較演算子

・いつものの為、省略

else・elif

・Pythonではelif・・・。
 ほかの言語とごちゃごちゃになる。
else if elseif elsif elif

うわぁあああああああああああああああああ
参考にさせていただきました。
主要な web 系言語の else if

**【コメントで指摘いただきました。】**
else ifは1つの条件分岐ではなく、elseに連続してifが記載されただけのものでありelsifelifとは別物。
Pythonではelseに続けて1行でifが書けないため、改行することになるが

if a == 2:
    print('test')
else:
    if a == 3:
        print('test2')

上記のようにネストが深くなってしまうため、elifを設けた・・・と理解しました。

仮にelse ifと1行で書けるような仕様だったら
{}then endが必要になったり
条件分岐の後に1行しか処理が書けなかったりするのかな。
(Pythonはインデントをそろえておけば複数書ける)
** **

条件式を組み合わせよう

・独特すぎる。
 &&|| にしてほしかった・・・。

&&and
||or
!=not ==

うーん。

Pythonではandor他の使い方ができます
※コメントで教えていただきました。

message = "test1" and "test2" #test2が代入されます
message = "" and "test2" #""が代入されます
message = "test1" and "" #""が代入されます

message2 = "test3" or "test4" #test3が代入されます
message2 = "" or "test4" #test4が代入されます
message2 = "test3" or "" #test3が代入されます

理由:
・文字列の場合、""が偽、それ以外が正と解釈される

andは左の式が正の時、右の結果を返す → 1番目の式で"test2"、3番目の式で""
 左が偽の時、左を返す → 2番目の式の結果 

orは左の式が正の時、左を返す → 1番目の式で"test3"、3番目の式で"test3"
 左が偽のとき、右を返す → 2番目の式で"test4"

JavaScriptの &&|| の動作と同じですね!タブン

代金を計算しよう

・特になし

入力を受け取ろう

inputで入力を受け取れるらしい。
 C#でいうところのConsole.Read()かな?

条件分岐をしよう

演習

apple_price = 200
# 変数moneyに数値1000を代入してください
money = 1000

input_count = input('購入するりんごの個数を入力してください:')
count = int(input_count)
total_price = apple_price * count

print('購入するりんごの個数は' + str(count) + '個です')
print('支払い金額は' + str(total_price) + '円です')

# moneyとtotal_priceの比較結果によって条件を分岐してください
if money > total_price:
    print('りんごを' + str(count) + '個買いました')
    print('残金は' + (money - total_price) + '円です')
elif money == total_price:
    print('りんごを' + str(count) + '個買いました')
    print('財布が空になりました')
else:
    print('お金が足りません')
    print('りんごを買えませんでした')

クリアしました

感想

・まためっちゃ短く終わってしまった・・・。
・Rubyと一緒ですごく簡単にプログラミングできるけど、演算子や条件分岐のやり方が独特すぎて、個人的にはRubyのほうがいいですね。

いずれ機械学習とかもやってみたいので、その時にまたPythonやろうと思います。

次回はコマンドラインをやっていきたいと思います。
→ 次回