Help us understand the problem. What is going on with this article?

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')

image.png

数値・計算してみよう

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

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

・いつものやつ・・・。

文字列連結は

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

が主流なんですかね?

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

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

VSCodeの結果
image.png
** **

データ型

・文字と数値の連結には型変換が必要。
 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('りんごを買えませんでした')

image.png

クリアしました
image.png

感想

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

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

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

GodPhwng
業界は7年程度です。 なーなーに理解していたところをしっかりと正しく理解したいです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away